能力值:
( LV2,RANK:10 )
|
-
-
2 楼
F12 堆栈调用法
|
能力值:
( LV9,RANK:370 )
|
-
-
3 楼
所有关于消息拦截的事情:一个通用的办法就是
77D186EA > /8B75 0C mov esi, dword ptr [ebp+C]
77D186ED . |85F6 test esi, esi
77D186EF . |74 0C je short 77D186FD
77D186F1 . |6A 00 push 0
77D186F3 . |FF75 08 push dword ptr [ebp+8]
77D186F6 . |E8 E0FFFFFF call 77D186DB
77D186FB . |8906 mov dword ptr [esi], eax
77D186FD > |6A 01 push 1
77D186FF . |FF75 08 push dword ptr [ebp+8]
77D18702 . |E8 D4FFFFFF call 77D186DB
77D18707 . |E9 B0030000 jmp 77D18ABC
77D1870C $ |55 push ebp
77D1870D . |8BEC mov ebp, esp
77D1870F . |56 push esi
77D18710 . |57 push edi
77D18711 . |53 push ebx
77D18712 . |68 CDABBADC push DCBAABCD
77D18717 . |56 push esi
77D18718 . |FF75 18 push dword ptr [ebp+18]
77D1871B . |FF75 14 push dword ptr [ebp+14]
77D1871E . |FF75 10 push dword ptr [ebp+10]
77D18721 . |FF75 0C push dword ptr [ebp+C]
77D18724 . |64:A1 1800000>mov eax, dword ptr fs:[18]
77D1872A . |8088 B40F0000>or byte ptr [eax+FB4], 1
77D18731 . |FF55 08 call dword ptr [ebp+8] ; 【重要】User32提交消息到进程处理
77D18734 . |64:8B0D 18000>mov ecx, dword ptr fs:[18]
77D1873B . |80A1 B40F0000>and byte ptr [ecx+FB4], 0
77D18742 . |817C24 04 CDA>cmp dword ptr [esp+4], DCBAABCD
77D1874A . |0F85 607C0200 jnz 77D403B0
77D18750 > |83C4 08 add esp, 8
77D18753 . |5B pop ebx
77D18754 . |5F pop edi
77D18755 . |5E pop esi
77D18756 . |5D pop ebp
77D18757 . |C2 1400 retn 14
在这里下条件断点,指定窗口句柄。注意是条件断点,可以马上定位i到该消息,主进程是如何处理的。
也就是找到处理函数。
77D18731 . |FF55 08 call dword ptr [ebp+8] ; 【重要】User32提交消息到进程处
因为大家都知道的,消息传递sendmessage,postmessage等等消息进去,最后都在上面的那个位置转入到程序的处理函数。
|
|
|