首页
社区
课程
招聘
给大家练练手,我写的CrackMe0.1
发表于: 2004-5-11 20:20 13571

给大家练练手,我写的CrackMe0.1

2004-5-11 20:20
13571
收藏
免费 10
支持
分享
最新回复 (28)
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
2
没有人吗???
2004-5-11 22:48
0
雪    币: 329
活跃值: (343)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
看看
2004-5-11 22:51
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MGH
4
好啊!
  我下载试用一下,有问题告诉你。
2004-5-11 22:56
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
稍候……
2004-5-11 22:59
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
6
要是搞出来了就放上来与大家分享一下吧。。。
2004-5-11 23:44
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
xIkUg的CrackMe V0.1

N久没搞破解了,看到新论坛的第一个CrackMe索性做了一下,呵呵。

CrackMe.exe是手动伪装VC入口方式 + UPX压缩,可以把OEP改为0046C310,然后直接用FileScan脱壳就行啦。

简单分析如下:

用户名:fly[CUG]
试炼码:13572468
―――――――――――――――――――――――――――――――――
004545BA     E8 59FBFAFF          call 0.00404118
004545BF     83F8 08              cmp eax,8
004545C2     7D 16                jge short 0.004545DA//用户名至少8位
004545C4     B9 50474500          mov ecx,0.00454750
004545C9     B2 01                mov dl,1
004545CB     A1 746F4000          mov eax,dword ptr ds:[406F74]
004545D0     E8 3B6FFBFF          call 0.0040B510
004545D5     E8 BAF2FAFF          call 0.00403894
004545DA     8B45 F8              mov eax,dword ptr ss:[ebp-8]
004545DD     E8 36FBFAFF          call 0.00404118
004545E2     83F8 08              cmp eax,8
004545E5     7D 16                jge short 0.004545FD//注册码>=8位
004545E7     B9 6C474500          mov ecx,0.0045476C
004545EC     B2 01                mov dl,1
004545EE     A1 746F4000          mov eax,dword ptr ds:[406F74]
004545F3     E8 186FFBFF          call 0.0040B510
004545F8     E8 97F2FAFF          call 0.00403894
004545FD     8B45 F8              mov eax,dword ptr ss:[ebp-8]
00454600     E8 13FBFAFF          call 0.00404118
00454605     83F8 12              cmp eax,12
00454608     7E 16                jle short 0.00454620//注册码<=18位

―――――――――――――――――――――――――――――――――

004546BF     FF50 0C              call dword ptr ds:[eax+C]//对用户名、试炼码运算
004546C2     8B45 EC              mov eax,dword ptr ss:[ebp-14]//F1AFFD
004546C5     50                   push eax
004546C6     6A 00                push 0
004546C8     68 0066AAFF          push FFAA6600//固定值
004546CD     8D55 E4              lea edx,dword ptr ss:[ebp-1C]
004546D0     B8 02000000          mov eax,2
004546D5     E8 8639FBFF          call 0.00408060
004546DA     8B55 E4              mov edx,dword ptr ss:[ebp-1C]//FFAA6600
004546DD     58                   pop eax
004546DE     E8 81FBFAFF          call 0.00404264//比较CALL ★
004546E3     75 17                jnz short 0.004546FC//跳则OVER
004546E5     6A 00                push 0
004546E7     66:8B0D D8474500     mov cx,word ptr ds:[4547D8]
004546EE     B2 02                mov dl,2
004546F0     B8 E4474500          mov eax,0.004547E4//成功提示
004546F5     E8 922EFDFF          call 0.0042758C
004546FA     EB 05                jmp short 0.00454701

―――――――――――――――――――――――――――――――――
看看:004546BF  call dword ptr ds:[eax+C]//对用户名、试炼码运算

00454220     BA 01000000          mov edx,1
00454225     8B4D 10              mov ecx,dword ptr ss:[ebp+10]
00454228     0FB64C11 FF          movzx ecx,byte ptr ds:[ecx+edx-1]//依次取用户名字符运算
0045422D     C1E3 02              shl ebx,2
00454230     03CB                 add ecx,ebx
00454232     8BD9                 mov ebx,ecx
00454234     42                   inc edx
00454235     48                   dec eax
00454236     75 ED                jnz short 0.00454225//循环结果EBX=00229689

00454238     035D 14              add ebx,dword ptr ss:[ebp+14]
//加上试炼码的16进制值  EBX=00229689+00CF1974=00F1AFFD
0045423B     8BC3                 mov eax,ebx
0045423D     33D2                 xor edx,edx
0045423F     52                   push edx
00454240     50                   push eax
00454241     8B55 08              mov edx,dword ptr ss:[ebp+8]
00454244     B8 02000000          mov eax,2
00454249     E8 123EFBFF          call 0.00408060
0045424E     33C0                 xor eax,eax
00454250     5A                   pop edx                                           ; 0012F56C
00454251     59                   pop ecx                                           ; 0012F56C
00454252     59                   pop ecx                                           ; 0012F56C
00454253     64:8910              mov dword ptr fs:[eax],edx
00454256     68 6B424500          push 0.0045426B
0045425B     8D45 10              lea eax,dword ptr ss:[ebp+10]
0045425E     E8 F5FBFAFF          call 0.00403E58
00454263     C3                   retn

