首页
社区
课程
招聘
[旧帖] [分享]汇编学习心得[工具篇] 0.00雪花
发表于: 2007-7-16 16:09 4111

[旧帖] [分享]汇编学习心得[工具篇] 0.00雪花

2007-7-16 16:09
4111
标 题: 【分享】汇编学习心得
作 者: popeylj
时 间: 2007-07-16
链 接: http://bbs.pediy.com/showthread.php?p=335146#post335146
本文主要是介绍我当初学习的crackme的一个简介,也算是一个破解过程的里程碑过程。
首先,拿到我们的第一个crackme,输入注册码显示错误:I am Sad (除非你运气好输入正确:))
然后,我们开始破解
首先,分析是否有壳,我用的是PEid,经过分析
UPX 的壳,然后我们用upx shell 脱壳后,发现为 delphi 编写。用w32dasm反汇编脱壳的crackme ,查找字符串 I am sad ,(此为初级的简单之出,因为源程序没有处理这些字符串)
* Possible StringData Ref from Code Obj ->"请输入注册码"
                                  |
:004513A4 BA28144500              mov edx, 00451428
:004513A9 8B83F0020000            mov eax, dword ptr [ebx+000002F0]
:004513AF E8ECF3FFFF              call 004507A0
:004513B4 EB40                    jmp 004513F6

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004513A2(C)
|
:004513B6 8D55F8                  lea edx, dword ptr [ebp-08]
:004513B9 8B83F4020000            mov eax, dword ptr [ebx+000002F4]
:004513BF E8ACE1FDFF              call 0042F570
:004513C4 8B45F8                  mov eax, dword ptr [ebp-08]
:004513C7 8B152C3C4500            mov edx, dword ptr [00453C2C]
:004513CD E83632FBFF              call 00404608
:004513D2 7512                    jne 004513E6

* Possible StringData Ref from Code Obj ->"Welcome!"
                                  |
:004513D4 BA40144500              mov edx, 00451440
:004513D9 8B83F0020000            mov eax, dword ptr [ebx+000002F0]
:004513DF E8BCF3FFFF              call 004507A0
:004513E4 EB10                    jmp 004513F6

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004513D2(C)
|

* Possible StringData Ref from Code Obj ->"I am sad!"
                                  |
:004513E6 BA54144500              mov edx, 00451454
:004513EB 8B83F0020000            mov eax, dword ptr [ebx+000002F0]
:004513F1 E8AAF3FFFF              call 004507A0

看到004513E6就是我们的错误信息的地方,所以这就是我们的关键点,在这个上下查找跳转过程就可以,大部分初级的过程是在这个错误的上面,(仅限初级这么容易,以后的就不好找了,呵呵)。

发现没有上面的jne 004513E6没有!!!这就是关键点,所以,我们就将004513D2 中的jne换成je或者nop就可以了((这就是爆破),可是如果想要软件原来的注册码就要看那个call调用了什么了。就需要我们再进一步了)。然后就是档案的修改了,用c32asm修改了。

如果有什么不明白的,可以跟贴,我尽力。
有人说这样会固化思想,可是我想这也是一种建议吧,因为在开始的时候,我当初也是很茫然的,所以,总得有个路子走,到后来学的多了,也就能活学活用了:)仅仅算是给新人的建议的一种吧。

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
把标题改为爆破可能更准确些
2007-7-16 16:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
鼓励鼓励,我也是菜鸟,能破就噢了!!
不管是在爆破,还是在学汇编!!!
2007-7-16 16:26
0
游客
登录 | 注册 方可回帖
返回
//