吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18567|回复: 49
收起左侧

[原创] 简单的SMC带壳补丁(QQ农场小帮手去广告)

[复制链接]
llpplplp 发表于 2009-10-25 16:13
本帖最后由 llpplplp 于 2009-10-25 16:17 编辑

汗,用Peace2008的生成器生成直接贴上来为什么格式全部乱套- =!!
我还是发个DOC文档吧

简单的SMC带壳补丁(QQ农场小帮手去广告).rar

61.89 KB, 下载次数: 219, 下载积分: 吾爱币 -1 CB

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| llpplplp 发表于 2009-10-25 16:22
【文章标题】  简单的SMC带壳补丁(QQ农场小帮手去广告)
【作者名称】  llpplplp
【电子邮箱】  6285688@qq.com
【软件名称】  QQ农场小帮手v1.31版
【软件简介】  偷菜的= =!
【下载地址】  http://bbs.nn47.com/qqfarm/QQ农场小帮手1.31.rar
【加壳方式】  ASPack 2.12
【使用工具】  PEID,OD,LORDPE
【破解平台】  Win9x/NT/2000/XP
【破解声明】  纯粹游戏,大侠们不要见笑哈

【版权声明】  欢迎大家自由转载,但是请保持文章的完整性并注明出处
【破解内容】------------------------------------------------------
本文只是探讨一下简单的带壳补丁,如果您只是想去广告,当然可以选择脱壳后直接打补丁更方便快捷。再就是试试Peace2008的破文生成器,这么好的工具都出来了,不用用怎么行呢^ ^,文章比较简单,大家别笑话哈~~
首先用PEID查壳为ASPack 2.12的壳,OD加载程序,用ESP定律先走到程序OEP,ESP定律我就不说了哈~
00406EFC    68 D4C44000     push    0040C4D4                         ; OEP
00406F01    E8 F0FFFFFF     call    00406EF6                         ; jmp 到 msvbvm60.ThunRTMain
00406F06    0000            add     byte ptr [eax], al
00406F08    48              dec     eax
00406F09    0000            add     byte ptr [eax], al
00406F0B    0030            add     byte ptr [eax], dh

程序是VB编写,我们用Ultra String Reference插件查找一下unicode字符串,看看能不能找到它的广告地址,我们可以看到
Ultra String Reference, 条目 74
Address=00437F57
Disassembly=mov     dword ptr [ebp-90], 0041C410
Text String=http://nn47.com/ad/ad.htm

Ultra String Reference, 条目 169
Address=00451233
Disassembly=mov     eax, 0041DCB0
Text String=http://bbs.rcqn.net/ad/xl.htm

程序是调用了存放于0041c410的http://nn47.com/ad/ad.htm广告地址和存放于0041DCB0的http://bbs.rcqn.net/ad/xl.htm广告地址,我们需要把他填充00以去掉广告,很多人填充掉后发现还是有广告弹出,那是因为程序初始化的时候还会生成广告地址,我们先让程序运行,再在内存中搜索一下http://bbs.rcqn.net/ad/xl.htm就会发现了
1.jpg
OK,我们在网址上下内存访问断点,看看是哪里调用它,中断后我们向上找跳转跳过它
004C5C09     51              push    ecx
004C5C0A     FF15 18114000   call    dword ptr [401118]               ; msvbvm60.__vbaVarTstLt
004C5C10     0FBFD0          movsx   edx, ax
004C5C13     85D2            test    edx, edx
004C5C15     0F84 DA000000   je      004C5CF5                         ; 就是你了,改为jmp直接跳过去
004C5C1B     C745 FC 1000000>mov     dword ptr [ebp-4], 10
004C5C22     C745 BC C8B0510>mov     dword ptr [ebp-44], 0051B0C8
004C5C29     C745 B4 0840000>mov     dword ptr [ebp-4C], 4008
004C5C30     B8 10000000     mov     eax, 10
004C5C35     E8 D60DF4FF     call    00406A10                         ; jmp 到 msvbvm60.__vbaChkstk
004C5C3A     8BC4            mov     eax, esp
004C5C3C     8B4D B4         mov     ecx, dword ptr [ebp-4C]

