注册你的Windows Commander 4.52
wincmd4.52发布有一段时间了,我一直忙的要命,没空去搞(实际是陪朋友们去打sc,如果不打的话,即时战略就会变成即时真人快打,-_-所以~~~~~明白~~~?嘿嘿我的sc水平倒是大有长进哦^^),今天花了几个小时搞定它;-)。
现在进入正题,如何注册你的wincmd452? 先进行准备工作:wincmd是aspack压过的,拿trw2000 ver1.23脱壳吧。用trw载入wincmd32.exe,下PNEWSEC,晕~~~~~没反应~~~~~,看来还是偷不得懒呀^Q^。用冲击波找到wincmd的入口点543530,用trw载入wincmd32.exe,下g
543530,下suspend,用PROCDUMP找到wincmd进程,右击之,选dump(full)即可,这样脱壳不完全,能改主程序就行,将就用了^^。好了,看看wincmd脱壳后还能怎么折腾:)。大致分析了一下,它的注册机制同wincmd4.0-4.51一样,根本没有变化,hehe....,这下好办了;-)。
准备工作完成,开始正式crack,一共需要改8处。wincmd是keyfile保护的那种软件,没有keyfile一样改。先用trw2000载入wincmd32.exe,点load,停下来后下bpx
readfile,按f5执行,被拦到,下bd *,按f12直到wincmd的领空。当走到4d6b1c call 4d8cd0时停下来,记下这个地址,按f5,接着退出trw2000,换乘softice。我为什么换成softice,原因很简单,调试的话用s-ice是最舒服的了,脱壳的话用trw或天意是最方便的,所以choose
s-ice没商量。由于不是完全脱壳,不能用s-ice的loader装载,所以~~~按ctrl+d进入softice下bpx hmemcpy,按f5返回,执行wincmd32.exe,被拦到,按数次f12,进入wincmd的领空,下bpx
4d6b1c,按f5又被拦到,按f8接着按f10来到如1.所示的程序:
1.
4d8db1 e86aa7f2ff call 403520
4d8db6 83b80c00000000 cmp dword ptr [eax+0c],00
4d8dbd 7521 ->9090 jnz 4d8de0 ->nop
4d8dbf 8d85e2feffff lea eax,[ebp-011e]
wincmd是靠比较内存判断是否注册的,所用的寄存器是ebx,需要保持为1,走到4d8de0,跳下去的话,会清掉ebx,所以不能让他跳。按f10继续,接着他会比较你的keyfile是否为128字节,若是的话,提示这是旧版,让你更新。不管他,按f10走到如2.所示的程序:
2.
4d8fd6 b966000000 mov eax,00000066
4d8fdb babca42000 mov edx,0020a4bc
4d8fe0 e84ffbffff call 4d8b34
4d8fe5 33c9 xor ecx,ecx
4d8fe7 b201 mov dl,01
4d8b34这个call有问题,跟进去如A.所示程序,把它改为B.所示的程序。其中b5e7c9f1c4a7b9ed20或7a6f6d6269657973是我注册的名字,你可以改成别的名字,其余的部分按B.所示的改。
004cde88->004cdf00
A.
|B.
017f:004d8b34 55 push ebp
|017f:004d8b34 0517000000 add eax,00000017
017f:004d8b35 8bec mov ebp,esp
|017f:004d8b39 c60000 mov byte ptr [eax],00
017f:004d8b37 83c4f8 add esp,-08
|017f:004d8b3c 0503000000 add eax,00000003
017f:004d8b3a 53 push ebx
|017f:004d8b43 c600b5 mov byte ptr [eax],b5
017f:004d8b3b 56 push esi
|017f:004d8b46 40 inc eax
017f:004d8b3c 57 push edi
|017f:004d8b47 c600e7 mov byte ptr [eax],e7
017f:004d8b3d 8bf9 mov edi,ecx
|017f:004d8b4a 40 inc eax
017f:004d8b3f 8945fc mov [ebp-04],eax |017f:004d8b4b
c600c9 mov byte ptr [eax],c9
.
|017f:004d8b4e
40 inc eax
.
|017f:004d8b4f
c600f1 mov byte ptr [eax],f1
.
|017f:004d8b52
40 inc eax
.
|017f:004d8b53
c600c4 mov byte ptr [eax],c4
.
|017f:004d8b56
40 inc eax
.
|017f:004d8b57
c600a7 mov byte ptr [eax],a7
.
|017f:004d8b5a
40 inc eax
.
|017f:004d8b5b
c600b9 mov byte ptr [eax],b9
.
|017f:004d8b5e
40 inc eax
.
|017f:004d8b5f
c600ed mov byte ptr [eax],ed
.
|017f:004d8b62
40 inc eax
017f:004d8ba2 ff4df8 dec dword ptr [ebp-08] |017f:004d8b63 c60020
mov byte ptr [eax],20
017f:004d8ba5 75a8 jnz 004d8b4f |017f:004d8b66
40 inc eax
017f:004d8ba7 5f pop edi
|.
017f:004d8ba8 5e pop esi
|.
017f:004d8ba9 5b pop ebx
|.
017f:004d8baa 59 pop ecx
|.
017f:004d8bab 59 pop ecx
|017f:004d8ba9 c60000 mov byte ptr [eax],00
017f:004d8bac 5d pop ebp
|017f:004d8bac 90 nop
017f:004d8bad c3 ret
|017f:004d8bad c3 ret
接着按F10来到如3.所示的程序,强制他跳过去,不跳的话会清掉ebx的。
3.
017f:004d903b e8e499f2ff call
00402a24
017f:004d9040 0f84ae000000 ->e9af000000 jz 004d90f4 ->jmp 004d90f4
017f:004d9046 33db
xor ebx,ebx
017f:004d9048 33d2
xor edx,edx
继续跟到如4.所示的程序,按列出的方法改。
4.
017f:004d91ff 8d8558f8ffff lea eax,[ebp+fffff858]
017f:004d9205 8bd6 mov edx,esi
017f:004d9207 e81cdaf2ff ->90 call 00406c28 ->nop
->33c9 ->xor ecx,ecx
->8808 ->mov
bytes ptr [eax],cl
017f:004d920c bad0954d00 mov edx,004ce930
017f:004d9211 8d8558f8ffff lea eax,[ebp+fffff858]
当跟到5.所示的地方,这是最后一个跳转了,强制它跳。
5.
017f:004d9456 e8c995f2ff call 00402a24
017f:004d945b 7402 ->eb02 jz 004d945f ->jmp 004d945f
017f:004d945d 33db xor ebx,ebx
接下来,按几次f10到如6.所示的程序,按我列出的方法改。
6.
017f:00543893 a1c4f65400 mov eax,[0054f6c4]
017f:00543898 e88342edff ->eb00 call 00417b20 ->jmp 0054389a
->eb00
->jmp 0054389c
->90
->nop
017f:0054389d a1b0e65300 mov eax,[0054f6c4]
017f:005438a2 e86dadeeff call 0041e834
再按几下f10就进入wincmd了,好了,用我的名字注册的。别忙还没完呢,wincmd还没把你折腾够呢,你晃动几下鼠标,wincmd就会冒出一个框框,告诉你感染virus一类的东西。这时按ctrl+d进入softice,下bpx
lockmytask,按f5返回,点确定,被拦到,下bd *,按几次f12进入wincmd的地盘,往回倒到如7.所示的地方,将JG 4EA8EC改为nop,这是试出来的。
7.
4EA8A9 E87AC3F1FF CALL 406C28
4EA8AE 8B4304 MOV EAX,[EBX+04]
4EA8B1 83F808 CMP EAX,08
4EA8B4 7F36->9090 JG 4EA8EC ->NOP
4EA8B6 0F8456060000 JZ 4EAF12
不忙还没完呢,当你点help,在点about时,会弹出一个注册信息框,你再点确定时,wincmd会自动退出。所以你在点确定之前进入softice,下bpx
lockmytask,按几次f12到如8.所示的地方,把JZ 4F3BB7改为JMP 4F3BB7才能继续使用它。
8.
4F3BA1 A198525400 MOV EAX,[545298]
4F3BA6 2DB9230000 SUB EAX,0023B9
4F3BAB 740A->EB0A JZ 4F3BB7 ->JMP 4F3BB7
完活:)
很麻烦吧@_@
最后就是用winhex以来的东西把wincmd改为注册版了,机器码我都列出来了。
说明:wincmd4.0--4.52之间的所有版本都可以这么改,只是对应的地址不一样。
cracked by zombieys
homepage http://zombieys.126.com
my oicq is 1789655
thanks for your supports
- 标 题:注册你的Windows Commander 4.52(6千字)
- 作 者:zombieys
- 时 间:2001-3-22 19:12:57
- 链 接:http://bbs.pediy.com