―――――――――――――――――――――――――――――――――
简单求逆:

 
固定值FFAA6600-用户名fly[CUG]运算得出的值00229689=注册码=FF87CF77(H)=4287090551(D)

用户名:fly[CUG]
注册码:4287090551



―――――――――――――――――――――――――――――――――
         ,     _/ 
        /| _.-~/            \_     ,        青春都一晌
       ( /~   /              \~-._ |\
       `\\  _/                \   ~\ )          忍把浮名 
   _-~~~-.)  )__/;;,.          \_  //'
  /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        换了破解轻狂
 `~ _( ,_..--\ (     ,;'' /    ~--   /._`\ 
  /~~//'   /' `~\         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`\    `\\~~\   
                         "     "   "~'  ""

   
   Cracked By 巢水工作坊――fly [OCN][FCG][NUKE][DCM]

               2004-05-12  02:00
2004-5-12 02:03
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
呵呵~~我也刚找到关键点了,但算法还没有搞清楚,只能爆破。Fly版主果然高明,佩服!佩服。
这个软件用UPX压缩另加伪装,手动脱壳不难,再加上一SHE异常,只要搞掂这个SHE异常要找关键点就比较容易了。
2004-5-12 02:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
晕啊我是新手啊谁能教我啊谢谢了
2004-5-12 07:56
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
10
fly兄果然厉害...PFPF
2004-5-12 08:43
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
11
我倒是把壳脱了,但总是无法中断在46F000处,程序总是直接运行,只能在SEH的地方断下来再跟踪。各位是怎么让它载入时中断下来?
2004-5-12 09:15
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
根本就不用脱壳,呵呵
在出现异常后,看stack中第二项,就可以发现出现异常的地址,也就找到关键比较代码处
2004-5-12 11:34
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
13
最初由 lordor 发布
根本就不用脱壳,呵呵
在出现异常后,看stack中第二项,就可以发现出现异常的地址,也就找到关键比较代码处

脱壳是为了爆破,我的水平太菜,无法求逆。
2004-5-12 11:45
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
14
最初由 小虾 发布

脱壳是为了爆破,我的水平太菜,无法求逆。


lordor说得对...
2004-5-12 12:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
大家好!我是一个电脑爱好者,对这个是刚刚起步,什么都不懂,希望各位大侠以后多多指点,我在这里先谢了!
2004-5-12 12:23
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
16
最初由 lordor 发布
根本就不用脱壳,呵呵
在出现异常后,看stack中第二项,就可以发现出现异常的地址,也就找到关键比较代码处


多数程序是可以这样判断的,但好象这个程序在异常中断后堆栈中的第二项数据并不指向异常地址,要在发生异常前查看堆栈才能找到处理代码。

我的理解是这样的:
00454669  PUSH CRACKME.00454694                    -->推入异常处理代码
0045466E  PUSH DWORD PTR FS:[EAX]
00454671  MOV DWORD PTR FS:[EAX],ESP
00454674  MOV ECX,CRACKME.004547CC
00454679  MOV DL,1
0045467B  MOV EAX,DWORD PTR DS:[454528]
00454680  CALL CRACKME.0040B510
00454685  CALL CRACKME.00403894                    -->RaiseException,设置异常,此时堆栈中的第二项数据并指向异常处理地址
0045468A  XOR EAX,EAX                              -->98下异常中断在此,单步运行下去则无法到达注册比较代码
0045468C  POP EDX
0045468D  POP ECX
0045468E  POP ECX
0045468F  MOV DWORD PTR FS:[EAX],EDX
00454692  JMP SHORT CRACKME.00454706
00454694  JMP CRACKME.004036D4                     -->在中断处按shift+F8则直接到此处理异常,然后跳向注册比较代码。

我对设置异常的方法不清楚,只能分析到此。
2004-5-12 15:30
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
17
还有一个更简单的方法
直接alt+k,直接看从那跳过来
2004-5-12 15:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
orange-red
  fly兄是牛刀小试吧 我可有了钻研的信心了……一定努力……
2004-5-13 10:28
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我没多久就算出来了
2004-5-13 10:48
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
20
爆破成功!
2004-5-13 11:29
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
哈哈有够详细的
2004-5-13 17:53
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
下来学学~~~~~~~~
2004-11-22 18:42
0
雪    币: 212
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
0045463E JNZ xxxxxxx
爆破!:D
2004-11-26 16:30
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
各位高手,能否把脱壳过程贴出来,让菜鸟学习学习
2004-11-26 16:48
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
25
最初由 hcjsj 发布
各位高手,能否把脱壳过程贴出来,让菜鸟学习学习


才看到这个CrackMe,试了试,做了注册机。
脱壳过程嘛,很简单,hr 12ffc0,第4次断下后,再F8一次,用OD脱壳,选方式2修复注册表即可。

奇怪,如何把注册机附上呢?
2004-11-26 23:17
0
游客
登录 | 注册 方可回帖
返回
//