首页
社区
课程
招聘
[原创]我的CrackMe
发表于: 2006-12-15 11:27 14517

[原创]我的CrackMe

2006-12-15 11:27
14517
收藏
免费 7
支持
分享
最新回复 (38)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
26
楼上所言极是
不是没看
是看不出所以然

老大还是给个源码分析吧
2006-12-16 18:44
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
27
难道跟HaCkEr有关系?
有没有上次我发的那crackme...强?
还请shoooo大姐姐做个教程,.,...
2006-12-17 09:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nsd
28
shoooo大姐姐,难道shoooo是???????
2006-12-17 18:36
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
高手讨论   小菜听不懂  努力学习呀
2006-12-17 19:33
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
30
源码
上传的附件:
2006-12-18 09:01
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
31
谢谢

看了
句句精典

2006-12-18 10:40
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
zcg
32
下来学习,感谢了!
2006-12-18 17:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
以下给菜菜看的,还请shoooo指教

结合源码跟反编译的代码来看,实际上都差不多。呵呵
程序开始给text1分配了64bytes的空间,但用SendMessage的时候设置最大可获取87BYTES,呵呵,很明显可以溢出text1了
当text1超出64bytes后可以覆盖text2和text3的部分
我开始想可能就是简单的溢出就可以实现了,但是……看下面的代码
004011F8    BE 80104000     mov     esi, 00401080        // text3 16bytes
004011FD    AD              lods    dword ptr [esi]    // esi=esi+4
004011FE    3D CAA7B0DC     cmp     eax, DCB0A7CA
00401203    68 20124000     push    00401220
00401208    B8 15124000     mov     eax, 00401215
0040120D    0F450424        cmovne  eax, [esp]
00401211    870424          xchg    [esp], eax
00401214    C3              retn
00401215    33C0            xor     eax, eax
00401217    50              push    eax
00401218    83EE 04         sub     esi, 4
0040121B    56              push    esi
0040121C    56              push    esi
0040121D    50              push    eax
0040121E    FFD3            call    ebx  // MessageBox
如上,如果把TEXT3覆盖了,在cmp eax,DBB0A7CA(失败),处就回失败,所以很明显,程序并不是简单的溢出字符串就行了。
看到这里其实意图就很明显了,就是一定要改变程序执行流程才行,否则即使让你过了所有的计算校验,在最后弹出的依然是“失败”的对话框
一路顺利(edit=unpackcn edit2=pediycom),来到下面
0040115A    BE 80104000     mov     esi, 00401080
0040115F    BF 95114000     mov     edi, 00401195
00401164    B9 8E114000     mov     ecx, 0040118E
00401169    AD              lods    dword ptr [esi]
0040116A    8BD0            mov     edx, eax
0040116C    AD              lods    dword ptr [esi]
0040116D    66:85C0         test    ax, ax
00401170    68 86114000     push    00401186
00401175    50              push    eax
00401176    B8 95114000     mov     eax, 00401195
0040117B    0F454424 04     cmovne  eax, [esp+4]
00401180    874424 04       xchg    [esp+4], eax
00401184    58              pop     eax
00401185    C3              retn
00401186    8911            mov     [ecx], edx
00401188    66:8941 04      mov     [ecx+4], ax
0040118C    33C0            xor     eax, eax
0040118E    B8 20124000     mov     eax, 00401220
00401193    57              push    edi
00401194    C3              retn

哇,来到了敏感的两条指令
00401186    8911            mov     [ecx], edx
00401188    66:8941 04      mov     [ecx+4], ax
这里edx,ax都是我们可以用溢出字符串来控制的,因此我们就可以改写
0040118E和它后4字节的指令,进行改变程序的执行流程

经典!!!确实经典!!
2006-12-19 12:50
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
34
经典!留名!
2007-1-23 02:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
看的是一头雾水,在努力
2007-1-23 08:11
0
雪    币: 333
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wan
36
不是偶等菜鸟能看得懂的
2007-1-23 08:42
0
雪    币: 209
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
我何时才能有这般本事呀?
2007-1-23 14:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
能介绍一下怎么入手吗?
2007-2-9 20:54
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
39
最初由 pengym 发布
能介绍一下怎么入手吗?


我也想! 看……
2007-2-12 10:37
0
游客
登录 | 注册 方可回帖
返回
//