能力值:
( LV12,RANK:370 )
|
-
-
2 楼
没有人吗???
|
能力值:
( LV10,RANK:170 )
|
-
-
3 楼
看看
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
好啊!
我下载试用一下,有问题告诉你。
|
能力值:
(RANK:410 )
|
-
-
5 楼
稍候……
|
能力值:
( LV12,RANK:370 )
|
-
-
6 楼
要是搞出来了就放上来与大家分享一下吧。。。
|
能力值:
( LV9,RANK:3410 )
|
-
-
7 楼
xIkUg 的CrackMe V0.1N 久没搞破解了,看到新论坛的第一个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
|
能力值:
(RANK:410 )
|
-
-
8 楼
呵呵~~我也刚找到关键点了,但算法还没有搞清楚,只能爆破。Fly版主果然高明,佩服!佩服。
这个软件用UPX压缩另加伪装,手动脱壳不难,再加上一SHE异常,只要搞掂这个SHE异常要找关键点就比较容易了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
晕啊我是新手啊谁能教我啊谢谢了
|
能力值:
( LV12,RANK:370 )
|
-
-
10 楼
fly兄果然厉害...PFPF
|
能力值:
( LV9,RANK:250 )
|
-
-
11 楼
我倒是把壳脱了,但总是无法中断在46F000处,程序总是直接运行,只能在SEH的地方断下来再跟踪。各位是怎么让它载入时中断下来?
|
能力值:
( LV9,RANK:250 )
|
-
-
12 楼
根本就不用脱壳,呵呵
在出现异常后,看stack中第二项,就可以发现出现异常的地址,也就找到关键比较代码处
|
能力值:
(RANK:410 )
|
-
-
13 楼
最初由 lordor 发布 根本就不用脱壳,呵呵 在出现异常后,看stack中第二项,就可以发现出现异常的地址,也就找到关键比较代码处
脱壳是为了爆破,我的水平太菜,无法求逆。
|
能力值:
( LV12,RANK:370 )
|
-
-
14 楼
最初由 小虾 发布
脱壳是为了爆破,我的水平太菜,无法求逆。
lordor说得对...
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
大家好!我是一个电脑爱好者,对这个是刚刚起步,什么都不懂,希望各位大侠以后多多指点,我在这里先谢了!
|
能力值:
( 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则直接到此处理异常,然后跳向注册比较代码。
我对设置异常的方法不清楚,只能分析到此。
|
能力值:
( LV9,RANK:250 )
|
-
-
17 楼
还有一个更简单的方法
直接alt+k,直接看从那跳过来
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
orange-red
fly兄是牛刀小试吧 我可有了钻研的信心了……一定努力……
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
我没多久就算出来了
|
能力值:
( LV9,RANK:250 )
|
-
-
20 楼
爆破成功!
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
哈哈有够详细的
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
下来学学~~~~~~~~
|
能力值:
( LV4,RANK:50 )
|
-
-
23 楼
0045463E JNZ xxxxxxx
爆破!:D
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
各位高手,能否把脱壳过程贴出来,让菜鸟学习学习
|
能力值:
( LV9,RANK:210 )
|
-
-
25 楼
最初由 hcjsj 发布 各位高手,能否把脱壳过程贴出来,让菜鸟学习学习
才看到这个CrackMe,试了试,做了注册机。
脱壳过程嘛,很简单,hr 12ffc0,第4次断下后,再F8一次,用OD脱壳,选方式2修复注册表即可。
奇怪,如何把注册机附上呢?
|
|
|