首页
社区
课程
招聘
[原创]我写的第一个CrackMe
发表于: 2009-4-9 18:51 12564

[原创]我写的第一个CrackMe

2009-4-9 18:51
12564
看上去挺简单的哦
没有+壳

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (38)
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
加个asprotect啊
2009-4-9 23:12
0
雪    币: 244
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嘿嘿,要写注册机哦
2009-4-10 09:09
0
雪    币: 244
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
0040CB30  /$  55            PUSH EBP
0040CB31  |.  8BEC          MOV EBP,ESP
0040CB33  |.  57            PUSH EDI
0040CB34  |.  56            PUSH ESI
0040CB35  |.  53            PUSH EBX
0040CB36  |.  8B75 0C       MOV ESI,DWORD PTR SS:[EBP+C]
0040CB39  |.  8B7D 08       MOV EDI,DWORD PTR SS:[EBP+8]
0040CB3C  |.  B0 FF         MOV AL,0FF
0040CB3E  |.  8BFF          MOV EDI,EDI
0040CB40  |>  0AC0          /OR AL,AL
0040CB42  |.  74 32         |JE SHORT CrackME.0040CB76
0040CB44  |.  8A06          |MOV AL,BYTE PTR DS:[ESI]
0040CB46  |.  83C6 01       |ADD ESI,1
0040CB49  |.  8A27          |MOV AH,BYTE PTR DS:[EDI]
0040CB4B  |.  83C7 01       |ADD EDI,1
0040CB4E  |.  38C4          |CMP AH,AL
0040CB50  |.^ 74 EE         |JE SHORT CrackME.0040CB40
0040CB52  |.  2C 41         |SUB AL,41
0040CB54  |.  3C 1A         |CMP AL,1A
0040CB56  |.  1AC9          |SBB CL,CL
0040CB58  |.  80E1 20       |AND CL,20
0040CB5B  |.  02C1          |ADD AL,CL
0040CB5D  |.  04 41         |ADD AL,41
0040CB5F  |.  86E0          |XCHG AL,AH
0040CB61  |.  2C 41         |SUB AL,41
0040CB63  |.  3C 1A         |CMP AL,1A
0040CB65  |.  1AC9          |SBB CL,CL
0040CB67  |.  80E1 20       |AND CL,20
0040CB6A  |.  02C1          |ADD AL,CL
0040CB6C  |.  04 41         |ADD AL,41
0040CB6E  |.  38E0          |CMP AL,AH
0040CB70  |.^ 74 CE         \JE SHORT CrackME.0040CB40
0040CB72  |.  1AC0          SBB AL,AL
0040CB74  |.  1C FF         SBB AL,0FF
0040CB76  |>  0FBEC0        MOVSX EAX,AL
0040CB79  |.  5B            POP EBX
0040CB7A  |.  5E            POP ESI
0040CB7B  |.  5F            POP EDI
0040CB7C  |.  C9            LEAVE
0040CB7D  \.  C3            RETN

用这个写注册机吧,计算注册码的地方
2009-4-10 09:21
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
5
不对!不是想的那么简单
2009-4-10 10:29
0
雪    币: 244
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没仔细跟下去
2009-4-10 10:42
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
7
没人玩我玩

sessiondiy
26363B3130362C2C3A2C
2009-4-10 12:24
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
反OD调试 ?这个有点难!反OD调试用的是什么原理?
2009-4-10 12:27
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
9
sessiondiy大侠终于做出来了,厉害啊,我还没有弄明白呢
2009-4-10 12:40
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
晕S,到这里不知道咋搞了。。。。。。。。。。。。

