首页
社区
课程
招聘
[原创]Crack Me技术等级自测 3级一个CrackMe分析
发表于: 2012-2-29 18:20 16069

[原创]Crack Me技术等级自测 3级一个CrackMe分析

2012-2-29 18:20
16069

Crack Me技术等级自测 3级一个CrackMe分析

1 用到的工具 

 peid 查壳, depends 查看导入函数, ida (idapython)静态分析 
2 开始 

 下载完这个Crack me后一看才7kb, 先用peid查壳,什么也没有,Win32控制 台程序。 

 然后用depends查看导入函数,只有7个,不确定是否加壳。 

 先用od来调下吧。载入之后,傻了,全是问号,看来有od反汇编引擎不能识别的指 令。如下图: 

 

 那就上ida。 
3 ida分析 

 ida只分析出了开头的代码,后面的就没有了。如下图: 

 

 看到IDA识别出了开头的机器码,nop dword ptr [eax+233CFAA6h] nop后面还能带操作码? 

 查查Intel手册,原来是多字节nop。各种多字节nop如下表: 

Length  AssemblyByte                                                             Sequence
2 bytes  66 NOP                                                                       66 90H
3 bytes  NOP DWORD ptr [EAX]                                                0F 1F 00H
4 bytes  NOP DWORD ptr [EAX + 00H]                                      0F 1F 40 00H
5 bytes  NOP DWORD ptr [EAX + EAX*1 + 00H]                        0F 1F 44 00 00H
6 bytes  66 NOP DWORD ptr [EAX + EAX*1 + 00H]                   66 0F 1F 44 00 00H
7 bytes  NOP DWORD ptr [EAX + 00000000H]                           0F 1F 80 00 00 00 00H
8 bytes  NOP DWORD ptr [EAX + EAX*1 + 00000000H]             0F 1F 84 00 00 00 00 00H
9 bytes  66 NOP DWORD ptr [EAX + EAX*1 + 00000000H]        66 0F 1F 84 00 00 00 00 00H
push    offset loc_40103E
retn
nop mem  ;纯粹占地方的,可以同时有多行nop
push reg1
xchg reg2,[esp] 
pop reg2  ;等于什么都没有做, 其中任何一行都可能有上面一种混淆
   ;也会有jz jnz和push offset ret形式的混淆夹在其中

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (18)
雪    币: 599
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
阁下的水平可以进cp9了。
2012-2-29 20:36
0
雪    币: 10946
活跃值: (2900)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
3
写的确实不错,高手就是高手。
2012-2-29 21:34
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
希望S大出手,搞定最后那题。
查表换位CRC,太难了搞不定啊
2012-3-1 09:18
0
雪    币: 378
活跃值: (702)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
加油,支持一个.........
2012-3-1 10:52
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
6
既然都说了,我有时间也来玩玩!
2012-3-1 13:31
0
雪    币: 705
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
关于lv5, 程序会用输入的用户名和序列号产生一个64字节的key。然后与程序中自带的256字节key分4组进行xor运算。 再用这256字节的值作为索引,读取加密代码,就是解密后的代码。 加密代码也是256字节。
我就想最后产生的256字节索引是不是不会重复呢,这样把程序提供的256字节分成4组64字节,逆推出key。 用这个方法总比再查表计算crc比较暴破快。
2012-3-1 19:18
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
根据这段加密代码的最后几个指令,猜测最开始的几个指令,然后找到几个比较惟一的值,算出对应位置的KEY,再找KEY有没规律,发现KEY果然没有规律。。
2012-3-2 09:07
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
9
MFC的看不怎么懂,只知道有检测调试器
2012-3-3 06:39
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
10
继续努力,拿6K薪水
2012-3-3 06:45
0
雪    币: 6
活跃值: (1125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
请问lz ,ida分析后的结果是否可以直接导入od中进行调试呢,loadmap那个插件貌似不完美,junk code还保留着
2012-3-5 16:25
0
雪    币: 705
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
因为我在脚本里修改了代码把junk code直接jmp过去了,loadmap只是加载符号名和注释用的。所以导入od调试应该是不可能了。
想在od中调试没有junk code的话,只能再写od脚本或插件了。
不过直接在ida中分析,od只是辅助理解下部分代码,有没有junk code都无所谓了。
2012-3-5 18:58
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
阁下的水平可以说是高手了!向高手学习1
2012-3-7 14:03
0
雪    币: 542
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
烦请一楼答疑解惑..cp9是啥子?还有楼主,真实高人啊!!膜拜
2012-3-8 00:46
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
15
学习了,分析的很赞
2012-3-10 19:30
0
雪    币: 110
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
好帖子 学习了。
我只能爆破,没技术含量
2012-3-12 08:44
0
雪    币: 513
活跃值: (436)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
放个L5带码的,求大牛搞定
上传的附件:
2012-3-12 10:41
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
18
2012-3-13 01:33
0
雪    币: 513
活跃值: (436)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
[QUOTE=sessiondiy;1052667]跟另一帖好像一样, 你看看是不是这个 ?
[PEDIY.华章 Crackme 竞赛 2009] [第五回] –CL ("http://bbs.pediy.com/showthread.php?t=97595")
CrackMe大赛第五组CL队设计和破解思路 ("http://...[/QUOTE]

惊现S大,果然是同一个,伤不起啊
2012-3-13 23:04
0
游客
登录 | 注册 方可回帖
返回
//