首页
社区
课程
招聘
[原创]crackme 再一个....
发表于: 2008-12-24 15:29 5001

[原创]crackme 再一个....

2008-12-24 15:29
5001
是之前的那个crackme的升级版......

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我晕,前面那个都没有搞明白下一个又来了,
2008-12-24 16:22
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
无效  CM
2008-12-24 16:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不能运行嘛?

直接双击运行也不行?应该不会啊....
2008-12-24 16:43
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
5
可以运行的...............大家继续、
2008-12-24 22:57
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
少什么呢也没有提示
上传的附件:
2008-12-25 09:45
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
7
不发无字帖....
上传的附件:
2008-12-25 11:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请问,在OD载入时程序就先运行了,无法反汇编,如果办呢?听书呆彭说把OD隐藏调到最大,如何调啊?
2008-12-25 11:23
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
9
程序是如何检测调试器的呢?

首先,用OD载入没有断在入口点,是TlsCallback。所以,只需要在TlsCallback函数下断点。

其次,在疑似WinMain函数里,看到这样的代码:

004114D4    68 4B104100     PUSH    crackme.0041104B
004114D9    64:FF35 0000000>PUSH    DWORD PTR FS:[0]
004114E0    64:8925 0000000>MOV     DWORD PTR FS:[0], ESP
004114E7    83EC 10         SUB     ESP, 10
004114EA    64:A1 30000000  MOV     EAX, DWORD PTR [COLOR="Red"]FS:[30][/COLOR]
004114F0    8B40 68         MOV     EAX, DWORD PTR [COLOR="Red"]DS:[EAX+68][/COLOR]
004114F3    83E0 70         AND     EAX, 70
004114F6    85C0            TEST    EAX, EAX
004114F8  ^ 0F84 4DFBFFFF   JE      crackme.0041104B



再次,在按钮事件响应中,有这样的代码:

0041195B    64:A1 30000000  MOV     EAX, DWORD PTR [COLOR="Red"]FS:[30][/COLOR]
00411961    8B40 18         MOV     EAX, DWORD PTR [COLOR="Red"]DS:[EAX+18][/COLOR]
00411964    8B40 10         MOV     EAX, DWORD PTR [COLOR="Red"]DS:[EAX+10][/COLOR]
00411967    85C0            TEST    EAX, EAX
00411969  ^\0F85 B3F7FFFF   JNZ     crackme.00411122


以及这样的代码

00411A1F    64:A1 30000000  MOV     EAX, DWORD PTR [COLOR="Red"]FS:[30][/COLOR]
00411A25    8A40 02         MOV     AL, BYTE PTR[COLOR="Red"] DS:[EAX+2][/COLOR]
00411A28    84C0            TEST    AL, AL
00411A2A  ^ 0F85 F2F6FFFF   JNZ     crackme.00411122


而在计算注册码的过程中,有这样的代码:

00411A57    64:A1 30000000  MOV     EAX, DWORD PTR [COLOR="Red"]FS:[30][/COLOR]
00411A5D    8B40 68         MOV     EAX, DWORD PTR [COLOR="Red"]DS:[EAX+68[/COLOR]]
00411A60    8945 DC         MOV     DWORD PTR SS:[EBP-24], EAX


其中这个[ebp-24]是参与了注册码的运算的:

00411AE5    DA45 DC         FIADD   DWORD PTR SS:[EBP-24]


以上就是我所发现的所有检测点了。不知道有什么遗漏没有。

至于以上检测调试器的方法都是什么原理,可以参考《脱壳的艺术》(在论坛搜索下载),以及这篇文章

http://bbs.pediy.com/showthread.php?t=71113

与上一版有什么差别,没具体看,只看到把一常数100变成128了。

还是明码比较。最简单的方法,在msvcr90d.strcmp处下断点,就可以拦到真码了。

name:Pain++

code:e315447

图就不截了。

PS.那些不能运行的朋友们,我估计去装一个MS VC 2008 REDISTRIBUTE,应该就好了。
2008-12-25 12:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
ls高手.膜拜膜拜...我继续研习...

至于明码。我的目的不是算法.。。。呵呵
2008-12-25 14:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
  在TlsCallback下断点是未标识的啊,不好意思,本人才疏学浅,还望见谅。

  看了脱壳的艺术,根据里面的提示调了下设置,来到了77B97DFF。
2008-12-25 21:48
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12

上传的附件:
2008-12-31 11:34
0
游客
登录 | 注册 方可回帖
返回
//