游戏马-QQ记牌器 1.291下载地址:http://www.onlinedown.net/soft/39147.htm
一、查壳:PEiD V0.94查壳:NsPack V1.4 -> LiuXingPing *
二、脱壳:用OllyDBG V1.10打开qqjpq.exe:
00578999 > 9C PUSHFD ;停在这里
0057899A 60 PUSHAD
0057899B E8 00000000 CALL qqjpq.005789A0
按两次F8到第三行处查看ESP为0012FFA0(好像NsPack V1.4都是这样子,我还没搞懂-ESP定律?),在左下角命令框中下断点:hr 0012FFA0,按F9运行:
00578BBD 9D POPFD ;停在这里
00578BBE - E9 F587E9FF JMP qqjpq.004113B8
再按两次F8跳到004113B8:
004113B8 55 DB 55 CHAR 'U'
在这里点右键-用OllyDump脱壳调试进程,直接在弹出窗口中点"脱壳"保存为jpq.exe,再用PEiD查看为:Microsoft Visual C++ 6.0
三、调试:用OllyDBG打开jpq.exe:
004113B8 >/$ 55 PUSH EBP ;停在这里
004113B9 |. 8BEC MOV EBP,ESP
004113BB |. 6A FF PUSH -1
下断点:bp ShellExecuteA,F9运行:
773EFE44 > 8BFF MOV EDI,EDI ;停在这里
773EFE46 55 PUSH EBP
773EFE47 8BEC MOV EBP,ESP
773EFE49 83EC 3C SUB ESP,3C
此时右下角堆栈窗口为:
016DFEE4 00409D9F /CALL 到 ShellExecuteA 来自 2.00409D99
016DFEE8 00000000 |hWnd = NULL
016DFEEC 0043B540 |Operation = "open"
016DFEF0 0043B548 |FileName = "http://www.gamehorse.com"
016DFEF4 00000000 |Parameters = NULL
016DFEF8 00000000 |DefDir = NULL
016DFEFC 00000005 \IsShown = 5
说明此调用来自409D99,按Alt+F9运行到409D99的下一句409D9F(中间运行会出错,不知道为什么,按Shift+F9忽略就行了,具体是按Alt+F9停住,按Shift+F9此时会弹出网页,再按Alt+F9就到了409D9F),如下:
00409D81 |. 8BF0 MOV ESI,EAX
00409D83 |. 83C4 08 ADD ESP,8
00409D86 |. 85F6 TEST ESI,ESI
00409D88 |. 75 18 JNZ SHORT 2.00409DA2
00409D8A |. 6A 05 PUSH 5 ; /IsShown = 5
00409D8C |. 50 PUSH EAX ; |DefDir
00409D8D |. 50 PUSH EAX ; |Parameters
00409D8E |. 68 48B54300 PUSH 2.0043B548 ; |FileName = "http://www.gamehorse.com"
00409D93 |. 68 40B54300 PUSH 2.0043B540 ; |Operation = "open"
00409D98 |. 50 PUSH EAX ; |hWnd
00409D99 |. FF15 28134300 CALL DWORD PTR DS:[<&SHELL32.ShellExecut>; \ShellExecuteA
00409D9F |. 5E POP ESI ;停在这里
00409DA0 |. 59 POP ECX
00409DA1 |. C3 RETN
从00409D8A到00409D99就是打开网页的代码了,可以把这些全部改为NOP
但我们发现前面有一句跳转:00409D88 |. 75 18 JNZ SHORT 2.00409DA2
所以最简单的方法就是把JNZ SHORT 2.00409DA2改为JMP 409D9F,即强行跳过弹出网页部分,于是在00409D88这行点右键-汇编(或按空格),改为JMP 409D9F,结果如下:
00409D88 /EB 15 JMP SHORT 2.00409D9F
改完后在00409D88行上点右键-复制到可执行文件-选择,再在弹出窗口中点右键-保存文件,保存为QQ记牌器.exe
ok,直接运行QQ记牌器.exe,没有弹出网页了吧!
要简单这样做也行:用UltraEdit打开jpq.exe(脱壳后的),查找“75 18 6A 05 50 50”,把75 18改为EB 15,然后另存为QQ记牌器.exe
PS:那些没用的插件、广告等等太烦人了,要免费使用别人的东西就得被强制接受一些自己不愿接受的东西,哎!有精力做这些没用的东西还不如把软件做好一点!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)