曾找到过2007密码输入点,于是就拿2009来玩一玩。问题是在哪里下断,怎么断?我用笨方法CTRL +F9,终于找到了断点。一下是一个循环(循环1):
00403632 . 8B35 78824000 MOV ESI,DWORD PTR DS:[<&USER32.WaitMessa>; user32.WaitMessage
00403638 > /FFD6 CALL ESI
0040363A . |E8 C1D9FFFF CALL QQ.00401000
0040363F . |85C0 TEST EAX,EAX
00403641 .^\74 F5 JE SHORT QQ.00403638
不过接下来的事情还是很麻烦。QQ估计是处理 message 的高手,2007中的消息机制就把我折腾了一阵子,显然2009对消息的处理又更进一步了。在 QQ.00401000 中,有一个循环(循环2),
00401021 |. 8B3D 84824000 MOV EDI,DWORD PTR DS:[<&USER32.Translate>; user32.TranslateMessage
00401027 |. 8B1D 7C824000 MOV EBX,DWORD PTR DS:[<&USER32.DispatchM>; user32.DispatchMessageW
0040102D |. 8D49 00 LEA ECX,DWORD PTR DS:[ECX]
00401030 |> 837D E8 12 /CMP DWORD PTR SS:[EBP-18],12
00401034 |. 74 2D |JE SHORT QQ.00401063
00401036 |. 8D4D E4 |LEA ECX,DWORD PTR SS:[EBP-1C]
00401039 |. 51 |PUSH ECX
0040103A |. FFD7 |CALL EDI
0040103C |. 8D55 E4 |LEA EDX,DWORD PTR SS:[EBP-1C]
0040103F |. 52 |PUSH EDX
00401040 |. FFD3 |CALL EBX
00401042 |. 6A 01 |PUSH 1
00401044 |. 6A 00 |PUSH 0
00401046 |. 6A 00 |PUSH 0
00401048 |. 6A 00 |PUSH 0
0040104A |. 8D45 E4 |LEA EAX,DWORD PTR SS:[EBP-1C]
0040104D |. 50 |PUSH EAX
0040104E |. FFD6 |CALL ESI
00401050 |. 85C0 |TEST EAX,EAX
00401052 |.^ 75 DC \JNZ SHORT QQ.00401030
我CTRL +F8,好长时间都跳不出来,在后面一句 F4就跑出来了。不知道是怎么回事?对WaitMessage的机制理解得也不是很透彻。有人能普及一下么?最好给个WaitMessage的例子。
F4跑出循环1,输入框就正常了。我晕,我机器死了
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法