【脱文标题】游戏修改软件fpe在破解中的妙用--------------用FPE确定关键地址后爆破之
【脱文作者】 doa007
【作者邮箱】 [email]doc007@163.com[/email]
【使用工具】 Ollydbg,
【脱壳平台】 WinXP
【软件简介】 MP3是一种能将音乐档案加以压缩,而且将音质保持在接近CD水准的一种压缩格式,并广 泛使用在计算机与各种家电音响产品上。不过你知道吗?虽然MP3音乐档案已经比原先的未压缩档案小很 多了,在使用DietMP3软件后,它还是有继续压缩的潜力喔!
【软 件】DietMP3 V4.03 4M
【加壳方式】 无
游戏修改软件fpe在破解中的妙用--------------用FPE确定关键地址后爆破之
正如我在上篇中说的一样,<<破解有时并不需要很高的技术>>,这一篇破文也是讲如何将复杂的问题简单化的,开始之前先来看一下weiyi75的一个段子吧
硬件断点(跟踪关键标志的断点)
硬件断点是Olldbg所特有的断点,他不会因为重新运行就销毁,只要不删除。跟踪这个程序时就有效。但他在98系统下会不起作用。 硬件断点是根据关键标志回逆到关键代码的好方法。下中断的方法和内存断点的方法相同,有三个方式〔硬件访问〕、〔硬件写入〕、〔硬件执行〕。一般用前2个。他也同样有内存断点的特性,所以可以用内存断点的地方也可以用硬件断点。这里介绍利用他来跟踪注册标志的使用方法,一般软件的注册都用到了标志比较。即在内存地址中有一个标志,在判断是不是注册时比较标志的值。不同的值表示不同的注册状态。这个标志的地址一般比较固定。根据这个特点可以下硬件断点来跟踪标志位是什么地方被标志的。 方法:在转存窗口中选择到标志存放的内存地址处,然后选择标志值。下〔硬件写入〕中断(根据标志的字节下不同的长度)。重新运行程序你会发现Ollydbg会不断的中断在这个标志的内存地址处。在功能菜单的〔调试〕选项下选择〔硬件断点〕就打开了硬件断点的窗口,在这个窗口中选择〔跟踪〕,这时转存窗口就会来到被下中断的内存地址处。运行程序跟踪内存地址中的值就会知道被赋标志的代码,跟踪到计算的核心。〔硬件访问〕的使用可以知道程序在运行时多少地方用到了这个注册标志。对于破解复杂效验的程序十分的有效。
今天我用来演示的是一个可以把mp3文件压得更小的软件DietMP3.exe,本来我是没空听mp3的 但我的美眉老师(一个医术高出我很多倍的同事)一个人在外租房住,实在很可怜,我自然要拿出点风度出来邀到家里来玩,顺便下点歌到mp3中回去听,128M的东西嘛下了20多曲就快?了,我就选中了这个软件压一压,妈的真少兴,没注册就只能压15个文件,挑了几个大点的压了压,庆幸的是美眉老师也很高兴且还有5次没有用完,呵呵
好了闲话少说我们开始吧,用OD载入,发现是一个VB写的,要在模块中下断了,由于我水平次了点,填写注册信息后下断,断是断开了却没跟到对自己有用的东西,突然发现这个破软件的界面上居然有个计数器,每压完一个文件计数器减1,想起前些日子玩过新仙剑游戏,是可见数据就用游戏修改吧,把放这个数据的地方找出来,fpe2000的使用我想不用多说了吧,经过三次变化之后就只有一个地址了4B0054H,把这个地方改成”15”,回到游戏,不回到软件中看到计算器又是15了,一阵狂喜又能用了,呵呵,把这个地址记下来以后要用.先把15改为零发现软件可运行却不能用来压缩,关了它,这时用OD载入先用F9让它运行起来,作好压歌的准备,在内存窗口4B0054处下个硬件访问断点,用byte就行了,点开始压缩,第一次中断在
0049E356 . 85C0 TEST EAX,EAX
0049E358 0F85 A2000000 JNZ DietMP3.0049E400 就是这里
0049E35E . 66:830D 9C004>OR WORD PTR DS:[4B009C],0FFFF
就是这里经典的比较后跳转,还等什么修改之,改为jmp最好,若改成jz如果还有一次没完就过不去了,如果是第一次用这个软件,那么你做的破解版就不能用了,明白了吗?按F9第二次断在了如下地方
0049FB94 /0F8E A4020000 JLE DietMP3.0049FE3E 这里改为jmp
0049FB9A |0FBF05 9C004B>MOVSX EAX,WORD PTR DS:[4B009C]
修改后的样子0049FB94 /E9 A5020000 JMP DietMP3.0049FE3E
0049FB99 |90 NOP
0049FB9A |0FBF05 9C004B>MOVSX EAX,WORD PTR DS:[4B009C]
第三次
00498EEF |. 85C0 TEST EAX,EAX
00498EF1 0F85 2B010000 JNZ DietMP3.00499022
00498EF7 |. 833D 10004B00>CMP DWORD PTR DS:[4B0010],0
修改后如下
00498EEF |. 85C0 TEST EAX,EAX
00498EF1 E9 2C010000 JMP DietMP3.00499022
00498EF6 90 NOP
00498EF7 |. 833D 10004B00>CMP DWORD PTR DS:[4B0010],0
经过这三次后,发现压缩成功了,做个破解版吧
在od中右键 复制到可执行文件\全部修正 在出现的下一个界面上选”保存文件”就行了.运行一下试试,计数器为0文件压缩也成功了 哇塞成为无限次版的了,爽.
感谢网友Lenus推荐weiyi75的文章给我.
Doa007于2004.10.20凌晨3:00
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)