翠雨系列通杀补丁
最近逛论坛-看到了这个帖子https://www.52hb.com/thread-30340-1-2.html,讲的很详细,也讲了原理{:5_116:}。值得大家看看。我看了两小时实验了6小。但是觉得有点错误。视频中他的查壳软件显示是vm,其实是upx的壳,应该是他的软件的问题。脱壳机就可以搞定。作者手动脱壳了,但是觉得他的手动脱壳没脱干净,导致我做逆向的时候不能同步,最后自己分析完了。视频中说这网站的软件有些类似,就突发奇想做了一个通杀补丁,这里我不讲脱壳和去校验了,作者将的很详细了。注册部分可以爆破注册成功但是没用,有高手能搞定最好不过了。我这里只讲特征码,不脱壳分析,和帖子一样逆向功能。请大家都多给点评分,你的评分就是我的动力。
继续感谢恒大师父{:5_189:}
2017大家17吾爱汇编论坛。
首先,先看看软件的信息,upx壳。打开软件后看注册说明只能添加28条记录。但是第一次添加可以多添加些,保存后,如果再添加,点击保存就会出现未注册只能添加28条记录。软件的使用就是这样的。我们还需要注册一个账号。后面要用到的。
od载入程序,带壳分析。运行程序,然后在od的窗口点击M,在内存中搜索未注册只能,搜到后在第一个字节下内存访问断点-word。
重新载入程序,点击运行或者f9,程序断下来了,然后继续点击运行直到程序运行起来了,登录账号,然后点击添加,添加记录,保存。这时候程序断下来了,然后点击删除掉刚才的硬件断点。单步f8跟踪,找到关键跳转和call。这里就是我们要找的特征码的地方。
删除硬件断点后,运行程序后弹出提示框,我们可以看到0042ABE7 /E9 5C000000 jmp cyfjtlc.0042AC48这里可以跳过刚才我们出来的错误提示call,jmp上面还有一个je跳转,我们在je处下断,继续点击保存程序断下来,证明这里是一个关键的比较,和跳转。我们要爆破的话就要把这je跳转nop掉,让jmp执行,跳过错误call。
我们要找这个网站软件系列的特征码,我是这样想的这里是一个典型的判断语句,应该会在其他软件上也用到,但是每个软件的地址都不一样,我们留下相同的,其他用??代替。先把地下三行的代码制复制下来,鼠标左键按住选择这三行代码,放开后右键复制-到剪贴板。以下复制的全部放到记事本等会方便对比。
0042ABDE F6C4 41 test ah,0x41
0042ABE1 0F84 05000000 je cyfjtlc.0042ABEC ; 关键跳
0042ABE7 E9 5C000000 jmp cyfjtlc.0042AC48
选中这三行代码然后右键二进制-二进制复制。F6 C4 41 0F 84 05 00 00 00 E9 5C 00 00 00
再下来我们把je跳转nop掉,同样的把修改的代码先复制下来,右键复制-到剪贴板。
0042ABDE F6C4 41 test ah,0x41
0042ABE1 90 nop ; 关键跳
0042ABE2 90 nop
0042ABE3 90 nop
0042ABE4 90 nop
0042ABE5 90 nop
0042ABE6 90 nop
0042ABE7 E9 5C000000 jmp cyfjtlc.0042AC48
同样的复制二进制代码,F6 C4 41 90 90 90 90 90 90 E9 5C 00 00 00
关键的地方来了,我们把刚才得到未修改和修改的二进制代码做一个对比
F6 C4 41 0F 84 05 00 00 00 E9 5C 00 00 00
F6 C4 41 90 90 90 90 90 90 E9 5C 00 00 00
我说了因为这个网站的软件每个程序的地址肯定不会一样,我们应该去掉这些不一样的地方,用??代替
test ah,0x41我们去掉ah 0x41。
je cyfjtlc.0042ABEC我们去掉cyfjtlc.0042ABEC
jmp cyfjtlc.0042AC48我们去掉cyfjtlc.0042AC48
得到结果如下:F6 ?? ?? 0F 84 ?? ?? ?? ?? E9 ?? ?? ?? ??.同理修改后的特征码补丁应该如下是对应起来的
F6 ?? ?? 90 90 90 90 90 90 E9 ?? ?? ?? ??
有些新手可能看不懂,??为什么代替那些地方
你这样做一个对比就出来了。cyfjtlc这个是程序名称,不用考虑,其他的都是汇编代码对应的十六进制数值。
F6 C4 41 0F 84 05 00 00 00 E9 5C 00 00 00
test ah,0x41 je cyfjtlc.0042ABEC jmp cyfjtlc.0042AC48
好了,得到特征码我们可以打补丁了,这里我要说的是我们的补丁是这个网站其他软件也能用到的所以我用PYG的大白补丁,选择目标程序,指令替换补丁,添加补丁。选择进程的时候选择目标为任意进程,因为我们没有脱壳,我们需要程序运行后解码才能运用这个补丁,所以要勾选,补丁地址需程序解码后判断,选择等待时间方式,填写5000.勾选特征码搜索,填写原始数据F6 ?? ?? 0F 84 ?? ?? ?? ?? E9 ?? ?? ?? ??
补丁数据 F6 ?? ?? 90 90 90 90 90 90 E9 ?? ?? ?? ??
补丁创建好,保存在软件目录下,先运行补丁,然后再打开软件,这时候已经逆向成功了,我可以随便添加记录了。
**** Hidden Message *****
这个教程我写了5个小时,还是希望大家多给点评分{:5_189:}
对你来讲,这算是一次练习而已。
但是对其他刚刚加入逆向行列的新手来讲,这是一个很棒的教程!
讲的很不错,加油加油加油!
Shark恒 发表于 2017-1-8 23:24
对你来讲,这算是一次练习而已。
但是对其他刚刚加入逆向行列的新手来讲,这是一个很棒的教程!
谢谢师父,惭愧啊,4个月都没学习了,上班上的人心烦的,静不下心学习。这几天学习学习汇编的那部分课程。一定要坚持完成。 写代码ing,没看到 刀口以后 发表于 2017-1-8 23:27
谢谢师父,惭愧啊,4个月都没学习了,上班上的人心烦的,静不下心学习。这几天学习学习汇编的那部分课程 ...
没关系,大家都是如此,谁也不是整天学习。只要不完全扔下,时常碰一碰,就不会忘记。 不错的逆向过程,长见识了 厉害了,我的哥,一起学习一起进步 教程很棒,非常适合我们新手 123-木头人 发表于 2017-1-9 21:29
教程很棒,非常适合我们新手
{:5_127:}教程很棒,评分都没啊 谢谢分享长时间的图文教程