一、未接任何设备打开软件时,会提示:Initial communication failed! 汇编段: 00401E9E |. /74 5C je short 00401EFC 00401EA0 |. 66:C745 C0 38>mov word ptr [ebp-40], 38 00401EA6 |. BA 333D5300 mov edx, 00533D33 ; initial communication failed! ... 00401EB8 |. E8 7BCB0C00 call 004CEA38 ; 弹出Initial communication failed!提示框; 提示语所在内存地址: 00533D33=00533D33 (ASCII "Initial Communication failed!") // 需要在程序启动时注入; // 将ax的值存入变量[ebp-5A],然后cmp比较该值是否为0,不为0则je跳转; 00401E95 | 66:8945 A6 | mov word ptr ss:[ebp-5A],ax | 00401E99 | 66:837D A6 00 | cmp word ptr ss:[ebp-5A],0 | 00401E9E | 74 5C | je demo.401EFC | 二、Go按钮函数地址 00417A84 /$ 55 push ebp ... 00417B66 |. E8 B99F0E00 call 00501B24 ; 弹出please check sn digit提示框; Demo.exe+17B25 - E8 FA9F0E00 - call Demo.exe+101B24 = call 00501B24 // 1、弹出Set Communication Error对话框; 00417FB5 | BA 4D455300 | mov edx,demo.53454D | 53454D:"Set Communication Error!" 00417FCD | E8 666A0B00 | call demo.4CEA38 | # 弹出提示框:Set Communication Error! // 2、弹出提示框:Communication Error 00404408 | E8 2BA60C00 | call demo.4CEA38 | # 弹出提示框:Communication Error 三、DisConnect按钮函数地址 004378B0 /. 55 push ebp 四、Connect按钮函数地址 00415DFC | 55 | push ebp | # Connect按钮 00415A50 /$ 55 push ebp // 异常弹框处理:当CA310开机后,用户正常Connect一次后,Disconnect一次,然后设备断电,再Connect此时会弹异常框。 // 若设备原来处理断电状态,程序重启,Connect时不会有异常弹框. 043C50D7 | 0F85 51010000 | jne ca210ctrl.43C522E | # 出现异常(弹出External expection Exxx),跳转到522E 注意,以下异常:Connect、Disconnect、Go均会产生,在Go时会导致按钮一直无法恢复!总之,出现异常需要重启程序! 044D677C | FF15 78645404 | call dword ptr ds:[<&RaiseException>] | # 当设备断电后,再Connect时就报异常,此时程序需要重启 五、完成调试时显示Finish!的内存地址 004376A0 |. BA CE585300 mov edx, 005358CE ; finish! 完成调试所需时间显示的内存地址: 00437315 |. B8 6E585300 mov eax, 0053586E ; time is: 0052DF54为调试用时基址 00418069 - 89 0D 54DF5200 - mov [0052DF54],ecx ;此处ecx=0,重置时间; 004372D0 - A3 54DF5200 - mov [0052DF54],eax ;此处eax为实际用时,赋值给基址; ####### 另一种完成: OCC Verify PASS! 00415B69 | BA A3425300 | mov edx,demo.5342A3 | 5342A3:"OCC Verify PASS!" Cal and Verify Time is: xxxx ms 00437739 | 8D85 34FAFFFF | lea eax,dword ptr ss:[ebp-5CC] | [ebp-5CC]:"Cal and Verify Time is: 88771 ms" User Define OCC Verify FAIL! 六、Save As Output Data 复选框单击函数地址 004AB3FC /$ 53 push ebx 004A6401 全局变量 七、Check FW按钮函数地址: 00404238 $ 55 push ebp 004043AB | E8 50F70400 | call demo.453B00 | # 可能进行I2C通讯,获取显示器的版本号 # 变量:ebp-80 存储版本相关的结果 004043EA | 837D 80 00 | cmp dword ptr ss:[ebp-80],0 004043EE | 74 3E | je demo.40442E | 00404408 . E8 2BA60C00 call 004CEA38 ; 弹出Communication error!提示框; Comm_realteksub.dll模块中:0019EDDC->此处多次调用,都存储着I2CRead结果; 八、生成Output数据时出错 004567EA | BA 539F5500 | mov edx,demo.559F53 | 559F53:"Copy Output Data Fail!!" 九、所有按钮事件函数 004D5864 | FF93 20010000 | call dword ptr ds:[ebx+120] | # 所有按钮事件 DisConnect寄存器值: EAX 0x02393F78 EBX 0x024156CC ECX 0x004AB16C EDX 0x024156CC EBP 0x0019F500 ESP 0x0019F3C8 ESI 0x004AB068 EDI 0x0019F53C Call demo.004378B0 十、异常弹框 1、当设备断电后,再Connect时就报异常,此时程序需要重启 0458677C | FF15 78645F04 | call dword ptr ds:[<&RaiseException>] | 十一、相关特征码: SetText的特征码分析: E8 C2 E0 0B 00 E8 BD C4 0B 00 E8 DC C5 0B 00 E8 56 E0 0B 00 总结特征码为:E8 ?? ?? 0B 00