飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8037|回复: 19

[原创] 菜鸟算法1

[复制链接]

该用户从未签到

发表于 2007-5-20 19:11:40 | 显示全部楼层 |阅读模式
【文章标题】: 菜鸟算法(高手飞过)
【文章作者】: 千里之外
【作者邮箱】: 506398911@qq.com
【作者QQ号】: 506398911
【软件名称】: MP3 Splitter
【软件大小】: 120 KB
【下载地址】: https://www.chinapyg.com/viewthread.php?tid=15466
【加壳方式】: 未知壳(可用ESP定律手脱)
【保护方式】: 注册码验证
【编写语言】: Microsoft Visual C++ 7.0
【使用工具】: peid  OD
【操作平台】: WINSP2
【软件介绍】: 一款易用的Mp3分割工具。
【作者声明】: 谢谢 fonge版主的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安
--------------------------------------------------------------------------------
【详细过程】
    大家好 我是千里之外 在这里先谢谢fonge版主的热心指导  是你给我指明了学习的方向 呵呵 我会继续努力的
   
    前几天我曾经在动画区发了个动画 也是破解这个软件的 当时算法一点不懂只好爆破  但是没有搞定重起验证   后来LANCIA兄弟做个补充动画 很是感激 这里再说声谢谢
  
   下面是我做的一个算法分析  很简单的固定码比较   高手飞过  呵呵
  
  004016F3   .  55            push    ebp
  004016F4   .  56            push    esi
  004016F5   .  57            push    edi
  004016F6   .  BF 01000000   mov     edi, 1
  004016FB   .  57            push    edi
  004016FC   .  8BF1          mov     esi, ecx
  004016FE   .  E8 8CE00100   call    0041F78F
  00401703   .  8B46 70       mov     eax, dword ptr [esi+70]
  00401706   .  8B68 F4       mov     ebp, dword ptr [eax-C]
  00401709   .  83FD 02       cmp     ebp, 2                      //用户名位数要不小于2
  0040170C   .  7D 15         jge     short 00401723
  0040170E   .  6A 00         push    0
  00401710   .  6A 00         push    0
  00401712   .  68 1CD84200   push    0042D81C
  00401717   .  E8 91540200   call    00426BAD
  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, dword ptr [esi+74]
  00401726   .  8379 F4 08    cmp     dword ptr [ecx-C], 8      //注册码位数不小于8
  0040172A   .  7D 15         jge     short 00401741
  0040172C   .  6A 00         push    0
  0040172E   .  6A 00         push    0
  00401730   .  68 F4D74200   push    0042D7F4
  00401735   .  E8 73540200   call    00426BAD
  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, dword ptr [esi+70]
  00401744   .  8B48 F4       mov     ecx, dword ptr [eax-C]
  00401747   .  85C9          test    ecx, ecx
  00401749   .  7D 0A         jge     short 00401755
  0040174B   .  68 57000780   push    80070057
  00401750   .  E8 1BFAFFFF   call    00401170
  00401755   >  8A10          mov     dl, byte ptr [eax]
  00401757   .  8B46 70       mov     eax, dword ptr [esi+70]
  0040175A   .  3978 F4       cmp     dword ptr [eax-C], edi
  0040175D   .  7D 0A         jge     short 00401769
  0040175F   .  68 57000780   push    80070057
  00401764   .  E8 07FAFFFF   call    00401170
  00401769   >  8A40 01       mov     al, byte ptr [eax+1]
  0040176C   .  884424 0E     mov     byte ptr [esp+E], al
  00401770   .  8B46 70       mov     eax, dword ptr [esi+70]
  00401773   .  8B48 F4       mov     ecx, dword ptr [eax-C]
  00401776   .  85C9          test    ecx, ecx
  00401778   .  7D 0A         jge     short 00401784
  0040177A   .  68 57000780   push    80070057
  0040177F   .  E8 ECF9FFFF   call    00401170
  00401784   >  8B4E 70       mov     ecx, dword ptr [esi+70]
  00401787   .  53            push    ebx
  00401788   .  8A18          mov     bl, byte ptr [eax]
  0040178A   .  3979 F4       cmp     dword ptr [ecx-C], edi
  0040178D   .  7D 0A         jge     short 00401799
  0040178F   .  68 57000780   push    80070057
  00401794   .  E8 D7F9FFFF   call    00401170
  00401799   >  0FB6C2        movzx   eax, dl
  0040179C   .  83C8 44       or      eax, 44
  0040179F   .  99            cdq
  004017A0   .  BF 0A000000   mov     edi, 0A
  004017A5   .  F7FF          idiv    edi
  004017A7   .  0FB64424 12   movzx   eax, byte ptr [esp+12]
  004017AC   .  83C8 42       or      eax, 42
  004017AF   .  885424 16     mov     byte ptr [esp+16], dl
  004017B3   .  99            cdq
  004017B4   .  F7FF          idiv    edi
  004017B6   .  0FB6C3        movzx   eax, bl
  004017B9   .  83C8 43       or      eax, 43
  004017BC   .  885424 12     mov     byte ptr [esp+12], dl
  004017C0   .  99            cdq
  004017C1   .  F7FF          idiv    edi
  004017C3   .  0FB641 01     movzx   eax, byte ptr [ecx+1]
  004017C7   .  83C8 44       or      eax, 44
  004017CA   .  8BCF          mov     ecx, edi
  004017CC   .  885424 17     mov     byte ptr [esp+17], dl
  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     byte ptr [esp+18], dl
  004017DD   .  7E 20         jle     short 004017FF
  004017DF   .  90            nop
  004017E0   >  85C9          test    ecx, ecx
  004017E2   .  0F8C D2000000 jl      004018BA
  004017E8   .  8B7E 70       mov     edi, dword ptr [esi+70]          ;  
  004017EB   .  3B4F F4       cmp     ecx, dword ptr [edi-C]           ;  
  004017EE   .  0F8F C6000000 jg      004018BA
  004017F4   .  0FB6140F      movzx   edx, byte ptr [edi+ecx]
  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, dword ptr [esi+74]          ;  
  00401802   .  8B51 F4       mov     edx, dword ptr [ecx-C]           ;  
  00401805   .  85D2          test    edx, edx
  00401807   .  7D 0A         jge     short 00401813
  00401809   .  68 57000780   push    80070057
  0040180E   .  E8 5DF9FFFF   call    00401170
  00401813   >  8A11          mov     dl, byte ptr [ecx]
  00401815   .  8B4E 74       mov     ecx, dword ptr [esi+74]
  00401818   .  8379 F4 01    cmp     dword ptr [ecx-C], 1
  0040181C   .  885424 19     mov     byte ptr [esp+19], dl
  00401820   .  7D 0A         jge     short 0040182C
  00401822   .  68 57000780   push    80070057
  00401827   .  E8 44F9FFFF   call    00401170
  0040182C   >  8A49 01       mov     cl, byte ptr [ecx+1]
  0040182F   .  8B7E 74       mov     edi, dword ptr [esi+74]
  00401832   .  884C24 13     mov     byte ptr [esp+13], cl
  00401836   .  837F F4 02    cmp     dword ptr [edi-C], 2
  0040183A   .  7D 0A         jge     short 00401846
  0040183C   .  68 57000780   push    80070057
  00401841   .  E8 2AF9FFFF   call    00401170
  00401846   >  8A4F 02       mov     cl, byte ptr [edi+2]
  00401849   .  8B7E 74       mov     edi, dword ptr [esi+74]
  0040184C   .  884C24 14     mov     byte ptr [esp+14], cl
  00401850   .  837F F4 03    cmp     dword ptr [edi-C], 3
  00401854   .  7D 0A         jge     short 00401860
  00401856   .  68 57000780   push    80070057
  0040185B   .  E8 10F9FFFF   call    00401170
  00401860   >  8A4F 03       mov     cl, byte ptr [edi+3]
  00401863   .  8B7E 74       mov     edi, dword ptr [esi+74]
  00401866   .  884C24 15     mov     byte ptr [esp+15], cl
  0040186A   .  837F F4 04    cmp     dword ptr [edi-C], 4
  0040186E   .  7D 0A         jge     short 0040187A
  00401870   .  68 57000780   push    80070057
  00401875   .  E8 F6F8FFFF   call    00401170
  0040187A   >  8A4F 04       mov     cl, byte ptr [edi+4]
  0040187D   .  8B7E 74       mov     edi, dword ptr [esi+74]
  00401880   .  837F F4 05    cmp     dword ptr [edi-C], 5
  00401884   .  7D 0A         jge     short 00401890
  00401886   .  68 57000780   push    80070057
  0040188B   .  E8 E0F8FFFF   call    00401170
  00401890   >  8A5F 05       mov     bl, byte ptr [edi+5]
  00401893   .  8B7E 74       mov     edi, dword ptr [esi+74]
  00401896   .  885C24 1A     mov     byte ptr [esp+1A], bl
  0040189A   .  837F F4 06    cmp     dword ptr [edi-C], 6
  0040189E   .  7D 0A         jge     short 004018AA
  004018A0   .  68 57000780   push    80070057
  004018A5   .  E8 C6F8FFFF   call    00401170
  004018AA   >  8A5F 06       mov     bl, byte ptr [edi+6]
  004018AD   .  8B7E 74       mov     edi, dword ptr [esi+74]
  004018B0   .  885C24 1B     mov     byte ptr [esp+1B], bl
  004018B4   .  837F F4 07    cmp     dword ptr [edi-C], 7           //上面在检验注册码位数是不是不小于8
  004018B8   .  7D 0A         jge     short 004018C4
  004018BA   >  68 57000780   push    80070057
  004018BF   .  E8 ACF8FFFF   call    00401170
  004018C4   >  8A5F 07       mov     bl, byte ptr [edi+7]
  004018C7   .  0FB67C24 16   movzx   edi, byte ptr [esp+16]
  004018CC   .  0FB6D2        movzx   edx, dl
  004018CF   .  83EA 30       sub     edx, 30
  004018D2   .  3BFA          cmp     edi, edx
  004018D4   .  75 48         jnz     short 0040191E
  004018D6   .  0FB65424 13   movzx   edx, byte ptr [esp+13]
  004018DB   .  0FB67C24 12   movzx   edi, byte ptr [esp+12]
  004018E0   .  83EA 30       sub     edx, 30
  004018E3   .  3BFA          cmp     edi, edx
  004018E5   .  75 37         jnz     short 0040191E
  004018E7   .  0FB65424 14   movzx   edx, byte ptr [esp+14]
  004018EC   .  0FB67C24 17   movzx   edi, byte ptr [esp+17]
  004018F1   .  83EA 30       sub     edx, 30
  004018F4   .  3BFA          cmp     edi, edx
  004018F6   .  75 26         jnz     short 0040191E
  004018F8   .  0FB65424 15   movzx   edx, byte ptr [esp+15]
  004018FD   .  0FB67C24 18   movzx   edi, byte ptr [esp+18]
  00401902   .  83EA 30       sub     edx, 30
  00401905   .  3BFA          cmp     edi, edx
  00401907   .  75 15         jnz     short 0040191E
  00401909   .  99            cdq
  0040190A   .  BF 0A000000   mov     edi, 0A
  0040190F   .  F7FF          idiv    edi
  00401911   .  0FB6C2        movzx   eax, dl
  00401914   .  0FB6D1        movzx   edx, cl
  00401917   .  83EA 30       sub     edx, 30
  0040191A   .  3BC2          cmp     eax, edx
  0040191C   .  74 3C         je      short 0040195A                  
  0040191E   >  8A5424 19     mov     dl, byte ptr [esp+19]             //下面开始逐位比较注册码
  00401922   .  B0 39         mov     al, 39                           ;
  00401924   .  3AD0          cmp     dl, al                                       // 注册码第1位与字符‘9’比较
  00401926   .  0F85 84000000 jnz     004019B0                                  不相等则跳向失败处
  0040192C   .  807C24 13 33  cmp     byte ptr [esp+13], 33           //注册码第2位与字符‘3’比较
  00401931   .  75 7D         jnz     short 004019B0                               不相等则跳向失败处
  00401933   .  384424 14     cmp     byte ptr [esp+14], al             //注册码第3位与字符‘9’比较
  00401937   .  75 77         jnz     short 004019B0                               不相等则跳向失败处
  00401939   .  8A5424 15     mov     dl, byte ptr [esp+15]
  0040193D   .  B0 31         mov     al, 31                           ;  
  0040193F   .  3AD0          cmp     dl, al                                       //注册码第4位与字符‘1’比较
  00401941   .  75 6D         jnz     short 004019B0                              不相等则跳向失败处
  00401943   .  80F9 33       cmp     cl, 33                                    //注册码第5位与字符‘3’比较
  00401946   .  75 68         jnz     short 004019B0                               不相等则跳向失败处
  00401948   .  384424 1A     cmp     byte ptr [esp+1A], al            //注册码第6位与字符‘1’比较
  0040194C   .  75 62         jnz     short 004019B0                               不相等则跳向失败处
  0040194E   .  807C24 1B 34  cmp     byte ptr [esp+1B], 34          //注册码第7位与字符‘4’比较
  00401953   .  75 5B         jnz     short 004019B0                               不相等则跳向失败处
  00401955   .  80FB 36       cmp     bl, 36                                    //注册码第8位与字符‘6’比较
  00401958   .  75 56         jnz     short 004019B0                               不相等则跳向失败处
  0040195A   >  6A 00         push    0
  0040195C   .  6A 00         push    0
  0040195E   .  68 D8D74200   push    0042D7D8
  00401963   .  E8 45520200   call    00426BAD                              // 注册成功
  00401968   .  8B7E 70       mov     edi, dword ptr [esi+70]
  0040196B   .  E8 E2690200   call    00428352                             
  00401970   .  8B40 04       mov     eax, dword ptr [eax+4]
  00401973   .  57            push    edi                              ; /Arg3
  00401974   .  68 CCD74200   push    0042D7CC                         ; |Arg2 = 0042D7CC ASCII "username"
  00401979   .  68 C4D74200   push    0042D7C4                         ; |Arg1 = 0042D7C4 ASCII "Option"
  0040197E   .  8BC8          mov     ecx, eax                         ; |
  00401980   .  E8 884F0200   call    0042690D                         ; \1.0042690D
  00401985   .  8B7E 74       mov     edi, dword ptr [esi+74]
  00401988   .  E8 C5690200   call    00428352
  0040198D   .  8B40 04       mov     eax, dword ptr [eax+4]
  00401990   .  57            push    edi                              ; /Arg3
  00401991   .  68 B0D74200   push    0042D7B0                         ; |Arg2 = 0042D7B0 ASCII "registration_code"
  00401996   .  68 C4D74200   push    0042D7C4                         ; |Arg1 = 0042D7C4 ASCII "Option"
  0040199B   .  8BC8          mov     ecx, eax                         ; |
  0040199D   .  E8 6B4F0200   call    0042690D                         ; \1.0042690D
  004019A2   .  5B            pop     ebx
  004019A3   .  5F            pop     edi
  004019A4   .  8BCE          mov     ecx, esi
  004019A6   .  5E            pop     esi
  004019A7   .  5D            pop     ebp
  004019A8   .  83C4 0C       add     esp, 0C
  004019AB   .  E9 F5120200   jmp     00422CA5
  004019B0   >  6A 00         push    0
  004019B2   .  6A 00         push    0
  004019B4   .  68 98D74200   push    0042D798                         ;  registration failed!
  004019B9   .  E8 EF510200   call    00426BAD
  
  
--------------------------------------------------------------------------------
【经验总结】
  1.软件是固定码注册 用户名与注册码无关
  2.用户名位数必须不小于2 注册码位数必须不小于8
  3.固定注册码是 93913146  用户名任意
  比如 用户名 bbs.chinapyg.com 注册码  93913146
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG官方论坛, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 千里之外 于 2007-5-28 13:26 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-20 19:43:11 | 显示全部楼层
恩,lz努力学习,进步飞快。。。希望继续努力。。。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-21 07:03:23 | 显示全部楼层
还是看不懂
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-21 11:04:59 | 显示全部楼层
不错,继续努力~~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-5-21 12:24:44 | 显示全部楼层
谢谢NISY坛主关心啊/:09  我会继续努力的 呵呵
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-28 14:34:10 | 显示全部楼层
向楼主学习。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-30 07:09:06 | 显示全部楼层
谢谢,学习中!
PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-5-31 10:06:13 | 显示全部楼层
    算法学习中,呵
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-31 15:52:11 | 显示全部楼层
    想LZ学习~!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-4 22:08
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2007-6-3 15:03:20 | 显示全部楼层
    学习再学习
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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