00401911  |.  BA 28F94100   MOV EDX,CrackME.0041F928                 ;  ASCII "56585558535A"
00401916  |.  2BD0          SUB EDX,EAX
00401918  |>  8A08          /MOV CL,BYTE PTR DS:[EAX]
0040191A  |.  880C02        |MOV BYTE PTR DS:[EDX+EAX],CL
0040191D  |.  40            |INC EAX
0040191E  |.  84C9          |TEST CL,CL
00401920  |.^ 75 F6         \JNZ SHORT CrackME.00401918
00401922  |.  8D0424        LEA EAX,DWORD PTR SS:[ESP]
00401925  |.  50            PUSH EAX
00401926  |.  68 28FA4100   PUSH CrackME.0041FA28                    ;  ASCII "keheng"
0040192B  |.  E8 40FDFFFF   CALL CrackME.00401670
00401930  |.  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
00401934  |.  51            PUSH ECX
00401935  |.  68 28F94100   PUSH CrackME.0041F928                    ;  ASCII "56585558535A"
0040193A  |.  E8 3FB20000   CALL CrackME.0040CB7E
0040193F  |.  83C4 10       ADD ESP,10
00401942  |.  85C0          TEST EAX,EAX
00401944      75 13         JNZ SHORT CrackME.00401959
00401946  |.  6A 40         PUSH 40
00401948  |.  68 74854100   PUSH CrackME.00418574                    ;  成功
0040194D  |.  68 68854100   PUSH CrackME.00418568                    ;  注册成功!
00401952  |.  68 00100000   PUSH 1000
00401957  |.  EB 11         JMP SHORT CrackME.0040196A
00401959  |>  6A 10         PUSH 10                                  ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
0040195B  |.  68 60854100   PUSH CrackME.00418560                    ; |失败
00401960  |.  68 54854100   PUSH CrackME.00418554                    ; |注册失败!
00401965  |.  68 00200000   PUSH 2000                                ; |hOwner = 00002000
0040196A  |>  FF15 30834100 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA
00401970  |.  8B8C24 000100>MOV ECX,DWORD PTR SS:[ESP+100]
00401977  |.  E8 A8220000   CALL CrackME.00403C24
0040197C  |.  81C4 04010000 ADD ESP,104
00401982  \.  C3            RETN
上传的附件:
2009-4-10 12:54
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
注册码应该是
56585558535A经过以下的注册计算算出来的,不知道是不是。

0040CB30  /$  55            PUSH EBP
0040CB31  |.  8BEC          MOV EBP,ESP
0040CB33  |.  57            PUSH EDI
0040CB34  |.  56            PUSH ESI
0040CB35  |.  53            PUSH EBX
0040CB36  |.  8B75 0C       MOV ESI,DWORD PTR SS:[EBP+C]
0040CB39  |.  8B7D 08       MOV EDI,DWORD PTR SS:[EBP+8]
0040CB3C  |.  B0 FF         MOV AL,0FF
0040CB3E  |.  8BFF          MOV EDI,EDI
0040CB40  |>  0AC0          /OR AL,AL
0040CB42  |.  74 32         |JE SHORT CrackME.0040CB76
0040CB44  |.  8A06          |MOV AL,BYTE PTR DS:[ESI]
0040CB46  |.  83C6 01       |ADD ESI,1
0040CB49  |.  8A27          |MOV AH,BYTE PTR DS:[EDI]
0040CB4B  |.  83C7 01       |ADD EDI,1
0040CB4E  |.  38C4          |CMP AH,AL
0040CB50  |.^ 74 EE         |JE SHORT CrackME.0040CB40
0040CB52  |.  2C 41         |SUB AL,41
0040CB54  |.  3C 1A         |CMP AL,1A
0040CB56  |.  1AC9          |SBB CL,CL
0040CB58  |.  80E1 20       |AND CL,20
0040CB5B  |.  02C1          |ADD AL,CL
0040CB5D  |.  04 41         |ADD AL,41
0040CB5F  |.  86E0          |XCHG AL,AH
0040CB61  |.  2C 41         |SUB AL,41
0040CB63  |.  3C 1A         |CMP AL,1A
0040CB65  |.  1AC9          |SBB CL,CL
0040CB67  |.  80E1 20       |AND CL,20
0040CB6A  |.  02C1          |ADD AL,CL
0040CB6C  |.  04 41         |ADD AL,41
0040CB6E  |.  38E0          |CMP AL,AH
0040CB70  |.^ 74 CE         \JE SHORT CrackME.0040CB40
0040CB72  |.  1AC0          SBB AL,AL
0040CB74  |.  1C FF         SBB AL,0FF
0040CB76  |>  0FBEC0        MOVSX EAX,AL
0040CB79  |.  5B            POP EBX
0040CB7A  |.  5E            POP ESI
0040CB7B  |.  5F            POP EDI
0040CB7C  |.  C9            LEAVE
0040CB7D  \.  C3            RETN
2009-4-10 13:01
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
12
楼上两位第一步就错了,不要被表面现象迷惑了!
    好像是通过CreateRemoteThread方式将注册验证过程放入到explorer.exe中进行 ,难度比较大啊!
