windycandy 发表于 2005-8-8 20:36:55

Easyboss VT8的另类爆破

破解说明:本软件未注册版的功能与注册版功能完全相同,只是启动程序时多了个要求注册的NG,本软件在DFCG早已经有人通过修改关键跳来实现爆破,但本人运用作者的方式进行爆破后,所得的程序运行后仍有NG,并且软件的大部分功能键变成了灰色按钮,本人也在DFCG上对此提出过疑问,后来也找到了解决方法,但是没有写出来,这次写出来供和我一样的菜鸟来分享。
破解工具:fly版OD,PEID0.93
操作系统:wundows XP
破解原因:NG
难度:很简单,适合象我一样的菜鸟拿来学习
作者声明:初学cracking,仅作学习交流,无其它目的.如果你觉得本软件对你有用,建议你向软件作者购买注册版
下载:www.chinabizman.com
过程:
PEID查,无壳,Dephli写的程序
OD载入,用插件找到字符串“注册失败!,请检查机器码和服务商提供注册码是否一致”(因我是进入程序后才在任务栏注册),双击来到代码处
0088BB69    8D40 00         lea eax,dword ptr ds:
0088BB6C    53            push ebx
0088BB6D    56            push esi
0088BB6E    8BF0            mov esi,eax
0088BB70    8B0D 24FD8900   mov ecx,dword ptr ds:
0088BB76    B2 01         mov dl,1
0088BB78    A1 98EE7300   mov eax,dword ptr ds:
0088BB7D    E8 76B5C1FF   call ftrade.004A70F8
0088BB82    8BD8            mov ebx,eax
0088BB84    8BC3            mov eax,ebx
0088BB86    8B10            mov edx,dword ptr ds:
0088BB88    FF92 EC000000   call dword ptr ds:
0088BB8E    48            dec eax
0088BB8F    75 4B         jnz short ftrade.0088BBDC
0088BB91    E8 2ACCD5FF   call ftrade.005E87C0
0088BB96    84C0            test al,al
0088BB98    75 09         jnz short ftrade.0088BBA3
0088BB9A    E8 65CDD5FF   call ftrade.005E8904
0088BB9F    84C0            test al,al--------------------------------------关键call
0088BBA1    74 21         je short ftrade.0088BBC4------------------关键跳
0088BBA3    6A 40         push 40
0088BBA5    B9 E8BB8800   mov ecx,ftrade.0088BBE8
0088BBAA    BA F0BB8800   mov edx,ftrade.0088BBF0
0088BBAF    A1 40B18900   mov eax,dword ptr ds:
0088BBB4    8B00            mov eax,dword ptr ds:
0088BBB6    E8 C530C2FF   call ftrade.004AEC80
0088BBBB    8BC6            mov eax,esi
0088BBBD    E8 8E080000   call ftrade.0088C450
0088BBC2    EB 18         jmp short ftrade.0088BBDC
0088BBC4    6A 40         push 40
0088BBC6    B9 E8BB8800   mov ecx,ftrade.0088BBE8
0088BBCB    BA FCBB8800   mov edx,ftrade.0088BBFC------------------来到这里
0088BBD0    A1 40B18900   mov eax,dword ptr ds:
0088BBD5    8B00            mov eax,dword ptr ds:
0088BBD7    E8 A430C2FF   call ftrade.004AEC80
0088BBDC    8BC3            mov eax,ebx
0088BBDE    E8 C580B7FF   call ftrade.00403CA8
0088BBE3    5E            pop esi
0088BBE4    5B            pop ebx
0088BBE5    C3            retn
向上找的关键的跳转和关键的call,发现text al,al是比较标志位,不是普通的明码比较,在关键call下断,运行程序,进入程序后输入相应的注册名及注册码,按“注册”,程序在关键call处被断了下来,里面的很简单,可以先F8一路粗看一遍,找到程序在返回call前的最后一次对eax的付值的代码处,
005E8B01    64:8910         mov dword ptr fs:,edx
005E8B04    68 1E8B5E00   push ftrade.005E8B1E
005E8B09    8D45 C4         lea eax,dword ptr ss:
005E8B0C    BA 0F000000   mov edx,0F
005E8B11    E8 D2C0E1FF   call ftrade.00404BE8
005E8B16    C3            retn
005E8B17^ E9 28B9E1FF   jmp ftrade.00404444
005E8B1C^ EB EB         jmp short ftrade.005E8B09
005E8B1E    8BC2            mov eax,ecx------------------------------就是这里了
005E8B20    5E            pop esi
005E8B21    5B            pop ebx
005E8B22    8BE5            mov esp,ebp
005E8B24    5D            pop ebp
005E8B25    C3            retn
看一下积存器的数值:
EAX 00000000
ECX 00000000
EDX 0012FDFC
EBX 00000000
ESP 0012FC14
EBP 0012FC58
ESI 011F9D60
EDI 0012FEB0
EIP 005E8B1E ftrade.005E8B1E
C 0ES 0023 32bit 0(FFFFFFFF)
P 1CS 001B 32bit 0(FFFFFFFF)
A 0SS 0023 32bit 0(FFFFFFFF)
Z 1DS 0023 32bit 0(FFFFFFFF)
S 0FS 0038 32bit 7FFDE000(FFF)
T 0GS 0000 NULL
D 0
O 0LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty -??? FFFF 00000000 00000000
ST1 empty -??? FFFF 001C001C 001C001C
ST2 empty -??? FFFF 00000000 00000000
ST3 empty -??? FFFF 00000001 000C001C
ST4 empty -NAN FFFF E386531C FF884804
ST5 empty -??? FFFF 00000001 000D001C
ST6 empty -??? FFFF 00000000 00000000
ST7 empty 1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 4000Cond 1 0 0 0Err 0 0 0 0 0 0 0 0(EQ)
FCW 1272Prec NEAR,53掩码    1 1 0 0 1 0

