能力值:
( LV2,RANK:10 )
|
-
-
2 楼
如何发现“Check”按钮事件的代码:
在 view/window 弹出框中可以看到 "check" 按钮的ID是 000003F5,所以看代码时在 case 语句中值为 3f5的代码段就是 “Check”按钮事件的代码.
下面 0040119C 后的语句就是"check"按钮的事件代码,由 0040115E 的比较结果经00401169 跳转而来.
-----------------------------------------------------
0040115E . 3D F5030000 cmp eax, 3F5 ; Switch (cases 2..9C42)
00401163 . 0F8F 2C010000 jg TraceMe.00401295
00401169 . 74 31 je short TraceMe.0040119C
0040116B . 83E8 02 sub eax, 2
0040116E . 74 0B je short TraceMe.0040117B
00401170 . 2D E8030000 sub eax, 3E8
00401175 . 0F85 45010000 jnz TraceMe.004012C0
0040117B > 8B9424 000100>mov edx, dword ptr [esp+100] ; Cases 2,3EA of switch 0040115E
00401182 . 6A 00 push 0 ; /lParam = 0
00401184 . 6A 00 push 0 ; |wParam = 0
00401186 . 6A 10 push 10 ; |Message = WM_CLOSE
00401188 . 52 push edx ; |hWnd
00401189 . FF15 C0404000 call dword ptr [<&USER32.SendMessageA>; \SendMessageA
0040118F . 5F pop edi
00401190 . 33C0 xor eax, eax
00401192 . 5E pop esi
00401193 . 81C4 F4000000 add esp, 0F4
00401199 . C2 1000 retn 10
0040119C > 8BB424 000100>mov esi, dword ptr [esp+100] ; Case 3F5 of switch 0040115E
004011A3 . 8B3D A0404000 mov edi, dword ptr [<&USER32.GetDlgI>; USER32.GetDlgItemTextA
004011A9 . 53 push ebx
004011AA . 8D4424 4C lea eax, dword ptr [esp+4C]
004011AE . 6A 51 push 51 ; /Count = 51 (81.)
004011B0 . 50 push eax ; |Buffer
004011B1 . 6A 6E push 6E ; |ControlID = 6E (110.)
004011B3 . 56 push esi ; |hWnd
004011B4 . FFD7 call edi ; \GetDlgItemTextA
--------------------------------
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
哦,是这样明白了,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我感觉这样比较好,知道check的ID是3f5后,
右键->search for->all switches
在switch(2...9C42)上
右键->List switch cases,然后在选3F5,然后fllow,下断点
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
刚才发完了,结果显示该页无法显示,就又发了一遍,后来才发现已经发了,不好意思
|
|
|