爆破某网络电视最新版 求个邀请码
本人是个菜鸟,但是为了能得到一个邀请码,苦思冥想,到图书管查看 看雪的(加密与解密第三版),再跟踪这个软件好几天,最后才找到正确的方法,勉强爆破,见笑了,希望能给发个邀请。
言语可能不是很专业,见谅! 下面开始了
第一步:查壳,用PEID 0.94 (或用OD加载,查看内存镜像),结果如图1。这个软件加
图1 PEID 查壳结果
的是ASPack 2.12,不是很强,可马上手脱。
第二步:脱壳。忽略所有异常,用OD载入,入口点特征如图2。这里,第一句PUSHAD 压
图2 软件入口点特征
栈,立马可以联想到ESP 定律法,具体过程如下:
(1)F8单步,同时观察寄存器ESP值的变化;单步一次后,ESP的值变为
,左键选中ESP的值,右键数据窗口跟随;
(2)在数据窗口找到地址0012FFA4 ,选中要下断点的地址,右键下硬件访问断点,
如图3
图3 下硬件访问断点
(3)F9,运行程序,断在005A73B0处,如图4;
图4 程序中断地址
(4)单步往下跟,立马找到OEP,如图5,OEP地址:0051F8C8;
图5 程序OEP地址
(5)接下来删除硬件断点,DUMP,就不多说了。
(6)尝试运行,可以,就不用修复IAT了,PEID查壳,程序是用Borland Dlephi 6.0-7.0 写的。
第三步:搜集程序信息,可看到注册购买字样,如图6,点击,发现可购买的版本有:VIP版,钻石版,标准版,再加上我们现在
这个,暂时称为试用版;
图6
切换到默认页,点击右键,发现注册,输入注册信息,如图7;输入假的注册信息(用户名:cracked,注册码:
123456789),看有没MESSAGEBOX出现。结果很失望,呵呵,没有任何反应。记下机器码 FE56EED3。
图7 程序注册界面
由于本人还不会使用DEDE查这个框的句柄,因此,无法找到这个对话框的地址,汗!
第四步:静态跟踪(用W32Dasm, IDA学习中,暂不会,见笑)。考虑了下,决定,不利用图7的对话框,采用我们已知的四个
不同版本,程序肯定会通过注册码的特点来判断是属于哪种用户版本,再跳转,只要找到这个跳转,爆破也就成功了;开始
(1)用W32Dasm载入程序;查找 PE信息-》字符串 参考,输入字条VIP,搜索,得到如图8的结果;(虽然有点
乱,但可以清楚的看到字样,VIP版,..,钻石版)
图8 程序字符串参考,VIP搜索结果
(2)找到这三个字体所对应的代码段,并进行分析,看看程序是从哪里跳到这三个不同版本的,
出口为钻石版,程序从005182A1跳到这里;
出口为VIP版,程序从00518298跳到这里;
出口为标准版,程序从0051828E跳到这里;
找到这三个地址,发现他们都在一起(程序员编写过于简单!),如图9;显然,程序用EAX寄存器的值来进行判断到底
图9
应该进入哪个版本,那么图9中往上的部分,应该就是算号的地方了,这方面目前我还在学习中,先放在一边,还是用爆破
法。另外,图9 中还有一个跳转地址是00518293跳到005182AC,我跟过去看了下,估计是试用版入口;
还有个JMP没有判断就直接跳了,应该是出错判断。
第五步:用OD载入,进行爆破,ctrl+G找到地址005182A1,结果如图10所示,Switch结构,呵呵!
图10
将前面3个sub行,和JE行全部NOP掉,然后将地址005182A1处的je 改为jne,保存程序,退出。
第六步:尝试运行,依然存在问题,程序运行后仍然是试用版,为什么呢?用OD载入,动态跟一下;找了半天,终于发现出问题
的地方,如图11,
图11 出问题地址
看这个跳转,跳到00518651,再看看图9中的JMP,这不是跳向错误的地方吗?
(这里我也不是很明白,程序员为什么在这里弄个JNZ,希望版主以及各位大侠给我解释下)
将这里的JNZ改为JZ,保存程序,尝试运行,OK!!!砖石版。所有节目都可以看。
文章完!
希望各位大侠给指点文章的不足,以及我应该再学点什么地?感激不尽!
声明: 本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。
[课程]FART 脱壳王!加量不加价!FART作者讲授!