欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

完美破解共享软件-渗透V3.0

程序员文章站 2022-03-27 21:33:03
大家好.我是david.今天的课程是:完美破解共享软件 ---------------------------------------------- 今天所破解的软件是"渗...
大家好.我是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后,重新启动渗透程序.可以看到程序已经成功的注册啦!