我是用户 发表于 2015-8-29 23:09

【交作业贴】吾爱破解培训第六课交作业专帖

前提介绍:

《吾爱破解培训第六课:潜伏在程序身边的黑影--实战给程序补丁》 讲师:我是用户   http://www.52pojie.cn/thread-405758-1-1.html

将作业破解成功(包括内存注册机和内存补丁)回复内容包括解决问题步骤,最后的成品可以上传网盘贴地址,节省论坛空间就不要上传到论坛了。

作业截至到2015年9月6号00:00前提交算数,没有加报名群的同学也可以提交,后期会通过作业的提交情况,来淘汰没有交作业的,让交作业的新人加入。

对于作业的解答我已经更新到上面培训贴中,作业遇到问题的可以参考一下。

帖子我设置只有我可见,等一周后取消,切记不要回复和作业无关内容,否则会被扣分,前50个名交作业的同学有奖励。



额外奖励:分析出作业的算法并写出注册机50CB(取前三名)


bzzxabc 发表于 2015-8-31 21:49

第六课作业完成过程:


OD载入查找不到字符串


在OD中F9运行起程序

按ALT+E,双击程序进入领空

删除分析

查找字符

找到注册成功

双击注册成功,到达打内存补丁处。

打开补丁程序




上面完成内存补丁
**************************************
用上面的方法查找字符串,下好断点,输入假码


点注册断下后,手动向下跟来到真码处

写内存注册机

运行注册机测试。



完成!!!

第六课作业:http://pan.baidu.com/s/1ntJ33vV

playgood111 发表于 2015-9-1 21:59

查壳后发现是vmp壳,并不会手脱。。。于是翻帖子。找到带壳做补丁方法。od载入,运行。点击工具栏上的E按钮,如图

双击第一个进入程序代码

智能搜索,找到注册成功字符进入后去除分析

前面的jnz即为关键跳,打开补丁工具

如图操作后完成即可。
如上找到注册成功字符所在代码,往前找到代码段入口

下断点,由于带壳,无法重新载入,直接程序随便输入数据后段在断点处,单步跟,找到字符比较算法代码段

打开keymake工具,按照下图添加。

至此,完成打补丁。
作业地址。。。
http://pan.baidu.com/s/16sKFG       a78q

4028574 发表于 2015-8-30 19:52

其实这一课真的没什么大多内容,主要就是说前一课的算法和这课的相关软件的使用,对于破解好像是前面的内容。所以这个破解过程应该可以省略。
主要就是在注册成功的上面那个跳给他NOP就行了 ,至于那个注册码就是在那个应该是循环中的EAX中获得。这些东西课程中好像全部说到了,等于就是照葫芦画瓢。
作业地址:http://pan.baidu.com/s/1dDoBAWp

Pizza 发表于 2015-8-29 23:36

http://1000eb.com/1fqqo

内存补丁 爆破点
0040346B|. /75 07         jnz short 吾爱破解.00403474
改9090

内存注册机
0040343B|. /EB 03         jmp short 吾爱破解.00403440
EAX即注册码

算法
取用户名 与字符串"123456"拼接 计算MD5 即为注册码
到大写 (取数据摘要 (到字节集 (用户名+ “123456”)))

苏紫方璇 发表于 2015-8-29 23:39

本帖最后由 苏紫方璇 于 2015-8-30 00:22 编辑


算法是注册码=MD5(注册名+“123456”)
链接: http://pan.baidu.com/s/1sjn7jsD 密码: 31fw

pnccm 发表于 2015-8-29 23:41

本帖最后由 pnccm 于 2015-8-30 13:20 编辑

一.内存补丁
1.首先查壳>>vmp壳
2.运行程序点击注册看看是否有关键提示信息
3.OD载入程序,F9运行程序Ctrl+G 输入00401000后确定Ctrl+A分析代码
4.搜索中文字符串 Ctrl+F 查找"注册失败"
5.找到后双击"注册失败"来到反汇编窗口,往上找到跳过注册失败的跳转

0040346B|. /75 07         jnz X00403474                            ;这里是关键跳转jnz修改为nop   也就是把75 07 修改为90 90
0040346D|. |68 80E15700   push 0057E180                            ;注册成功
00403472|. |EB 10         jmp X00403484
00403474|> \68 8CE15700   push 0057E18C                            ;注册失败双击后来到这里往上找到关键跳



二.内存注册机.
1.OD载入程序,F9运行程序Ctrl+G 输入00401000后确定   Ctrl+A分析代码
2.搜索中文字符串 Ctrl+F 查找"注册失败"
3.找到后双击"注册失败"来到反汇编窗口,往上找到断首,在断首处下F2断点
4.然后F9运行程序输入用户名和key.点击注册后会断在刚才F2的断点处,然后一直F8单步跟踪,然后注意看各个寄存器的值是否有出现正确key
5.当其中一个寄存器出现正确的key时此时反汇编窗口的地址就是我们写内存注册机的 内存地址.
6.运行到该地址时:
00403436|.8B4D E8       mov ecx,此时esi的值已经出现了我们的正确key   
我们就可以取该内存地址: 00403436 做为写内存注册机的内存地址
如下:
内存地址: 00403436
中断次数: 1
第一字节: 8B
指令长度: 1



