Răsfoiți Sursa

逆向分析的关键地址文档

Jeff 3 ani în urmă
părinte
comite
092da7d607
1 a modificat fișierele cu 114 adăugiri și 0 ștergeri
  1. 114 0
      Doc/关键汇编地址.txt

+ 114 - 0
Doc/关键汇编地址.txt

@@ -0,0 +1,114 @@
+一、未接任何设备打开软件时,会提示: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为实际用时,赋值给基址;
+
+
+
+六、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
+