关键汇编地址.txt 4.3 KB

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