好了,去广告的地址和跳转我们找到了,下面来看看怎么进行SMC补丁
用OD重新载入程序,因为代码已经被ASPACK压缩了,我们来看看我们要修改的地方在何处被解压,我们来到http://nn47.com/ad/ad.htm的地址0041C410下内存写入断点,运行后断下
00527177     8BB5 52010000   mov     esi, dword ptr [ebp+152]
0052717D     C1F9 02         sar     ecx, 2
00527180     F3:A5           rep     movs dword ptr es:[edi], dword p>; 中断在这里
00527182     8BC8            mov     ecx, eax
00527184     83E1 03         and     ecx, 3
00527187     F3:A4           rep     movs byte ptr es:[edi], byte ptr>
00527189     5E              pop     esi
0052718A     68 00800000     push    8000
0052718F     6A 00           push    0
00527191     FFB5 52010000   push    dword ptr [ebp+152]
00527197     FF95 51050000   call    dword ptr [ebp+551]
0052719D     83C6 08         add     esi, 8
005271A0     833E 00         cmp     dword ptr [esi], 0
005271A3   ^ 0F85 1EFFFFFF   jnz     005270C7                         ; 循环比较区块是否恢复完毕
005271A9     68 00800000     push    8000
005271AE     6A 00           push    0
005271B0     FFB5 56010000   push    dword ptr [ebp+156]
005271B6     FF95 51050000   call    dword ptr [ebp+551]
005271BC     8B9D 31050000   mov     ebx, dword ptr [ebp+531]
005271C2     0BDB            or      ebx, ebx

我们可以选择在005271A9处进行补丁,因为这时候区块已经全部解压完毕,但005271A9的代码是动态生成的,如果在这里补丁,我们还要确定005271A9处的代码是在何处被解压的,因此我们选择到下面来补丁
005273A9     8985 A8030000   mov     dword ptr [ebp+3A8], eax
005273AF     61              popad                                    ; 根据堆栈平衡原理,我们知道在这里壳代码已经执行完毕
005273B0     75 08           jnz     short 005273BA                   ; 跳到程序OEP
005273B2     B8 01000000     mov     eax, 1
005273B7     C2 0C00         retn    0C
005273BA     68 FC6E4000     push    00406EFC                         ; 将动态生成的OEP压栈
005273BF     C3              retn
005273C0     8B85 26040000   mov     eax, dword ptr [ebp+426]

在这之前我们还要确定一下SMC代码的存放位置,这里要求文件解压后这个位置不能被覆盖或者被调用,我们来用LORDPE查看程序区块
2.jpg
图中.null区块为外壳部分,我们选它尾部的空白部分来存放补丁代码,OD中我们按Alt+M查看.null区块代码,并选择尾部的0052C4CB地址来作为补丁空间,OK,下面我们把
005273B0 jnz 005273BA
改为
005273B0 jmp 0052C4CB

在0052C4CB处写入补丁代码
0052C4CB     C605 B0DC4100 0>mov     byte ptr [41DCB0], 0
0052C4D2     C605 10C44100 0>mov     byte ptr [41C410], 0
0052C4D9     C605 155C4C00 E>mov     byte ptr [4C5C15], 0E9
0052C4E0     C605 165C4C00 D>mov     byte ptr [4C5C16], 0DB
0052C4E7     C605 175C4C00 0>mov     byte ptr [4C5C17], 0
0052C4EE     C605 1A5C4C00 9>mov     byte ptr [4C5C1A], 90            ; 以上为补丁数据
0052C4F5   ^ 0F85 BFAEFFFF   jnz     005273BA
0052C4FB     B8 01000000     mov     eax, 1
0052C500   ^ E9 B2AEFFFF     jmp     005273B7                         ; 跳回原地址

OK,将修改后的结果用OD保存到文件,修改完毕,这样就实现了带壳补丁了。
影子情人 发表于 2009-10-25 16:34
binqizhilian 发表于 2009-10-25 16:36
sina666 发表于 2009-10-25 16:41
本帖最后由 sina666 于 2009-10-26 07:02 编辑

好贴,学习了
已解决
 楼主| llpplplp 发表于 2009-10-25 19:40
伴侣在我的电脑没见弹窗出来
如果要去除右上角的广告条
004154B0      68            db      68  
改为
004154B0      00            db      00  
就可以了
sina666 发表于 2009-10-25 19:56
本帖最后由 sina666 于 2009-10-26 11:43 编辑

db 68 改为db 00是什么原理呢,有些网址能打开,有些网址打不开
貌似这样改下以后不能在线获取数据库了
去掉ie弹窗还有其他修改方法么?[s:40]
热火朝天 发表于 2009-10-25 22:40
伴侣在我的电脑没见弹窗出来
如果要去除右上角的广告条
004154B0      68            db      68  
改为
004154B0      00            db      00  
就可以了
llpplplp 发表于 2009-10-25 19:40

大牛指点一下怎么找到的
Hmily 发表于 2009-10-25 23:11
普及SMC知识.加精华鼓励!
ZeNiX 发表于 2009-10-26 13:22
不錯不錯,
復習一下,
我也好久沒用 SMC 了.
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 22:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表