mongolnet 发表于 2009-2-10 22:35:13

V8主流发型设计软件破解祥解

大家好,这个是我进论坛以来首个发帖! 有什么不对,还望各位多指教!谢谢

V8主流发型设计软件破解祥解
【软件名称】《V8主流发型设计软件》V8
【软件大小】19.6M
【运行平台】Win98/Win2K/WinXP
【编写语言】Microsoft Visual C++ 6.0
【破解平台】WinXP+SP3
【加壳方式】无
【脱壳方法】无
【加密方法】注册类
【加密强度】简单
【破解软件】C32Asm 、PEID0.95、OllyICE
【破解类型】爆破
【下载地址】http://www.v843.net/
【破 解 人】Mongolnet



【软件简介】
   
    不做解释了,很复杂


【第一个破解过程---爆破】
=======================================================================================
=======================================================================================
=======================================================================================
=======================================================================================
    【破解分析】
    软件运行时,如果没有注册,会有弹出注册窗口,并且输入错误注册码后提示"注册失败"的提示,这为我们破解软件提供了很好的切入点。
    1.用“PEiD v0.95”对原文件进行检查,发现没有加壳,哈哈,节省了不少时间。软件是用“C++”编写的。
    2.用“C32Asm ”查找壳参考的所有字符串。
    查到的字符串如下:
      ============================================
      您还能试用%d次,请您尽快注册。   
             ::0041CBBD->PUSH BD
      试用已经到期,请您注册。
             ::0041CC2D->PUSH BE
      注册失败。
             ::0041D022->PUSH BF
             ::0041D033->PUSH BF
      注册成功,感谢您的注册 。祝您工作愉快 !
             ::0041D000->PUSH C0   PUSH 0C0
      未注册
             ::0042AABB->PUSH C1
      您的软件未注册不能使用这项功能!请您注册后再使用。
             ::0040C6C4->PUSH C2
             ::00425D1D->PUSH C2
      ==============================================       
    3.在“OllyICE”中调试找到代码如下:
   
   
第一个要解决的: 您还能试用%d次,请您尽快注册。



第二个要解决的: 试用已经到期,请您注册。
0041CC29   .85C0          test    eax, eax
0041CC2B   .7F 36         jg      short 0041CC63                   这里是关键跳(默认是不跳)
0041CC2D   .68 BE000000   push    0BE                              ;试用已经到期,请您注册。
0041CC32   .8D4C24 0C   lea   ecx, dword ptr
0041CC36   .E8 D9230100   call    <jmp.&MFC42.#4160_CString::LoadS>
0041CC3B   .8B4424 08   mov   eax, dword ptr
0041CC3F   .8BCE          mov   ecx, esi
0041CC41   .50            push    eax
0041CC42   .68 E6050000   push    5E6
0041CC47   .E8 BC230100   call    <jmp.&MFC42.#5953_CWnd::SetDlgIt>
0041CC4C   .6A 00         push    0
0041CC4E   .8D4E 60       lea   ecx, dword ptr
0041CC51   .E8 00240100   call    <jmp.&MFC42.#6215_CWnd::ShowWind>
0041CC56   .6A 00         push    0
0041CC58   .8D8E 2C010000 lea   ecx, dword ptr
0041CC5E   .E8 FF230100   call    <jmp.&MFC42.#2642_CWnd::EnableWi>
0041CC63   >8D4C24 0C   lea   ecx, dword ptr
0041CC67   .C68424 200100>mov   byte ptr , 0
0041CC6F   .E8 70230100   call    <jmp.&MFC42.#800_CString::~CStri>

