首页
社区
课程
招聘
新手在路上 自相矛盾之破解(1)
发表于: 2009-10-29 16:49 6235

新手在路上 自相矛盾之破解(1)

2009-10-29 16:49
6235

【破文标题】新手在路上 自相矛盾之破解(1)
【对  象】这个怎么说呢,像小学生完成的第一份作业吧
【下载地址】http://bbs.pediy.com/showthread.php?t=100252
【破解工具】OD
【保护方式】许可码
【任  务】找出许可码
【破文作者】sucheasy
【组  织】没有
【破解声明】刚刚入门,没有头绪,只好自编自破,增强自信心,与各位共勉
【备  注】格式是抄的嘿嘿!
【破解过程】

[PART. 1 第一部分]

虽然这个东西是自己写的,咱对它葫芦里卖的什么药是一清二楚,但是咱为了学习,把葫芦封好口,上好锁把钥匙一扔。撬自己家门锁估计感觉很过瘾,呵呵!好准备工作结束,开工!!

装就装的像点,破解第一步,对待这么个陌生的东西,得看看穿的什么衣服吧!

1.  检查壳 (check for protector)

在开始之前,我们都会用 peid 或 Fi 这些工具检查一下壳,如果程序是有加壳的,当然是先脱壳。
(关于脱壳,这里不多说了)
打开 peid ,把 exe 拉进去


这表示没有加壳,这是以 vc8编写的原程序。  (注: 当然咱这个是具体点就是VC2008)
嗯嗯,我喜欢“裸奔”主义者~~
既然没有特别的保护,那就拿出咱们的AK-47,呃 错了 是OD进行探索一番吧!

2. 用 OD 加载

加载后,停在这里,虽然看上去有点恐怖,但是咱们主要目的是进行破解,不是脱壳,那么入口点的知识咱们就先放过它吧!


下面我们让程序运行起来(F9),先随便输入测试下,万一人品好呢?事实证明,我的人品并不好!


怒了,生气!破了它!!!
先下断点,下断点的方式有很多,大家可以看我的第一遍文章http://bbs.pediy.com/showthread.php?t=100122里有本电子书下载。
个人比较喜欢天草流的断法!
F12暂停,然后ALT+k 查看调用堆栈窗口



下完断点后,F9继续运行,点出错提示框的确定按钮,这个时候程序会断在0050422C的位置,我们单步F7,就来到了程序逻辑判断的空间

嗯 嗯 很好很好 在这个地方下好断点,那就该我们进行伟大的跟踪试炼了!(为什么在这个地方下断?咱们前面不是断在出错对话框了嘛,然后显示调用就会来到出错框显示的前后处理代码,此时,我们在代码结尾处下断,单步后,程序就会回到密码效验的逻辑处理程序段!当然简单的是这样的,复杂的我还没有接触到)
输入试炼码 然后确定。这时候程序遇到断点,停在以下地方


然后我们跟,我们跟 我们跟跟跟~~~ 发现什么问题?对了我们把这段代码整个F8一遍后并没有发现意料中的比较判断过程,仔细一想,发现我们还在出错框的处理过程中,看来是还得向上返回一层,老样子,来到RETN处下段,运行,F7步过!这次再截个图,发现我们柳暗花明了……


我们看见了这里是 MessageBox 跳出的程序,这里是成功信息和失败信息的地方。 (读者可能已经大叫,只要把跳往失败信息的跳转修改,赶紧尝试下爆破?JMP掉!!测试成功!!

爆破是爆破掉了,但是我们的目的是学习算法在汇编里的体现啊!!那继续第二部分

[PART. 2 第二部分]

依旧在代码段开始的位置下断点,程序断下来以后单步走,进行分析
在经过了一波三折以后,我们终于确定了以下代码段是计算注册码的关键,


为了调试方便,大家最好吧爆破点爆破掉,因为是逐个字符进行的比较,所以一个不等就跳出 很麻烦,经过分析代码,发现程序是获取到用户名和许可码两个字符串然后分解逐位比较的!具体流程是拆解后把假码的首位放在ECX,然后去用户名的首位放到EAX 然后(EAX*2+8)%5E  余数放在EDX 然后EDX+20 (以上数字均为16进制)最后比较ECX 和EDX 相等则PASS, 我们可以根据此做出注册机 。。。


总结:
至此这个简单的代码就算分析完了,另外的那个原版程序,加入了一个随机数会导致每次访问程序的程序段都会不一样,所以爆破还是会麻烦一点,但是找到关键循环后,算法分析是一样的!

自编自破 个人认为能够迅速了解汇编与高级语言的对应关系,同时更有针对性,能够有效增强个人自信心!

[PART. 3 第三部分]
源码:       


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
  • 1.jpg (29.17kb,336次下载)
  • 2.jpg (66.00kb,335次下载)
  • 3.jpg (20.10kb,335次下载)
  • 4.jpg (108.57kb,336次下载)
  • 5.jpg (98.76kb,336次下载)
  • 6.jpg (128.94kb,335次下载)
  • 7.jpg (48.07kb,332次下载)
  • 8.jpg (63.79kb,332次下载)
  • 9.jpg (179.44kb,335次下载)
  • 10.jpg (18.17kb,335次下载)
收藏
免费 7
支持
分享
最新回复 (18)
雪    币: 299
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不知道够不够资格申请码啊~~~要是不够的话,破解个商业的 任重而道远啊…………唉 继续努力
2009-10-30 09:21
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看完   不错了   学习了
应该可以申请到码!
2009-10-30 09:48
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
继续努力吧 我还得等一段时间有时间才能搞一下 四级啊!~
2009-10-30 12:44
0
雪    币: 49
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
为了基础扎实,正在学C,感觉不错,留个脚印以后看
2009-10-30 13:39
0
雪    币: 217
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼主很棒哦,饿也在学习中,受教了。
2009-10-30 19:46
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不错~值得学习~!~!~!
2009-10-31 19:16
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我今天也写了个易的crack me,只是关于注册码部分没有加密,其实是不会,正在学习中,呵呵……
2009-10-31 20:41
0
雪    币: 199
活跃值: (72)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
楼主还是很猛的 自己玩自己
2009-10-31 20:56
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呵呵 楼上搞笑
2009-11-3 09:42
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
解答问题 非常好
2009-11-3 10:59
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
解答问题 非常好
2009-11-3 11:00
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
果断留名学习
2011-6-24 16:02
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
每天为衣食温饱烦恼苦闷,没有精力搞这些,对你们只有景仰,再景仰
2011-6-24 16:09
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不断学习中……
2011-6-24 19:50
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我们这学期刚开始学汇编,我对逆向挺感兴趣的。学习了。
2011-6-24 20:55
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
刚接触这东西, 东西太复杂了,
2011-6-25 08:30
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不错。。。留个记录
2011-6-25 15:07
0
雪    币: 2820
活跃值: (116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼主很棒,学习了
2011-6-25 16:05
0
游客
登录 | 注册 方可回帖
返回
//