feizixiao 发表于 2014-9-30 21:16

手把手教你破解传奇加速器。

本帖最后由 feizixiao 于 2014-9-30 23:02 编辑

首先来分析下外挂是否加壳


从区段名可以看出:加壳了。但到底是什么壳不清楚。
从连接信息可以看出:编译器不是易语言 就是VC6.0

现在载入OD

第一个指令就是 pushad嘿嘿。 ESP定律脱壳试试。

esp定律之后,会直接到oep。非常简单吧。

从上图很容易看出,这货就是易语言写的。

现在保存下脱壳的文件。之后运行试试。

软件正常运行。脱壳是正确的。

-----------------------------------------------------------------------------------
现在来说说软件界面。
软件有:收费客户,和试用客户。
我们使用试用客户。软件可以试用2分钟。2分钟之后失效。当再次打开软件的时候,又可以试用2分钟。

咱们这次来实现无限试用。
首先来分析下。如果咱们自己是软件的作者。会怎么实现,2分钟失效这个功能。
1:创建线程,线程不停的判断。是否已经过了2分钟。
2:创建时钟,时钟每隔一定的时间,来检测是否过了2分钟。

那咱们就找到破解的思路了。
首先把外挂拖到OD,我们选择了试用,看会不会创建线程。

我选中的那个线程,并不是点击启动创建的。
也就是说,点击启动之后,并没有创建线程,只是加载了一些DLL文件。


那是不是创建时钟来检测呢?
我们上工具看看。(E-Debug Events V1.5.exe   工具会发的,下载就行。)
当然,你也可以用其他的工具来查看。


中断地址: 0042DDDD
Start......
StartAddress: 00476ED5
事件发生: 004010CB
事件发生: 004014D9
事件发生: 0040151D
事件发生: 00405A62
事件发生: 00404269
事件发生: 0040B8E7
事件发生: 00405900
事件发生: 0040985D
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 0040B8E7
事件发生: 00405900
事件发生: 0040B986
事件发生: 00405900
事件发生: 0040908D
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00409219
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 0040B8E7
事件发生: 00405900
事件发生: 00405900
事件发生: 0040908D
事件发生: 00405900
事件发生: 00405900
事件发生: 00405900
事件发生: 00409219
程序退出
......End

咱们一个一个找。这里我就不贴那么多的图了。
直接说关键:地址是0040B8E7
贴上0040B8E7地址的代码,来说说,为什么就是它。
0040B8E7/.55            push ebp
0040B8E8|.8BEC          mov ebp,esp
0040B8EA|.81EC 14000000 sub esp,0x14
0040B8F0|.C745 FC 00000>mov ,0x0
0040B8F7|.FF05 941E7400 inc dword ptr ds:
0040B8FD|.833D 941E7400>cmp dword ptr ds:,0x78
0040B904|.0F85 78000000 jnz 脱壳.0040B982
0040B90A|.6A 01         push 0x1
0040B90C|.B8 7FF95C00   mov eax,脱壳.005CF97F
0040B911|.8945 F8       mov ,eax
0040B914|.8D45 F8       lea eax,
0040B917|.50            push eax
0040B918|.C745 F4 00000>mov ,0x0
0040B91F|.6A 00         push 0x0
0040B921|.8D45 F4       lea eax,
0040B924|.50            push eax
0040B925|.C745 F0 00000>mov ,0x0
0040B92C|.6A 00         push 0x0
0040B92E|.8D45 F0       lea eax,
0040B931|.50            push eax
0040B932|.E8 828BFFFF   call 脱壳.004044B9
0040B937|.8945 EC       mov ,eax
0040B93A|.8B5D F0       mov ebx,
0040B93D|.85DB          test ebx,ebx
0040B93F|.74 09         je X脱壳.0040B94A
0040B941|.53            push ebx
0040B942|.E8 F03D0000   call 脱壳.0040F737
0040B947|.83C4 04       add esp,0x4
0040B94A|>8B5D F4       mov ebx,
0040B94D|.85DB          test ebx,ebx
0040B94F|.74 09         je X脱壳.0040B95A
0040B951|.53            push ebx
0040B952|.E8 E03D0000   call 脱壳.0040F737
0040B957|.83C4 04       add esp,0x4
0040B95A|>8B5D F8       mov ebx,
0040B95D|.85DB          test ebx,ebx
0040B95F|.74 09         je X脱壳.0040B96A
0040B961|.53            push ebx
0040B962|.E8 D03D0000   call 脱壳.0040F737
0040B967|.83C4 04       add esp,0x4
0040B96A|>8B45 EC       mov eax,
0040B96D|.8945 FC       mov ,eax
0040B970|.FF75 FC       push
0040B973|.E8 22F1FFFF   call 脱壳.0040AA9A
0040B978|.6A 00         push 0x0
0040B97A|.E8 E83D0000   call 脱壳.0040F767
0040B97F|.83C4 04       add esp,0x4
0040B982|>8BE5          mov esp,ebp
0040B984|.5D            pop ebp
0040B985\.C3            retn



我们先来看这个跳转:0040B904|. /0F85 78000000 jnz 脱壳.0040B982
这个跳转,直接是从头跳到尾。非常可疑。会不会是这样的意思呢?:如果时间到了,我就让外挂失效,否则就什么都不做。

再来分析,跳转的条件。
0040B8F7|.FF05 941E7400 inc dword ptr ds:
0040B8FD|.833D 941E7400>cmp dword ptr ds:,0x78


第一句命令:inc的意思是加1,那很明显,这句话的意思是:这个地址的变量++ 。
第二句命令:cmp的意思是比较,上面那个自加的变量,和0x78比较。十六进制的0x78=十进制的120。2分钟=120秒。

那么这三句指令 如果用高级语言来描述的话,就是这样的。
void isDisabled(){
       int time=0;
       time++;
       if(time>120){
             //检测到到期,执行失效命令。
       }
}


分析完毕,祝大家国庆快乐。
下载地址里有2个版本。一个xp 一个win7 ,win7版可使用同样的方法破解。
修复下载链接
http://url.cn/KZddt2

鬼谷墨霸 发表于 2016-8-10 20:49

谢谢大神,我也是一个新手,让我学习到了很多,但是我面临的一个软件就是当查壳的时候显示没有壳的,但是用OD载入的话显示有多层压缩壳,现在很头疼,不知道能否给指条明路

世俗红尘 发表于 2014-9-30 21:40

怎么没人支持啊

妖。 发表于 2014-9-30 21:45

外链失效了哦 亲爱的

妖。 发表于 2014-9-30 22:02

我晕这么好的东西,没人顶阿?   楼主别取消分享哈   我来晚了还没下载阿{:1_906:}

GBANDSYT 发表于 2014-9-30 22:13

吾等新手最支持完整步骤过程~辛苦了

450 发表于 2014-9-30 22:53

谢谢大神可以 发下你现在的变速吗

feizixiao 发表于 2014-9-30 22:54

百度网盘会删除掉分享。。。   还在想办法解决分享问题。

红客鄙哥 发表于 2014-9-30 23:03

红客鄙哥 发表于 2014-9-30 23:05

htcperfect 发表于 2014-10-1 00:50

支持新作
页: [1] 2 3 4 5
查看完整版本: 手把手教你破解传奇加速器。