很明显如果过了上面005E8B1E处的代码后eax的值将被付为0,如果al的值就为0,在我们关键跳转的条件将成立,那就K.O。在这个时候看看寄存器,我们就发现edx的值不为0,如果我们将上面的代码005E8B1E 8BC2 mov eax,ecx改成005E8B1E8BC2   mov eax,edx,
那么关键跳转的条件就不成立,也就达到了我们的目的。收工!!!
运行修改后的程序,NG没了~~~~~~~~~~爽!!!请慢,到了程序里边,看看主菜单上面,还有带[未注册]的字样,TMD看着这个就不爽,OD再来载入程序,查找字符串“(未注册版本)”
0088C4CF    84C0            test al,al
0088C4D1    EB 21         jmp short ftrade.0088C4F4-------这里是我改好的了,原来是je还是jne不记得了
0088C4D3    8D55 F0         lea edx,dword ptr ss:
0088C4D6    8BC3            mov eax,ebx
0088C4D8    E8 8B14C0FF   call ftrade.0048D968
0088C4DD    8D45 F0         lea eax,dword ptr ss:
0088C4E0    BA 20C68800   mov edx,ftrade.0088C620
0088C4E5    E8 B289B7FF   call ftrade.00404E9C
0088C4EA    8B55 F0         mov edx,dword ptr ss:
0088C4ED    8BC3            mov eax,ebx
0088C4EF    E8 A414C0FF   call ftrade.0048D998
0088C4F4    8D55 E8         lea edx,dword ptr ss:
将代码上面的跳转改成绝对跳转跳过即可。OK收工
再次运行程序,怎么样?NG没了,(未注册版本)也没了,完美破解。

[ 本帖最后由 tigerisme 于 2006-8-26 20:50 编辑 ]

magei 发表于 2005-8-8 22:32:37

支持!,我顶下咯

skyege 发表于 2005-8-9 18:00:26

没什么特别,就是修改FLAG。不新鲜。

冷血书生 发表于 2005-8-13 13:57:48

Originally posted by skyege at 2005-8-9 06:00 PM:
没什么特别,就是修改FLAG。不新鲜。

大哥,怎么也要尊重别人的劳动成果嘛!

underghost 发表于 2005-11-4 18:44:11

改关键跳0088BBA1    74 21         je short ftrade.0088BBC4为JNE不行吗?

ynboyinkm 发表于 2006-7-19 21:49:50

顶,好哦!!

ynboyinkm 发表于 2006-7-19 22:37:31

我为什么找不到中文字符呢??

zsl01 发表于 2008-9-19 09:50:30

呵呵。。我是个初学者,还不是太懂这些东东。。
先收藏起来。。谢谢。。
页: [1]
查看完整版本: Easyboss VT8的另类爆破