也可以取下面这里做为内存注册机的地址
此处的代码寄存器EAX的值也是正确的key.该地址也是我是用户大牛做内存注册机的地址
00403440|>8A10          /mov dl,byte ptr ds:                ;此时EAX的值已经出现正确key
00403442|. |3A11          |cmp dl,byte ptr ds:                ;下面代码部分是真key和假key对比
00403444|. |75 1A         |jnz X00403460
00403446|. |84D2          |test dl,dl
00403448|. |74 12         |je X0040345C
0040344A|. |8A50 01       |mov dl,byte ptr ds:
0040344D|. |3A51 01       |cmp dl,byte ptr ds:
00403450|. |75 0E         |jnz X00403460
00403452|. |83C0 02       |add eax,0x2
00403455|. |83C1 02       |add ecx,0x2
00403458|. |84D2          |test dl,dl
0040345A|.^\75 E4         \jnz X00403440

内存地址: 00403440
中断次数: 1
第一字节: 8A
指令长度: 1


算法部分没有仔细深入研究.只知道 是取用户名加上"123456"串联起来然后进行MD5运算.举个例子:用户名=pnccm 那么加上 123456那么正确的key就是 pnccm123456 进行MD5运算后的结果.也就是pnccm123456的MD5值就是正确的key
然后把该key转化为大写:4A185F5ACD6415CCE8E9F6FF12A24D49


内存补丁+ 内存注册机_链接: 吾爱破解培训第六课作业_pnccm

灰色 发表于 2015-8-29 23:55

本帖最后由 灰色 于 2015-8-30 14:27 编辑

交作业了



算法是取user的大写md5数据加上123456







mak 发表于 2015-8-30 00:02

本帖最后由 mak 于 2015-8-30 16:17 编辑

爆破法

0040339A   /0F84 CD000000 je 吾爱破解.0040346D

004033A7   /0F84 C0000000 je 吾爱破解.0040346D

0040346B   /75 00         jnz short 吾爱破解.0040346D

补丁程序 : XH1.0 就可以


注册机法
方法(1) 取eax
00403440|>8A10          /mov dl,byte ptr ds:

方法(2) 取eax
00403460|> \1BC0          sbb eax,eax   


补丁程序 :KeyMake V2.0


Cizel 发表于 2015-8-30 00:06

本帖最后由 奋斗丶小Z 于 2015-8-30 08:50 编辑

先把程序载入OD点击运行,然后回到用户代码搜索字符串

搜索到找到注册成功的地方吧,jnz改成nop(内存补丁)

0040346B   /75 07         jnz short 吾爱破解.00403474

找到判断算法的地方的

00403440    8A10            mov dl,byte ptr ds:

然后安装教程制作注册机

地址链接:http://pan.baidu.com/s/1eQttjY6 密码:4rmv


更新注册机
http://pan.baidu.com/s/1sj63YiD注册机用str+123456 之后的md5验证,注册机用c#写的海盗小K的注册机在我前面完成的哦

蚯蚓翔龙 发表于 2015-8-30 00:30

好吧,跨平台可能有问题。。。
不想了。。
http://yunpan.cn/cmdmGdhQ9YHNz访问密码 fe76

榻榻米 发表于 2015-8-30 00:31

好吧 第一次交作业就被扣分了。。
内存补丁方式:


爆破补丁方式:


两种补丁方式下载:http://1000eb.com/1fqr9





海盗小K 发表于 2015-8-30 02:08

时隔三个星期,终于可以交作业啦!


首先感谢我是用户大牛给我们带来的精彩教程,同时为我上次由于外出而没赶上交作业感到遗憾。


首先说下补丁思路。


不同于第六课的Demo,作业由于VMP加密,无法通过搜索字符串定位关键代码,于是我们使用F12堆栈回溯法成功定位关键代码。


关键代码处字符串也清晰可见,爆破(即内存补丁)思路为关键跳NOP掉。


追码思路也很简单,按钮事件下断,单步走下来,发现程序会将真码保存在EDX中,打开KeyMake,按F8做内存注册机,选择内存,寄存器选择EDX即可。


这样两个补丁就都做好了。


然后说下追算法,这里有运气成分,单步的时候看堆栈发现会将User后面连上一个123456,然后观察真码,发现是32位,而且仅限于0123456789ABCDEF,很容易想到是MD5加密。


随便弄了几组Key看了下,证实了我的猜测,也就有了_BaZzi所说的一行代码的算法注册机。


代码如下:





算法注册机界面:





至此作业成功完成。


不知道算法注册机我是不是前三个做出来的。还望大牛指点一二。@我是用户


成品链接:http://pan.baidu.com/s/1eQGtPUa 密码:5tld


以上。
页: [1] 2 3 4 5 6
查看完整版本: 【交作业贴】吾爱破解培训第六课交作业专帖