完美破解共享软件-渗透V3.0
程序员文章站
2022-04-06 16:03:30
大家好.我是David.今天的课程是:完美破解共享软件
----------------------------------------------
今天所破解的软件是"渗透V3.0"
所用到的工具是:filemon 与Olldy... 08-10-08...
大家好.我是David.今天的课程是:完美破解共享软件
----------------------------------------------
今天所破解的软件是"渗透V3.0"
所用到的工具是:filemon 与Olldy.w32dasm
----------------------------------------------
一.寻找关键跳
在破解之前.要先对软件进行查壳/脱壳.以前介绍过很多次了.这次就不多说了.脱壳后查找注册时的错误
提示信息在渗透3.0软件界面中点击工具栏上的"注册"按钮,打开注册对话框.随便输入一个注码码"111-111
-111-111"确定后弹出错误提示信息"注册码错误,请检查你的注册码"记住该信息,不用管它.关闭注册对话框
运行反汇编程序W32Dasm.点击菜单"反汇编-打开文件"调入脱壳后的"Unpacked.exe"文件程序自动对调入的
渗透PMT程序进行反编译.反汇编完成后,点击菜单"参考"-->"串式数据参考"命令,打开串式参考内容清单对
话框.在串式数据列表中寻找刚才记下的出错提示信息,拖动到列表最底部,可以查看到提示信息"注册码错误
",虽然与我们看到的错误提示信息相比不够完整,但是足以确定注册码关键跳位置了.双击该提示信息后来到
W32Dasm窗口中的相应代码段处.
-----------------------------------------------
二.爆破
向上拖动查看程序代码.来到代码段"004BA2FA"处,在这里可以看到代码语句为"004BA2FA" 7442 je
04BA33E".机器代码为"74420",对应的汇编语"je 04BA33E",这句就是注册码验证处,只要将汇编语句" je"改
为"jne"就可以取消注册码验证了.选中该句代码.点击右键,在弹出菜单中选择"Hexedit"命令.在弹出的快速
字节编辑器对话窗口中,将"修改字节"中的"7442A1DO*********"改为"7542A1DO********"
修改完毕后,点击"保存"按钮,将修改保存到原文件中,然后点击对话框中的"运行"按钮,重新运行修改过的
PMT.exe程序.在注册码输入框中输入任意密码.确定后提示"注册成功.请重新启动软件!"
------------------------------------------------
三.分析
按照一般情况,此时软件已经成功的进行了破解.成为注册版了.然而当我们重启软件后,打开软件注册窗口.
在注册对话窗口的左上角处依然提示软件未注册.看到软件经过重启后.又变成未注册软件了.由此可以推测
软件的注册检测手段是非常严格的.软件很有可能是在重启时,又读取了注册表中的某个键值或者硬盘中的某
个文件,对软件是否正确注册加以判断.如果判断失败.将又重新显示未注册信息.
------------------------------------------------
四.监视到注册标志
在使用RegMon监视注册表时.没有发现什么可疑的键值,具体的过程就不多说了.但是在使用filemon时监
视硬盘文件时,却发现软件在注册过程中有些不寻常..
运行filemon软件,在菜单"卷"中勾选"卷C",设置只监视PMT渗透软件的安装目录.取消其它的监视项目.
然后注册并重新启动软件,查看监视到的硬盘数据读取信息时,可以看到在点击注册时,软件读取了C盘下的
"C:\windows\pmt.ini"文件.从文件名一看可知,该文件必定与渗透PMT程序注册有关联.用记事本打
开"pmt.ini"文件,这是PMT的配置文件.在文件中可以看到文件中的"[S/N]"段处,保存有我们添写的注册码.
显而易见.软件在注册成功后,将我们输入的注册码保存在了这里,然后当重启时又因此文件中读取这个注册
码.并经过注册码算法检测,判断是否为正确的注册码.由于我们只爆破了注册时的代码.未爆解启动时的注册
码检测.导致软件还是不能注册成功.
-------------------------------------------------
五.完美爆破
如何找到启动时的注册码判断代码呢?再次用W32Dasm调入脱壳后的"unpacked.exe"文件,点击菜单"查看"
-->"查找文本"打开搜索文本对话框.在其中输入要搜索查找的字符串为"S/N".然后点击"查找下一个"按钮.
很快就定位到的代码段中相应的位置处.不过在程序*有8处代码段使用到了"S/N"字符,因此通过该字符串
来判断是查找启动时的关键跳是不行的.
打开串式数据参考对话窗口,在窗口列表中查找需要的信息,果真看到了"已注册"字符.
双击该字符串,来到对应的汇编代码处.
这里有两个"已注册"信息,当然是找最上面的一个了.在第一个"已注册"信息代码段上面不远处.有一个跳转
语句"004B9BFB 742C je 004B9C29004BA2FA",不用说,这一定是关键跳了!找到了关键跳就好办了.直接用上
面的方法,点击右键进行修改,将代码中的"74'改为"75"即可!
保存对程序文件的修改,退出W32Dasm后,重新启动渗透程序.可以看到程序已经成功的注册啦!
下一篇: Fireworks 绘制矢量的邮件图标