飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7423|回复: 10

[原创] V8主流发型设计软件破解祥解

[复制链接]
  • TA的每日心情
    开心
    2023-10-24 07:18
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2009-2-10 22:35:13 | 显示全部楼层 |阅读模式
    大家好,这个是我进论坛以来首个发帖! 有什么不对,还望各位多指教!谢谢

    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 [esp+C]
    0041CC36   .  E8 D9230100   call    <jmp.&MFC42.#4160_CString::LoadS>
    0041CC3B   .  8B4424 08     mov     eax, dword ptr [esp+8]
    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 [esi+60]
    0041CC51   .  E8 00240100   call    <jmp.&MFC42.#6215_CWnd::ShowWind>
    0041CC56   .  6A 00         push    0
    0041CC58   .  8D8E 2C010000 lea     ecx, dword ptr [esi+12C]
    0041CC5E   .  E8 FF230100   call    <jmp.&MFC42.#2642_CWnd::EnableWi>
    0041CC63   >  8D4C24 0C     lea     ecx, dword ptr [esp+C]
    0041CC67   .  C68424 200100>mov     byte ptr [esp+120], 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 [446BAC]
    0041CFD9   .  85C0          test    eax, eax
    0041CFDB   .  74 3C         je      short 0041D019                   ;  此处禁止跳
    0041CFDD   .  8B5424 08     mov     edx, dword ptr [esp+8]
    0041CFE1   .  8D4424 0C     lea     eax, dword ptr [esp+C]
    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 [esi+20]

    第四个要解决的: 未注册
    0042AA47   .  85C0          test    eax, eax
    0042AA49   .  75 2C         jnz     short 0042AA77                   ;  关键跳(默认是跳)
    0042AA4B   >  8D4C24 14     lea     ecx, dword ptr [esp+14]
    0042AA4F   .  C68424 380100>mov     byte ptr [esp+138], 0
    0042AA57   .  E8 88450000   call    <jmp.&MFC42.#800_CString::~CStri>
    0042AA5C   .  8D4C24 10     lea     ecx, dword ptr [esp+10]
    0042AA60   .  C78424 380100>mov     dword ptr [esp+138], -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 [esp+24]
    0042AA7B   .  8B5424 1C     mov     edx, dword ptr [esp+1C]
    0042AA7F   .  8BC1          mov     eax, ecx
    0042AA81   .  83C1 FE       add     ecx, -2
    0042AA84   .  2BC2          sub     eax, edx
    0042AA86   .  8B5424 28     mov     edx, dword ptr [esp+28]
    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 [esp+30]
    0042AABB   .  68 C1000000   push    0C1                              ;  未注册
    0042AAC0   .  F3:AB         rep     stos dword ptr es:[edi]
    0042AAC2   .  8D4C24 14     lea     ecx, dword ptr [esp+14]
    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 [ecx+20]
    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 [esp+5B0]
    00425D34   .  64:890D 00000>mov     dword ptr fs:[0], ecx
    00425D3B   .  81C4 BC050000 add     esp, 5BC
    00425D41   .  C3            retn
    00425D42   >  8D4C24 0C     lea     ecx, dword ptr [esp+C]

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

    0040C69D   .  85C0          test    eax, eax
    0040C69F   .  0F8C E6000000 jl      0040C78B                         ;  这里是关键跳,默认为跳
    0040C6A5   .  8B9424 000400>mov     edx, dword ptr [esp+400]
    0040C6AC   .  6A 00         push    0
    0040C6AE   .  C702 01000000 mov     dword ptr [edx], 1
    0040C6B4   .  A1 AC6B4400   mov     eax, dword ptr [446BAC]
    0040C6B9   .  85C0          test    eax, eax
    0040C6BB   .  75 1C         jnz     short 0040C6D9                   ;  关键
    0040C6BD   .  8B46 20       mov     eax, dword ptr [esi+20]
    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 [esp+C]
    0040C6DD   .  E8 EEB6FFFF   call    00407DD0
    0040C6E2   .  8D4C24 04     lea     ecx, dword ptr [esp+4]
    0040C6E6   .  C68424 E00300>mov     byte ptr [esp+3E0], 1
    0040C6EE   .  51            push    ecx
    0040C6EF   .  8D4C24 70     lea     ecx, dword ptr [esp+70]
    0040C6F3   .  E8 002A0200   call    <jmp.&MFC42.#858_CString::operat>
    0040C6F8   .  8D4C24 08     lea     ecx, dword ptr [esp+8]
    0040C6FC   .  E8 BD270200   call    <jmp.&MFC42.#2514_CDialog::DoMod>
    0040C701   .  8B5424 68     mov     edx, dword ptr [esp+68]
    0040C705   .  8956 60       mov     dword ptr [esi+60], edx
    0040C708   .  8D8C24 980300>lea     ecx, dword ptr [esp+398]
    0040C70F   .  C68424 E00300>mov     byte ptr [esp+3E0], 7
    0040C717   .  E8 1E2A0200   call    <jmp.&MFC42.#765_CProgressCtrl::>
    0040C71C   .  8D8C24 A00200>lea     ecx, dword ptr [esp+2A0]
    0040C723   .  C68424 E00300>mov     byte ptr [esp+3E0], 6
    0040C72B   .  E8 70000200   call    0042C7A0
    0040C730   .  8D8C24 A80100>lea     ecx, dword ptr [esp+1A8]
    0040C737   .  C68424 E00300>mov     byte ptr [esp+3E0], 5
    0040C73F   .  E8 5C000200   call    0042C7A0
    0040C744   .  8D8C24 680100>lea     ecx, dword ptr [esp+168]
    0040C74B   .  C68424 E00300>mov     byte ptr [esp+3E0], 4
    0040C753   .  E8 DC290200   call    <jmp.&MFC42.#692_CListBox::~CLis>
    0040C758   .  8D4C24 70     lea     ecx, dword ptr [esp+70]
    0040C75C   .  C68424 E00300>mov     byte ptr [esp+3E0], 3
    0040C764   .  E8 37000200   call    0042C7A0
    0040C769   .  8D4C24 6C     lea     ecx, dword ptr [esp+6C]
    0040C76D   .  C68424 E00300>mov     byte ptr [esp+3E0], 2
    0040C775   .  E8 6A280200   call    <jmp.&MFC42.#800_CString::~CStri>
    0040C77A   .  8D4C24 08     lea     ecx, dword ptr [esp+8]
    0040C77E   .  C68424 E00300>mov     byte ptr [esp+3E0], 0
    0040C786   .  E8 2F280200   call    <jmp.&MFC42.#641_CDialog::~CDial>
    0040C78B   >  8D4C24 04     lea     ecx, dword ptr [esp+4]
    0040C78F   .  C78424 E00300>mov     dword ptr [esp+3E0], -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                   ;  必须跳
       
    经过以上的改动,软件就可以正常使用了!!!!!!!!!!!!
       
    =======================================================================================
    =======================================================================================
    =======================================================================================

    评分

    参与人数 1威望 +40 飘云币 +80 收起 理由
    Luckly + 40 + 80 您的贴子很精彩,希望能再次分享!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-2-11 07:30:39 | 显示全部楼层
    无敌爆破/:L
    PYG19周年生日快乐!
  • TA的每日心情

    2016-2-14 14:40
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-2-11 08:44:49 | 显示全部楼层
    我也载个玩玩···
    期待CRfile到我区
    PYG19周年生日快乐!
  • TA的每日心情

    2016-2-14 14:40
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-2-11 08:46:29 | 显示全部楼层
    难道是内版?
    没找到哪下载··
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-12-6 09:28
  • 签到天数: 121 天

    [LV.7]常住居民III

    发表于 2009-2-11 09:06:16 | 显示全部楼层
    不错啊,学习了,顶
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-11 13:58:30 | 显示全部楼层
    但我在OD下找不字符串呀.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-11 14:40:17 | 显示全部楼层
    倒,标题看错,以为是VB的,原是V8  /:L
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-11 15:59:43 | 显示全部楼层
    不错啊,学习了,顶:loveliness:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-12 16:21:20 | 显示全部楼层
    堪称最原始的破解方法了,哈哈
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-13 12:08:17 | 显示全部楼层
    学习了,谢谢楼主分享
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表