在论坛学习有几个月的时间了.教程看了很多,一直想找个软件自己实践下.现在遇见了2个问题,想向前辈们请教二个问题的思路:
一,程序打开后是个登陆界面,不需要输入任何东西,是检测电脑机器码的.点登陆,失败以后无提示.和教程上的弹出提示框,下断去判断不一样,请教思路,或者说下对应教程的地址,谢谢.
二,登陆成功后.看到程序本身,我想把前面的登陆界面去掉.打开软件就是程序本身,没有之前的登陆界面.之前看到过类似的教程,现在找不到了.想请教下思路,或者给出教程地址.
三,问题也许问的很小白很笼统.很期待有你们的回复,谢谢!
上一个版本,是检测到不符合的条件(比如机器码验证失败),就跳到下一跳验证(比如继续验证角色名字),我的做法是不管验证什么都让他跳过去,最后不提示注册成功,也不提示还剩余多少天。但的确可以正常使用
只求思路,不用成品,万分感谢。
1、点击注册注册按钮,失败会弹出个记事本,我下的bp ShellExecuteA断点。
停在:
7D611170 > 8BFF mov edi, edi
7D611172 55 push ebp
7D611173 8BEC mov ebp, esp
7D611175 83EC 3C sub esp, 3C
7D611178 8B45 08 mov eax, dword ptr [ebp+8]
然后ALT+K查找调用源:
调用堆栈: 主线程, 条目 0
地址=0012FAD4
堆栈=00670FE8
函数过程 / 参数=SHELL32.ShellExecuteA
调用来自=ppg.00670FE2
结构=0012FB68
找到:
00670FC0 /$ 68 04BE7500 push 0075BE04 ; /Title = "Microsoft Internet Explorer"
00670FC5 |. 6A 00 push 0 ; |Class = 0
00670FC7 |. 6A 00 push 0 ; |hAfterWnd = NULL
00670FC9 |. 6A 00 push 0 ; |hParent = NULL
00670FCB |. FF15 9CC46B00 call dword ptr [<&USER32.FindWindowEx>; \FindWindowExA
00670FD1 |. 8B4C24 04 mov ecx, dword ptr [esp+4]
00670FD5 |. 6A 01 push 1 ; /IsShown = 1
00670FD7 |. 6A 00 push 0 ; |DefDir = NULL
00670FD9 |. 6A 00 push 0 ; |Parameters = NULL
00670FDB |. 51 push ecx ; |FileName
00670FDC |. 68 FCBD7500 push 0075BDFC ; |Operation = "open"
00670FE1 |. 50 push eax ; |hWnd
00670FE2 |. FF15 30C46B00 call dword ptr [<&SHELL32.ShellExecut>; \ShellExecuteA
00670FE8 \. C2 0400 retn 4
下断,同样的方法,找到调用地址:
0075BE04=0075BE04 (ASCII "Microsoft Internet Explorer")
本地调用来自 00670BC3
00670B90 . 83EC 10 sub esp, 10
00670B93 . 8D4C24 04 lea ecx, dword ptr [esp+4]
00670B97 . E8 E4030000 call 00670F80
00670B9C . 8B4424 1C mov eax, dword ptr [esp+1C]
00670BA0 . 8B48 08 mov ecx, dword ptr [eax+8]
00670BA3 . 85C9 test ecx, ecx
00670BA5 . 75 07 jnz short 00670BAE
00670BA7 . B8 E8BD7500 mov eax, 0075BDE8 ; ASCII "www.dywt.com.cn"
00670BAC . EB 02 jmp short 00670BB0
00670BAE > 8B00 mov eax, dword ptr [eax]
00670BB0 > 50 push eax
00670BB1 . 8D4C24 04 lea ecx, dword ptr [esp+4]
00670BB5 . E8 147B0300 call 006A86CE
00670BBA . 8B4424 00 mov eax, dword ptr [esp]
00670BBE . 8D4C24 04 lea ecx, dword ptr [esp+4]
00670BC2 . 50 push eax
00670BC3 . E8 F8030000 call 00670FC0
00670BC8 . 8D4C24 00 lea ecx, dword ptr [esp]
00670BCC . E8 8F7A0300 call 006A8660
00670BD1 . 8D4C24 04 lea ecx, dword ptr [esp+4]
00670BD5 . E8 D6030000 call 00670FB0
00670BDA . 83C4 10 add esp, 10
00670BDD . C3 retn
查看调用:
0060A24D CC int3
0060A24E CC int3
0060A24F CC int3
0060A250 . 8D5424 08 lea edx, dword ptr [esp+8]
0060A254 . 83EC 0C sub esp, 0C
0060A257 . 52 push edx
0060A258 . FF7424 14 push dword ptr [esp+14]
0060A25C . C74424 08 000>mov dword ptr [esp+8], 0
0060A264 . C74424 0C 000>mov dword ptr [esp+C], 0
0060A26C . C74424 10 000>mov dword ptr [esp+10], 0
0060A274 . 8D5424 08 lea edx, dword ptr [esp+8]
0060A278 . 52 push edx
0060A279 . FFD3 call ebx0060A27B . 8B4424 0C mov eax, dword ptr [esp+C]
0060A27F . 8B5424 10 mov edx, dword ptr [esp+10]
0060A283 . 8B4C24 14 mov ecx, dword ptr [esp+14]
0060A287 . 83C4 18 add esp, 18
0060A28A . C3 retn
0060A28B CC int3
这地方有个时间控件 每秒都刷新。单步到的都不是自己要的内容。应该怎么办呢
按钮事件不会下断,我是从后面一步一步往前在找。
希望能给出建议或者意见,接受任何批评,担心会沉帖
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课