2009-4-10 14:31
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好難阿

試著不讓IsDebug 那個function跑

不過還是躲不過  方向錯了嗎@@
2009-4-10 14:36
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
14
同样的一句话
用 ring0 debugger 可以秒破的东东
2009-4-10 15:22
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
15
强大的sessiondiy大侠,呵呵,你用的工具也十分的强大啊,我用OD跟得头晕眼花也没跟出来结果。
2009-4-10 15:34
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
OD也行, 较麻烦就是了.
你也须熟一套. syser应该是不错的选择.
2009-4-10 15:36
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
17
大侠能否指点一二呀? 诚恳请教!
2009-4-10 15:40
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
18
首先 序号长度为 2*Len(Username)

在 Exploer 内配置一块mem
   004014D0  |.  FFD5           call  ebp       ;  KERNEL32.VirtualAllocEx
将 username 写过去
   004014F0  |.  FF15 04F94100  call  [41F904]  ;  KERNEL32.WriteProcessMemory

在 Exploer 内配置一块mem
   0040151A  |.  FFD5           call  ebp       ;  KERNEL32.VirtualAllocEx
将 注册码 写过去
   00401533  |.  FF15 04F94100  call    [41F904];  KERNEL32.WriteProcessMemory

在 Exploer 内配置一块mem
   00401594  |.  FFD5           call  ebp       ;  KERNEL32.VirtualAllocEx
将 在Exploer内执行时所需用到的数据 写过去
   004015A3  |.  FF15 04F94100  call  [41F904]  ;  KERNEL32.WriteProcessMemory

在 Exploer 内配置一块mem
   004015B8  |.  FFD5           call  ebp       ;  KERNEL32.VirtualAllocEx

/--将 检查注册码的程序码 写过去--\
在按F8之前, 请将第1个Byte改成 CC, 亦即 [401380] 由 53 改为 CC
并将 OllyDbg 设为系统预设调试器
   004015CA  |.  FF15 04F94100  call    [41F904];  KERNEL32.WriteProcessMemory

然后是这条=>  004015DB  |.  FF15 44824100  call  [<&KERNEL32.CreateRemoteThread>]
这条按 F8 后将会开启另一个 OllyDbg, 并停在 CC
请将 CC 改回 53 , 此即为真正检查注册码之程序码.
要知道你分析的注册码正不正确最简单最好的方法就是再直接执行一个 Crackme

这一题你不应该问人的, 应该自己研究.

Ring0 调试器的话..咬着注册码就直达那里了.
2009-4-10 16:47
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
19
可以这样修改吧:
00401456   BE FFFFFFFF      MOV     ESI,-1
0040145B   90               NOP
2009-4-10 17:05
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
20
他不可以..
2009-4-10 17:16
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
21
LZ为何你满天星?
善事我也常做为何...
2009-4-10 17:35
0
雪    币: 1074
活跃值: (160)
能力值: ( LV13,RANK:760 )
在线值:
发帖
回帖
粉丝
22
谢谢大侠指点,我是确实没有思路了才问你的,呵呵,大侠不要见怪呀
  晚上继续研究了半天,终于调试通过了,不得不佩服作者的设计思路,太强大了:
  CM注入到explore.exe验证后又通过远程对象来修改自身数据,真的很精彩!
2009-4-10 18:54
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
思路好啊,但是不太喜欢钩子。。
2009-4-11 00:44
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
24
哪位大侠能不能写个破文,详细点的。。。。。。。。。。。。谢谢
2009-4-11 09:21
0
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
25
认真学习了~



向你膜拜,2007年的ID发了处女贴
2009-4-11 11:53
0
游客
登录 | 注册 方可回帖
返回
//