废话不多说,直奔主题。今天要破解的软件是我自己以前制作和加密的,完美支持XP SP3与Vista,照片存储为图像质量较好压缩比例较大的JPG格式的拍照软件。
先来拍一下,看看效果,照片加了水印(包括作者信息和拍照时间)。我的爆破方向也由水印确定。大家知道,要获得当前时间,会利用一些函数,我们可以对函数下断,这个程序就用了GetLocalTime这个函数。废话不多说,动手吧。
一、脱壳
这个软件的壳是UPX 0.9.6 - 1.02/1.05 - 1.24 ->Marus&Lazlo,这个壳很怪,我用ESP定律来脱,倒是能正常运行,可是下不了断,而用资源修改工具像Resorator修改后壳便消失了,而且还能下函数断点。我是初学,如果老鸟知道还请不吝赐教。修改资源后载入PEID,DELPHI编写的。
二、对函数下断查看调用
将修改过的程序载入Ollyice,右键选择查找一当前模块中的名称(标签),找到KERNEL32.GetLocalTime一行,右键选择在每个参考上设置断点。程序设下了三个断点,现在按F9运行程序,单击F8,程序自动停在0040ADE4处,代码我就不贴出来了有需要的可以来找我要。
在0040DDC处(即这段类似函数功能的头部)有两处CALL调用,经过我的测试,第一个CALL没用处,右击此处,选择转到-CALL来自005086D7。
00586CE处进行比较,若未注册则继续,否则在00506D5处跳过,知道了原理,我们将00508D5处的JE改为JMP,保存一下,再运行程序,作者信息还在,但烦人的时间已经没了。
那么作者信息又在哪呢?在00506D5处上下翻翻,发现可以的地方。
00508744处有一远跳,既然这样,将jl改为JMP试一下,右键复制到可执行文件,保存修改,在运行看看,哈哈,烦人的水印全没了。
三、修改“未注册版本”
这个修改很简单,在第一步时可以顺便修改下MYLANG资源,修改后保存即可,我稍稍改了下,不过软件好用就成,追求些表面文章也没啥必要。
总结一下,本次破解主要是依靠GetLocalTime函数,多少也算个思路吧,至于注册模块我没有分析,但爆破不太容易。另外,通过E盾,我们可以知道软件是现在C盘生成一个名为sita.bmp的文件,然后加水印并转换为压缩比高的JPG文件。文章写到这里就结束了,危险漫步与你的黑客生涯同在,还请大家多多支持!
本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,作者不鼓励或支持任何形式的非法行为。