第三个要解决的: 注册失败。
0041CFD0   .85C0          test    eax, eax
0041CFD2   .74 56         je      short 0041D02A                   ;此处禁止跳
0041CFD4   .A1 AC6B4400   mov   eax, dword ptr
0041CFD9   .85C0          test    eax, eax
0041CFDB   .74 3C         je      short 0041D019                   ;此处禁止跳
0041CFDD   .8B5424 08   mov   edx, dword ptr
0041CFE1   .8D4424 0C   lea   eax, dword ptr
0041CFE5   .52            push    edx                              ; /FileName
0041CFE6   .50            push    eax                              ; |String
0041CFE7   .68 B8504400   push    004450B8                         ; |info
0041CFEC   .68 DC504400   push    004450DC                         ; |sys
0041CFF1   .FF15 34614300 call    dword ptr [<&KERNEL32.WritePriva>; \WritePrivateProfileStringA
0041CFF7   .8B4E 20       mov   ecx, dword ptr

第四个要解决的: 未注册
0042AA47   .85C0          test    eax, eax
0042AA49   .75 2C         jnz   short 0042AA77                   ;关键跳(默认是跳)
0042AA4B   >8D4C24 14   lea   ecx, dword ptr
0042AA4F   .C68424 380100>mov   byte ptr , 0
0042AA57   .E8 88450000   call    <jmp.&MFC42.#800_CString::~CStri>
0042AA5C   .8D4C24 10   lea   ecx, dword ptr
0042AA60   .C78424 380100>mov   dword ptr , -1
0042AA6B   .E8 74450000   call    <jmp.&MFC42.#800_CString::~CStri>
0042AA70   .33C0          xor   eax, eax
0042AA72   .E9 57010000   jmp   0042ABCE
0042AA77   >8B4C24 24   mov   ecx, dword ptr
0042AA7B   .8B5424 1C   mov   edx, dword ptr
0042AA7F   .8BC1          mov   eax, ecx
0042AA81   .83C1 FE       add   ecx, -2
0042AA84   .2BC2          sub   eax, edx
0042AA86   .8B5424 28   mov   edx, dword ptr
0042AA8A   .2D D9010000   sub   eax, 1D9
0042AA8F   .81C2 9CFDFFFF add   edx, -264
0042AA95   .53            push    ebx
0042AA96   .2BC8          sub   ecx, eax
0042AA98   .52            push    edx
0042AA99   .51            push    ecx
0042AA9A   .68 4F020000   push    24F
0042AA9F   .50            push    eax
0042AAA0   .8BCF          mov   ecx, edi
0042AAA2   .E8 99460000   call    <jmp.&MFC42.#4299_CWnd::MoveWind>
0042AAA7   .6A 05         push    5
0042AAA9   .8BCF          mov   ecx, edi
0042AAAB   .E8 A6450000   call    <jmp.&MFC42.#6215_CWnd::ShowWind>
0042AAB0   .B9 40000000   mov   ecx, 40
0042AAB5   .33C0          xor   eax, eax
0042AAB7   .8D7C24 30   lea   edi, dword ptr
0042AABB   .68 C1000000   push    0C1                              ;未注册
0042AAC0   .F3:AB         rep   stos dword ptr es:
0042AAC2   .8D4C24 14   lea   ecx, dword ptr
0042AAC6   .E8 49450000   call    <jmp.&MFC42.#4160_CString::LoadS>

注释:上面的很显然,0042AA49地址的关键跳,如果跳那么0042AA72处的JMP将不起作用,软件就提示未注册
    如果是不跳那么0042AA72处的JMP将直接跳过未注册这个部分!
   
第五个要解决的: 您的软件未注册不能使用这项功能!请您注册后再使用。
未注册版本将有很多限制比如:"您的软件未注册不能使用这项功能!请您注册后再使用。"之类的
因此我们将要解决掉这些繁琐的试用部分。

00425D12   .6A 00         push    0
00425D14   .75 2C         jnz   short 00425D42                   ;关键跳,默认是不跳 改为跳
00425D16   .8B41 20       mov   eax, dword ptr
00425D19   .6A 00         push    0
00425D1B   .6A 00         push    0
00425D1D   .68 C2000000   push    0C2          您的软件未注册不能使用这项功能!请您注册后再使用。
00425D22   .50            push    eax
00425D23   .B9 78674400   mov   ecx, 00446778
00425D28   .E8 E3370000   call    00429510
00425D2D   .8B8C24 B00500>mov   ecx, dword ptr
00425D34   .64:890D 00000>mov   dword ptr fs:, ecx
00425D3B   .81C4 BC050000 add   esp, 5BC
00425D41   .C3            retn
00425D42   >8D4C24 0C   lea   ecx, dword ptr

关键跳地址是00425D14 ,此处的JNZ默认是不跳的,此处改为JMP ,那么下面00425D1D处的提示将失效。
因此我们就达到爆破的效果了。

0040C69D   .85C0          test    eax, eax
0040C69F   .0F8C E6000000 jl      0040C78B                         ;这里是关键跳,默认为跳
0040C6A5   .8B9424 000400>mov   edx, dword ptr
0040C6AC   .6A 00         push    0
0040C6AE   .C702 01000000 mov   dword ptr , 1
0040C6B4   .A1 AC6B4400   mov   eax, dword ptr
0040C6B9   .85C0          test    eax, eax
0040C6BB   .75 1C         jnz   short 0040C6D9                   ;关键
0040C6BD   .8B46 20       mov   eax, dword ptr
0040C6C0   .6A 00         push    0
0040C6C2   .6A 00         push    0
0040C6C4   .68 C2000000   push    0C2
0040C6C9   .50            push    eax
0040C6CA   .B9 78674400   mov   ecx, 00446778
0040C6CF   .E8 3CCE0100   call    00429510    ;您的软件未注册不能使用这项功能!请您注册后再使用。
0040C6D4   .E9 B2000000   jmp   0040C78B
0040C6D9   >8D4C24 0C   lea   ecx, dword ptr
0040C6DD   .E8 EEB6FFFF   call    00407DD0
0040C6E2   .8D4C24 04   lea   ecx, dword ptr
0040C6E6   .C68424 E00300>mov   byte ptr , 1
0040C6EE   .51            push    ecx
0040C6EF   .8D4C24 70   lea   ecx, dword ptr
0040C6F3   .E8 002A0200   call    <jmp.&MFC42.#858_CString::operat>
0040C6F8   .8D4C24 08   lea   ecx, dword ptr
0040C6FC   .E8 BD270200   call    <jmp.&MFC42.#2514_CDialog::DoMod>
0040C701   .8B5424 68   mov   edx, dword ptr
0040C705   .8956 60       mov   dword ptr , edx
0040C708   .8D8C24 980300>lea   ecx, dword ptr
0040C70F   .C68424 E00300>mov   byte ptr , 7
0040C717   .E8 1E2A0200   call    <jmp.&MFC42.#765_CProgressCtrl::>
0040C71C   .8D8C24 A00200>lea   ecx, dword ptr
0040C723   .C68424 E00300>mov   byte ptr , 6
0040C72B   .E8 70000200   call    0042C7A0
0040C730   .8D8C24 A80100>lea   ecx, dword ptr
0040C737   .C68424 E00300>mov   byte ptr , 5
0040C73F   .E8 5C000200   call    0042C7A0
0040C744   .8D8C24 680100>lea   ecx, dword ptr
0040C74B   .C68424 E00300>mov   byte ptr , 4
0040C753   .E8 DC290200   call    <jmp.&MFC42.#692_CListBox::~CLis>
0040C758   .8D4C24 70   lea   ecx, dword ptr
0040C75C   .C68424 E00300>mov   byte ptr , 3
0040C764   .E8 37000200   call    0042C7A0
0040C769   .8D4C24 6C   lea   ecx, dword ptr
0040C76D   .C68424 E00300>mov   byte ptr , 2
0040C775   .E8 6A280200   call    <jmp.&MFC42.#800_CString::~CStri>
0040C77A   .8D4C24 08   lea   ecx, dword ptr
0040C77E   .C68424 E00300>mov   byte ptr , 0
0040C786   .E8 2F280200   call    <jmp.&MFC42.#641_CDialog::~CDial>
0040C78B   >8D4C24 04   lea   ecx, dword ptr
0040C78F   .C78424 E00300>mov   dword ptr , -1

注释:0040C69F处的跳改为JMP这样无条件专挑,那么就可以解决掉0040C6CF处的提示。

-------------------------------
经过以上分析,我们看出,关键点有5个

    【破解方法】
    0041CC2B处 jg改为 JMP                   ;必须跳
    0041CFD2处 je改为 JNZ                   ;此处禁止跳或者NOP
    0041CFDB处 je改为 JNZ                   ;此处禁止跳或者NOP
    0042AA49处 jnz 改为 JE                  ;禁止跳或者NOP
    00425D14处 jnz 改为 JMP                   ;必须跳
    0040C69F处 jl改为 JMP                   ;必须跳
    0040C6BB处 jnz 改为 JMP                   ;必须跳
   
经过以上的改动,软件就可以正常使用了!!!!!!!!!!!!
   
=======================================================================================
=======================================================================================
=======================================================================================

tianxj 发表于 2009-2-11 07:30:39

无敌爆破/:L

km159 发表于 2009-2-11 08:44:49

我也载个玩玩···
期待CRfile到我区

km159 发表于 2009-2-11 08:46:29

难道是内版?
没找到哪下载··

bhcjl 发表于 2009-2-11 09:06:16

不错啊,学习了,顶

高霖 发表于 2009-2-11 13:58:30

但我在OD下找不字符串呀.

JOHN 发表于 2009-2-11 14:40:17

倒,标题看错,以为是VB的,原是V8/:L

hao212 发表于 2009-2-11 15:59:43

不错啊,学习了,顶:loveliness:

kulo 发表于 2009-2-12 16:21:20

堪称最原始的破解方法了,哈哈

bingtang 发表于 2009-2-13 12:08:17

学习了,谢谢楼主分享
页: [1] 2
查看完整版本: V8主流发型设计软件破解祥解