首页
社区
课程
招聘
wavsplitter算法分析
发表于: 2006-8-23 12:34 4071

wavsplitter算法分析

2006-8-23 12:34
4071
【破文标题】wavsplitter算法分析
【破文作者】学习破解
【作者邮箱】wxh9833@163.com
【作者主页】学习破解
【破解工具】PEiD,,OD
【破解平台】Windows 2K&XP
【软件名称】WAV Splitter V1.0.0459
【软件大小】428 KB
【原版下载】http://www.skycn.com/soft/26000.html
【保护方式】注册码
【软件简介】软件语言:  英文
软件类别:  国外软件 / 共享版 / 文件分割
应用平台:  Win9x/NT/2000/XP/2003
界面预览:  无
更新时间:  2006-07-25 09:58:40
【破解声明】呵呵,用于交流.请各位指教!!!:)
------------------------------------------------------------------------
1、Peid查壳。无壳Microsoft Visual C++ 7.0写的,呵呵。
2、先运行一下软件,看一看有没有提示。呵呵。果真有啊“registration failed!”
3、就从这里下手吧。OD载入。呵呵。看一下吧。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
004016F3   .  55         push    ebp
004016F4   .  56         push    esi
004016F5   .  57         push    edi
004016F6   .  BF 0100000>mov     edi, 1
004016FB   .  57         push    edi
004016FC   .  8BF1       mov     esi, ecx
004016FE   .  E8 CCE9010>call    004200CF
00401703   .  8B46 70    mov     eax, [esi+70]            ;  堆栈 ds:[0012F4B8]=00D654C0, (ASCII "123")
00401706   .  8B68 F4    mov     ebp, [eax-C]
00401709   .  83FD 02    cmp     ebp, 2
0040170C   .  7D 15      jge     short 00401723
0040170E   .  6A 00      push    0
00401710   .  6A 00      push    0
00401712   .  68 1CE8420>push    0042E81C                 ;  ASCII "Please input correct User Name!"
00401717   .  E8 D15D020>call    004274ED
0040171C   .  5F         pop     edi
0040171D   .  5E         pop     esi
0040171E   .  5D         pop     ebp
0040171F   .  83C4 0C    add     esp, 0C
00401722   .  C3         retn
00401723   >  8B4E 74    mov     ecx, [esi+74]            ;  堆栈 ds:[0012F4BC]=00D654E0, (ASCII "78787878")
00401726   .  8379 F4 08 cmp     dword ptr [ecx-C], 8
0040172A   .  7D 15      jge     short 00401741
0040172C   .  6A 00      push    0
0040172E   .  6A 00      push    0
00401730   .  68 F4E7420>push    0042E7F4                 ;  ASCII "Please input correct Registration Code!"
00401735   .  E8 B35D020>call    004274ED
0040173A   .  5F         pop     edi
0040173B   .  5E         pop     esi
0040173C   .  5D         pop     ebp
0040173D   .  83C4 0C    add     esp, 0C
00401740   .  C3         retn
00401741   >  8B46 70    mov     eax, [esi+70]            ;  堆栈 ds:[0012F4B8]=00D654C0, (ASCII "123")
00401744   .  8B48 F4    mov     ecx, [eax-C]             ;  ds:[00D654B4]=00000003
00401747   .  85C9       test    ecx, ecx
00401749   .  7D 0A      jge     short 00401755
0040174B   .  68 5700078>push    80070057
00401750   .  E8 1BFAFFF>call    00401170
00401755   >  8A10       mov     dl, [eax]
00401757   .  8B46 70    mov     eax, [esi+70]
0040175A   .  3978 F4    cmp     [eax-C], edi
0040175D   .  7D 0A      jge     short 00401769
0040175F   .  68 5700078>push    80070057
00401764   .  E8 07FAFFF>call    00401170
00401769   >  8A40 01    mov     al, [eax+1]              ;  ds:[00D654C1]=32 ('2')
0040176C   .  884424 0E  mov     [esp+E], al
00401770   .  8B46 70    mov     eax, [esi+70]            ;  堆栈 ds:[0012F4B8]=00D654C0, (ASCII "123")
00401773   .  8B48 F4    mov     ecx, [eax-C]
00401776   .  85C9       test    ecx, ecx
00401778   .  7D 0A      jge     short 00401784
0040177A   .  68 5700078>push    80070057
0040177F   .  E8 ECF9FFF>call    00401170
00401784   >  8B4E 70    mov     ecx, [esi+70]            ;  堆栈 ds:[0012F4B8]=00D654C0, (ASCII "123")
00401787   .  53         push    ebx
00401788   .  8A18       mov     bl, [eax]                ;  ds:[00D654C0]=31 ('1')
0040178A   .  3979 F4    cmp     [ecx-C], edi
0040178D   .  7D 0A      jge     short 00401799
0040178F   .  68 5700078>push    80070057
00401794   .  E8 D7F9FFF>call    00401170
00401799   >  0FB6C2     movzx   eax, dl                  ;  dl=31 ('1')
0040179C   .  83C8 57    or      eax, 57
0040179F   .  99         cdq
004017A0   .  BF 0A00000>mov     edi, 0A
004017A5   .  F7FF       idiv    edi
004017A7   .  0FB64424 1>movzx   eax, byte ptr [esp+12]   ;  堆栈 ss:[0012EDC6]=32 ('2')
004017AC   .  83C8 41    or      eax, 41
004017AF   .  885424 16  mov     [esp+16], dl             ;  dl=09
004017B3   .  99         cdq
004017B4   .  F7FF       idiv    edi
004017B6   .  0FB6C3     movzx   eax, bl                  ;  bl=31 ('1')
004017B9   .  83C8 56    or      eax, 56
004017BC   .  885424 12  mov     [esp+12], dl             ;  dl=05
004017C0   .  99         cdq
004017C1   .  F7FF       idiv    edi
004017C3   .  0FB641 01  movzx   eax, byte ptr [ecx+1]    ;  ds:[00D654C1]=32 ('2')
004017C7   .  83C8 53    or      eax, 53
004017CA   .  8BCF       mov     ecx, edi                 ;  edi=0000000A
004017CC   .  885424 17  mov     [esp+17], dl             ;  dl=09
004017D0   .  99         cdq
004017D1   .  F7F9       idiv    ecx
004017D3   .  33C0       xor     eax, eax
004017D5   .  33C9       xor     ecx, ecx
004017D7   .  85ED       test    ebp, ebp
004017D9   .  885424 18  mov     [esp+18], dl             ;  dl=05
004017DD   .  7E 20      jle     short 004017FF
004017DF   .  90         nop
004017E0   >  85C9       test    ecx, ecx
004017E2   .  0F8C D2000>jl      004018BA
004017E8   .  8B7E 70    mov     edi, [esi+70]            ;  堆栈 ds:[0012F4B8]=00D654C0, (ASCII "123")
004017EB   .  3B4F F4    cmp     ecx, [edi-C]             ;  ds:[00D654B4]=00000003
004017EE   .  0F8F C6000>jg      004018BA
004017F4   .  0FB6140F   movzx   edx, byte ptr [edi+ecx]  ;  ds:[00D654C0]=31 ('1')
004017F8   .  03C2       add     eax, edx                 ;  累加
004017FA   .  41         inc     ecx
004017FB   .  3BCD       cmp     ecx, ebp
004017FD   .^ 7C E1      jl      short 004017E0
004017FF   >  8B4E 74    mov     ecx, [esi+74]            ;  堆栈 ds:[0012F4BC]=00D654E0, (ASCII "78787878")
00401802   .  8B51 F4    mov     edx, [ecx-C]             ;  ds:[00D654D4]=00000008
00401805   .  85D2       test    edx, edx
00401807   .  7D 0A      jge     short 00401813
00401809   .  68 5700078>push    80070057
0040180E   .  E8 5DF9FFF>call    00401170
00401813   >  8A11       mov     dl, [ecx]                ;  ds:[00D654E0]=37 ('7')  1
00401815   .  8B4E 74    mov     ecx, [esi+74]            ;  堆栈 ds:[0012F4BC]=00D654E0, (ASCII "78787878")
00401818   .  8379 F4 01 cmp     dword ptr [ecx-C], 1
0040181C   .  885424 19  mov     [esp+19], dl             ;  dl=37 ('7')
00401820   .  7D 0A      jge     short 0040182C
00401822   .  68 5700078>push    80070057
00401827   .  E8 44F9FFF>call    00401170
0040182C   >  8A49 01    mov     cl, [ecx+1]              ;  ds:[00D654E1]=38 ('8')  2
0040182F   .  8B7E 74    mov     edi, [esi+74]            ;  堆栈 ds:[0012F4BC]=00D654E0, (ASCII "78787878")
00401832   .  884C24 13  mov     [esp+13], cl             ;  cl=38 ('8')
00401836   .  837F F4 02 cmp     dword ptr [edi-C], 2
0040183A   .  7D 0A      jge     short 00401846
0040183C   .  68 5700078>push    80070057
00401841   .  E8 2AF9FFF>call    00401170
00401846   >  8A4F 02    mov     cl, [edi+2]              ;  ds:[00D654E2]=37 ('7')  3
00401849   .  8B7E 74    mov     edi, [esi+74]
0040184C   .  884C24 14  mov     [esp+14], cl
00401850   .  837F F4 03 cmp     dword ptr [edi-C], 3
00401854   .  7D 0A      jge     short 00401860
00401856   .  68 5700078>push    80070057
0040185B   .  E8 10F9FFF>call    00401170
00401860   >  8A4F 03    mov     cl, [edi+3]              ;  ds:[00D654E3]=38 ('8')  4
00401863   .  8B7E 74    mov     edi, [esi+74]
00401866   .  884C24 15  mov     [esp+15], cl
0040186A   .  837F F4 04 cmp     dword ptr [edi-C], 4
0040186E   .  7D 0A      jge     short 0040187A
00401870   .  68 5700078>push    80070057
00401875   .  E8 F6F8FFF>call    00401170
0040187A   >  8A5F 04    mov     bl, [edi+4]              ;  ds:[00D654E4]=37 ('7')  5
0040187D   .  8B7E 74    mov     edi, [esi+74]
00401880   .  837F F4 05 cmp     dword ptr [edi-C], 5
00401884   .  7D 0A      jge     short 00401890
00401886   .  68 5700078>push    80070057
0040188B   .  E8 E0F8FFF>call    00401170
00401890   >  8A4F 05    mov     cl, [edi+5]              ;  ds:[00D654E5]=38 ('8')  6
00401893   .  8B7E 74    mov     edi, [esi+74]
00401896   .  884C24 1A  mov     [esp+1A], cl
0040189A   .  837F F4 06 cmp     dword ptr [edi-C], 6
0040189E   .  7D 0A      jge     short 004018AA
004018A0   .  68 5700078>push    80070057
004018A5   .  E8 C6F8FFF>call    00401170
004018AA   >  8A4F 06    mov     cl, [edi+6]              ;  ds:[00D654E6]=37 ('7')  7
004018AD   .  8B7E 74    mov     edi, [esi+74]
004018B0   .  884C24 1B  mov     [esp+1B], cl
004018B4   .  837F F4 07 cmp     dword ptr [edi-C], 7
004018B8   .  7D 0A      jge     short 004018C4
004018BA   >  68 5700078>push    80070057
004018BF   .  E8 ACF8FFF>call    00401170
004018C4   >  8A4F 07    mov     cl, [edi+7]              ;  ds:[00D654E7]=38 ('8')  8
004018C7   .  0FB67C24 1>movzx   edi, byte ptr [esp+16]   ;  堆栈 ss:[0012EDCA]=09
004018CC   .  0FB6D2     movzx   edx, dl
004018CF   .  83EA 30    sub     edx, 30
004018D2   .  3BFA       cmp     edi, edx                 ;  比较第1位
004018D4   .  75 48      jnz     short 0040191E
004018D6   .  0FB65424 1>movzx   edx, byte ptr [esp+13]
004018DB   .  0FB67C24 1>movzx   edi, byte ptr [esp+12]
004018E0   .  83EA 30    sub     edx, 30
004018E3   .  3BFA       cmp     edi, edx                 ;  比较第2位
004018E5   .  75 37      jnz     short 0040191E
004018E7   .  0FB65424 1>movzx   edx, byte ptr [esp+14]
004018EC   .  0FB67C24 1>movzx   edi, byte ptr [esp+17]
004018F1   .  83EA 30    sub     edx, 30
004018F4   .  3BFA       cmp     edi, edx                 ;  比较第3位
004018F6   .  75 26      jnz     short 0040191E
004018F8   .  0FB65424 1>movzx   edx, byte ptr [esp+15]
004018FD   .  0FB67C24 1>movzx   edi, byte ptr [esp+18]
00401902   .  83EA 30    sub     edx, 30
00401905   .  3BFA       cmp     edi, edx                 ;  比较第4位
00401907   .  75 15      jnz     short 0040191E
00401909   .  99         cdq
0040190A   .  BF 0A00000>mov     edi, 0A
0040190F   .  F7FF       idiv    edi                      ;  96 idiv a--〉edx=0
00401911   .  0FB6C2     movzx   eax, dl                  ;  dl=00
00401914   .  0FB6D3     movzx   edx, bl
00401917   .  83EA 30    sub     edx, 30
0040191A   .  3BC2       cmp     eax, edx                 ;  比较第5位
0040191C   .  74 3A      je      short 00401958           ;  跳转则成功
0040191E   >  8A5424 19  mov     dl, [esp+19]
00401922   .  B0 31      mov     al, 31
00401924   .  3AD0       cmp     dl, al                   ;  或者第1位必须为1
00401926   .  0F85 82000>jnz     004019AE
0040192C   .  384424 13  cmp     [esp+13], al             ;  或者第2位必须为1
00401930   .  75 7C      jnz     short 004019AE
00401932   .  807C24 14 >cmp     byte ptr [esp+14], 39    ;  或者第3位必须为9
00401937   .  75 75      jnz     short 004019AE
00401939   .  384424 15  cmp     [esp+15], al             ;  或者第4位必须为1
0040193D   .  75 6F      jnz     short 004019AE
0040193F   .  80FB 33    cmp     bl, 33                   ;  或者第5位必须为3
00401942   .  75 6A      jnz     short 004019AE
00401944   .  8A5424 1A  mov     dl, [esp+1A]             ;  或者第6位必须为6
00401948   .  B0 36      mov     al, 36
0040194A   .  3AD0       cmp     dl, al
0040194C   .  75 60      jnz     short 004019AE
0040194E   .  384424 1B  cmp     [esp+1B], al             ;  或者第7位必须为6
00401952   .  75 5A      jnz     short 004019AE
00401954   .  3AC8       cmp     cl, al                   ;  或者第8位必须为1
00401956   .  75 56      jnz     short 004019AE
00401958   >  6A 00      push    0
0040195A   .  6A 00      push    0
0040195C   .  68 D8E7420>push    0042E7D8                 ;  ASCII "Registration has succeeded!"
00401961   .  E8 875B020>call    004274ED
00401966   .  8B7E 70    mov     edi, [esi+70]
00401969   .  E8 2473020>call    00428C92
0040196E   .  8B40 04    mov     eax, [eax+4]
00401971   .  57         push    edi                      ; /Arg3
00401972   .  68 CCE7420>push    0042E7CC                 ; |Arg2 = 0042E7CC ASCII "username"
00401977   .  68 C4E7420>push    0042E7C4                 ; |Arg1 = 0042E7C4 ASCII "Option"
0040197C   .  8BC8       mov     ecx, eax                 ; |
0040197E   .  E8 CA58020>call    0042724D                 ; \WAVSplit.0042724D
00401983   .  8B7E 74    mov     edi, [esi+74]
00401986   .  E8 0773020>call    00428C92
0040198B   .  8B40 04    mov     eax, [eax+4]
0040198E   .  57         push    edi                      ; /Arg3
0040198F   .  68 B0E7420>push    0042E7B0                 ; |Arg2 = 0042E7B0 ASCII "registration_code"
00401994   .  68 C4E7420>push    0042E7C4                 ; |Arg1 = 0042E7C4 ASCII "Option"
00401999   .  8BC8       mov     ecx, eax                 ; |
0040199B   .  E8 AD58020>call    0042724D                 ; \WAVSplit.0042724D
004019A0   .  5B         pop     ebx
004019A1   .  5F         pop     edi
004019A2   .  8BCE       mov     ecx, esi
004019A4   .  5E         pop     esi
004019A5   .  5D         pop     ebp
004019A6   .  83C4 0C    add     esp, 0C
004019A9   .  E9 371C020>jmp     004235E5
004019AE   >  6A 00      push    0
004019B0   .  6A 00      push    0
004019B2   .  68 98E7420>push    0042E798                 ;  ASCII "Registration failed!"
004019B7   .  E8 315B020>call    004274ED
004019BC   .  5B         pop     ebx
004019BD   .  5F         pop     edi
004019BE   .  5E         pop     esi
004019BF   .  5D         pop     ebp
004019C0   .  83C4 0C    add     esp, 0C
004019C3   .  C3         retn
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

------------------------------------------------------------------------
小结:
      有些朋友会迷糊,呵呵看一看吧,怎么算得呢,呵呵总结一下。
      (1)注册码第1位=((用户名第1位 OR 57) MOD A)
      (2)注册码第2位=((用户名第2位 OR 41) MOD A)
      (3)注册码第3位=((用户名第1位 OR 56) MOD A)
      (4)注册码第4位=((用户名第2位 OR 53) MOD A)
      (5)注册码第5位=((用户名字符累加和) MOD A)

       至于其他位的值可以任意填写。
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
支持一下!继续努力!
2006-8-23 22:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
小兵顶帖,多谢版主!^_^
2006-8-23 23:49
0
游客
登录 | 注册 方可回帖
返回
//