首页
社区
课程
招聘
[求详细过程]放个CrackMe,求高手写出分析
发表于: 2009-9-22 11:11 9520

[求详细过程]放个CrackMe,求高手写出分析

2009-9-22 11:11
9520
肉鸡没搞定,请高手支招!
VirtualAlloc申请一段内存空间
貌似是简单的SMC技术(异或)而已,我手工构造半天,一不小心就错误。。。。。
可以有爆破思路跟猜解思路。
爆破就是自己构造代码到申请的空间,修改跳转
猜解就不知道如何下手了

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

上传的附件:
收藏
免费
支持
分享
最新回复 (31)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
没搞定  谁推出来了讲下
2009-9-22 11:25
0
雪    币: 318
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
这个只有等穷举完的比较好的牛x人来了
2009-9-22 12:41
0
雪    币: 152
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
00401000 >/$  6A 00         PUSH 0                                   ; /lParam = NULL
00401002  |.  68 90104000   PUSH crackme.00401090                    ; |DlgProc = crackme.00401090
00401007  |.  6A 00         PUSH 0                                   ; |hOwner = NULL
00401009  |.  6A 65         PUSH 65                                  ; |pTemplate = 65
0040100B  |.  6A 00         PUSH 0                                   ; |/pModule = NULL
0040100D  |.  E8 F8000000   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; |\GetModuleHandleA
00401012  |.  50            PUSH EAX                                 ; |hInst
00401013  |.  E8 FE000000   CALL <JMP.&USER32.DialogBoxParamA>       ; \DialogBoxParamA
00401018  |.  83F8 01       CMP EAX,1                                ;  判断输入是否为空
0040101B  |.  7E 72         JLE SHORT crackme.0040108F               ;  是就跳
0040101D  |.  6A 40         PUSH 40                                  ; /Protect = PAGE_EXECUTE_READWRITE
0040101F  |.  68 00101000   PUSH 101000                              ; |AllocationType = MEM_COMMIT|MEM_TOP_DOWN
00401024  |.  68 00100000   PUSH 1000                                ; |Size = 1000 (4096.)
00401029  |.  6A 00         PUSH 0                                   ; |Address = NULL
0040102B  |.  E8 E0000000   CALL <JMP.&KERNEL32.VirtualAlloc>        ; \VirtualAlloc   申请新空间
00401030  |.  8BF8          MOV EDI,EAX                              ;  申请的空间通过EAX传给EDI
00401032  |.  33C0          XOR EAX,EAX                              ;  清空一些寄存器,以下略同
00401034  |.  33DB          XOR EBX,EBX
00401036  |.  33C9          XOR ECX,ECX
00401038  |.  33F6          XOR ESI,ESI
0040103A  |.  49            DEC ECX                                  ;  ECX=-1
0040103B  |>  8A86 10304000 /MOV AL,BYTE PTR DS:[ESI+403010]         ;  从ESI+403010处取字符
00401041  |.  02C3          |ADD AL,BL
00401043  |.  3283 00304000 |XOR AL,BYTE PTR DS:[EBX+403000]
00401049  |.  88043E        |MOV BYTE PTR DS:[ESI+EDI],AL            ;  存入申请空间
0040104C  |.  C1E0 03       |SHL EAX,3
0040104F  |.  32C8          |XOR CL,AL
00401051  |.  66:F7D1       |NOT CX
00401054  |.  C0D9 03       |RCR CL,3
00401057  |.  46            |INC ESI
00401058  |.  43            |INC EBX
00401059  |.  80BB 00304000>|CMP BYTE PTR DS:[EBX+403000],0
00401060  |.  75 02         |JNZ SHORT crackme.00401064
00401062  |.  33DB          |XOR EBX,EBX
00401064  |>  83FE 49       |CMP ESI,49                              ;  是否计算了0x49次?
00401067  |.^ 75 D2         \JNZ SHORT crackme.0040103B              ;  回跳
00401069  |.  3D 00D8B66D   CMP EAX,6DB6D800                         ;  计算结果中EAX比较
0040106E  |.  75 0C         JNZ SHORT crackme.0040107C               ;  跳到错误
00401070  |.  81F9 9E00FFFF CMP ECX,FFFF009E                         ;  ECX比较
00401076  |.  75 04         JNZ SHORT crackme.0040107C               ;  跳到错误
00401078  |.  FFD7          CALL EDI                                 ;  跳到EDI指向的申请空间
0040107A  |.  EB 13         JMP SHORT crackme.0040108F
0040107C  |>  6A 10         PUSH 10                                  ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
0040107E  |.  68 96304000   PUSH crackme.00403096                    ; |password invalid
00401083  |.  68 60304000   PUSH crackme.00403060                    ; |the password you entered is invalid. please check it.
00401088  |.  6A 00         PUSH 0                                   ; |hOwner = NULL
0040108A  |.  E8 9F000000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA
0040108F  \>  C3            RETN
2009-9-22 13:36
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
没有高手来指导呢?
2009-9-22 17:10
0
雪    币: 358
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这种东西弄多了  感觉一点意思都没有了
2009-9-22 18:54
0
雪    币: 9
活跃值: (142)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
7
得找穷举高手!
2009-9-23 02:03
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
8
123456
上传的附件:
2009-9-23 16:26
0
雪    币: 76
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
楼上的老大能放出破文么
2009-9-23 17:43
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
10
能给点提示吗?
2009-9-24 00:18
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
11
首先可以确定解码后的最后一位是0 并且之前的8位应该都是小写字母 根据这个条件可以确定密码的长度只可能为10 11 13 14 15 而且代码很短 应该是MessageBox 最后保存的就是提示信息字符串了 根据Shellcode常见的代码定位方式 判断最开始的指令应该是 E8 00 00 00 00 密码13位长时相应最后一位0的地方也是0 猜测应该是两个字符串的分隔符 将最开始的5个密码确定后代入看最终结果 看到最后有ati字样 刚开始猜是congratulation 将最后补成ation 又看到前面有sfully字样 猜是successfully 线索越来越多 再猜下就成功了
2009-9-24 10:24
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
12
哎 我水平太菜啊 猜不出来
2009-9-24 13:32
0
雪    币: 154
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
什么东西来的,肉鸡???
2009-9-24 15:33
0
雪    币: 152
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
原来是这样的啊 还以为正确就直接退出了。。。 Call EDI还得自己构造代码
2009-9-24 16:39
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
15
那个哥们跟出来了,写下分析过程
实在跟不出来
2009-9-24 17:05
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0040103B  |> /8A86 10304000 /mov     al, byte ptr [esi+403010]
00401041  |. |02C3          |add     al, bl
00401043  |. |3283 00304000 |xor     al, byte ptr [ebx+403000]
00401049  |. |88043E        |mov     byte ptr [esi+edi], al
0040104C  |. |C1E0 03       |shl     eax, 3
0040104F  |. |32C8          |xor     cl, al
00401051  |. |66:F7D1       |not     cx
00401054  |. |C0D9 03       |rcr     cl, 3
00401057  |. |46            |inc     esi
00401058  |. |43            |inc     ebx
00401059  |. |80BB 00304000>|cmp     byte ptr [ebx+403000], 0
00401060  |. |75 02         |jnz     short 00401064
00401062  |. |33DB          |xor     ebx, ebx
00401064  |> |83FE 49       |cmp     esi, 49
00401067  |.^\75 D2         \jnz     short 0040103B
00401069      3D 00D8B66D   cmp     eax, 6DB6D800
0040106E      75 0C         jnz     short 0040107C
00401070      81F9 9E00FFFF cmp     ecx, FFFF009E
00401076      75 04         jnz     short 0040107C
00401078      FFD7          call    edi
2009-9-24 17:12
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
17
cmp     eax, 6DB6D800
cmp     ecx, FFFF009E
这段代码什么意思?取49次
2009-9-24 17:14
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
18
call edi为注册算法
2009-9-24 17:14
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
19
爆破不行
2009-9-24 17:17
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
20
看不懂呢
2009-9-24 17:20
0
雪    币: 152
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
爆破肯定不行啊,爆破Call EDI就有可能是无效指令了。。。VirtualAlloc 用得不错
2009-9-24 17:41
0
雪    币: 152
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
计算结果与正确进行比较。。。
2009-9-24 17:44
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
23
那怎么办呢?猜不出来呢
2009-9-24 18:00
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
24
看不懂呢
2009-9-27 23:18
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
25
可以爆破吗?
2009-9-27 23:19
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册