首页
社区
课程
招聘
[原创][原创]破解第一个crackme的详细过程[申请注册码]
发表于: 2011-4-10 14:18 4901

[原创][原创]破解第一个crackme的详细过程[申请注册码]

2011-4-10 14:18
4901
本人是新手,昨天破解了平生第一个crackme,前一段时间一直在看关于这方面的基础东西,昨天晚上小小的尝试了一下,结果破掉了自己的第一个crackme。下面附上详细的过程,忘各位大牛指点,谢谢。

1.首先,我用的是《软件加密解密实战入门》这本书里的第一个crackme,当错误注册后会提示 i am sad,截图如下
看到 i am sad,这个是一个提示信息。

2.然后我们scan 这个pe文件with peid,可以看到,这个crackme加了壳,UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo。 截图如下

3.接着我们可以用PEID 的通用脱壳插件脱去upx壳

4.然后我用c32asm 载入脱过壳的pe文件,ctrl+f 查找sad(注意刚才那个注册错误的提示,可以从这儿入手)附上载入代码:
::004513B6::  8D55 F8                  LEA EDX,[EBP-8]                         \:BYJMP JmpBy:004513A2,
::004513B9::  8B83 F4020000            MOV EAX,[EBX+2F4]                       
::004513BF::  E8 ACE1FDFF              CALL 0042F570                           \:JMPUP
::004513C4::  8B45 F8                  MOV EAX,[EBP-8]                         
::004513C7::  8B15 2C3C4500            MOV EDX,[453C2C]                        
::004513CD::  E8 3632FBFF              CALL 00404608                           \:JMPUP
::004513D2::  75 12                    JNZ SHORT 004513E6                      \:JMPDOWN
::004513D4::  BA 40144500              MOV EDX,451440                              \->: Welcome!
::004513D9::  8B83 F0020000            MOV EAX,[EBX+2F0]                       
::004513DF::  E8 BCF3FFFF              CALL 004507A0                           \:JMPUP
::004513E4::  EB 10                    JMP SHORT 004513F6                      \:JMPDOWN
::004513E6::  BA 54144500              MOV EDX,451454                          \:BYJMP JmpBy:004513D2,    \->: I am sad!
::004513EB::  8B83 F0020000            MOV EAX,[EBX+2F0]                       
::004513F1::  E8 AAF3FFFF              CALL 004507A0                           \:JMPUP
::004513F6::  33C0                     XOR EAX,EAX                             \:BYJMP JmpBy:004513B4,004513E4,
::004513F8::  5A                       POP EDX                                 
::004513F9::  59                       POP ECX                                 
::004513FA::  59                       POP ECX                                 
::004513FB::  64:8910                  MOV FS:[EAX],EDX    

大家可以看到i am sad 这个语句所在的虚拟地址为004513E6
这个地址是由::004513D2::  75 12                    JNZ SHORT 004513E6这条指令跳转过来的,也就是说,这条指令直接导致了我们注册失败,所以我们需要解决的就是不要它跳到i am sad 或者不让他进行跳转。

可以看这条指令的下一条指令,::004513D4::  BA 40144500              MOV EDX,451440                              \->: Welcome!直接跳转到正确注册的指令上了,所以我这样解决的,让这个跳转失效,让其顺序执行,就可以执行到正确注册了。这样就解决问题了。
5.更改这条跳转汇编指令,改成NOP,就可以了,这样就解决问题了,
6.输入sdfsdfsdf成功注册。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 678
活跃值: (101)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
2
感觉要有算法分析才能够拿到注册码,再给力一点。
2011-4-10 14:54
0
雪    币: 195
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
爆破没意思。
2011-4-10 15:56
0
雪    币: 19
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LZ 加油 我** 我比较相信你 因为我也是新手 加油
2011-4-10 16:59
0
雪    币: 10122
活跃值: (2503)
能力值: ( LV7,RANK:115 )
在线值:
发帖
回帖
粉丝
5
LZ加油啊,把算法写出来吧
2011-4-10 17:21
0
雪    币: 278
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
英雄不问出处  加油兄弟
2011-4-10 17:36
0
雪    币: 215
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
有成绩就是有进步!
2011-4-10 18:10
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个现在只是静态的破解,动态去破解还没涉及,还在学习中,谢谢你回复。
2011-4-10 19:42
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
相信我?此话怎么解释?
2011-4-10 19:44
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个是静态破解,下次我发个动态的,算法就出来了,多些捧场
2011-4-10 19:45
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习了,还没入门呢
2011-4-10 20:23
0
雪    币: 24
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
LZ加油……这个CM貌似在哪本书上见过……好久以前
2011-4-10 21:57
0
游客
登录 | 注册 方可回帖
返回
//