千里之外 发表于 2007-5-20 19:11:40

菜鸟算法1

【文章标题】: 菜鸟算法(高手飞过)
【文章作者】: 千里之外
【作者邮箱】: 506398911@qq.com
【作者QQ号】: 506398911
【软件名称】: MP3 Splitter
【软件大小】: 120 KB
【下载地址】: https://www.chinapyg.com/viewthread.php?tid=15466
【加壳方式】: 未知壳(可用ESP定律手脱)
【保护方式】: 注册码验证
【编写语言】: Microsoft Visual C++ 7.0
【使用工具】: peidOD
【操作平台】: 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
00401706   .8B68 F4       mov   ebp, dword ptr
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
00401726   .8379 F4 08    cmp   dword ptr , 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
00401744   .8B48 F4       mov   ecx, dword ptr
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
00401757   .8B46 70       mov   eax, dword ptr
0040175A   .3978 F4       cmp   dword ptr , edi
0040175D   .7D 0A         jge   short 00401769
0040175F   .68 57000780   push    80070057
00401764   .E8 07FAFFFF   call    00401170
00401769   >8A40 01       mov   al, byte ptr
0040176C   .884424 0E   mov   byte ptr , al
00401770   .8B46 70       mov   eax, dword ptr
00401773   .8B48 F4       mov   ecx, dword ptr
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
00401787   .53            push    ebx
00401788   .8A18          mov   bl, byte ptr
0040178A   .3979 F4       cmp   dword ptr , 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
004017AC   .83C8 42       or      eax, 42
004017AF   .885424 16   mov   byte ptr , 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 , dl
004017C0   .99            cdq
004017C1   .F7FF          idiv    edi
004017C3   .0FB641 01   movzx   eax, byte ptr
004017C7   .83C8 44       or      eax, 44
004017CA   .8BCF          mov   ecx, edi
004017CC   .885424 17   mov   byte ptr , 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 , 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           ;
004017EB   .3B4F F4       cmp   ecx, dword ptr          ;
004017EE   .0F8F C6000000 jg      004018BA
004017F4   .0FB6140F      movzx   edx, byte ptr
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           ;
00401802   .8B51 F4       mov   edx, dword ptr          ;
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
00401815   .8B4E 74       mov   ecx, dword ptr
00401818   .8379 F4 01    cmp   dword ptr , 1
0040181C   .885424 19   mov   byte ptr , dl
00401820   .7D 0A         jge   short 0040182C
00401822   .68 57000780   push    80070057
00401827   .E8 44F9FFFF   call    00401170
0040182C   >8A49 01       mov   cl, byte ptr
0040182F   .8B7E 74       mov   edi, dword ptr
00401832   .884C24 13   mov   byte ptr , cl
00401836   .837F F4 02    cmp   dword ptr , 2
0040183A   .7D 0A         jge   short 00401846
0040183C   .68 57000780   push    80070057
00401841   .E8 2AF9FFFF   call    00401170
00401846   >8A4F 02       mov   cl, byte ptr
00401849   .8B7E 74       mov   edi, dword ptr
0040184C   .884C24 14   mov   byte ptr , cl
00401850   .837F F4 03    cmp   dword ptr , 3
00401854   .7D 0A         jge   short 00401860
00401856   .68 57000780   push    80070057
0040185B   .E8 10F9FFFF   call    00401170
00401860   >8A4F 03       mov   cl, byte ptr
00401863   .8B7E 74       mov   edi, dword ptr
00401866   .884C24 15   mov   byte ptr , cl
0040186A   .837F F4 04    cmp   dword ptr , 4
0040186E   .7D 0A         jge   short 0040187A
00401870   .68 57000780   push    80070057
00401875   .E8 F6F8FFFF   call    00401170
0040187A   >8A4F 04       mov   cl, byte ptr
0040187D   .8B7E 74       mov   edi, dword ptr
00401880   .837F F4 05    cmp   dword ptr , 5
00401884   .7D 0A         jge   short 00401890
00401886   .68 57000780   push    80070057
0040188B   .E8 E0F8FFFF   call    00401170
00401890   >8A5F 05       mov   bl, byte ptr
00401893   .8B7E 74       mov   edi, dword ptr
00401896   .885C24 1A   mov   byte ptr , bl
0040189A   .837F F4 06    cmp   dword ptr , 6
0040189E   .7D 0A         jge   short 004018AA
004018A0   .68 57000780   push    80070057
004018A5   .E8 C6F8FFFF   call    00401170
004018AA   >8A5F 06       mov   bl, byte ptr
004018AD   .8B7E 74       mov   edi, dword ptr
004018B0   .885C24 1B   mov   byte ptr , bl
004018B4   .837F F4 07    cmp   dword ptr , 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
004018C7   .0FB67C24 16   movzx   edi, byte ptr
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
004018DB   .0FB67C24 12   movzx   edi, byte ptr
004018E0   .83EA 30       sub   edx, 30
004018E3   .3BFA          cmp   edi, edx
004018E5   .75 37         jnz   short 0040191E
004018E7   .0FB65424 14   movzx   edx, byte ptr
004018EC   .0FB67C24 17   movzx   edi, byte ptr
004018F1   .83EA 30       sub   edx, 30
004018F4   .3BFA          cmp   edi, edx
004018F6   .75 26         jnz   short 0040191E
004018F8   .0FB65424 15   movzx   edx, byte ptr
004018FD   .0FB67C24 18   movzx   edi, byte ptr
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              //下面开始逐位比较注册码
00401922   .B0 39         mov   al, 39                           ;
00401924   .3AD0          cmp   dl, al                                       // 注册码第1位与字符‘9’比较
00401926   .0F85 84000000 jnz   004019B0                                  不相等则跳向失败处
0040192C   .807C24 13 33cmp   byte ptr , 33         //注册码第2位与字符‘3’比较
00401931   .75 7D         jnz   short 004019B0                               不相等则跳向失败处
00401933   .384424 14   cmp   byte ptr , al             //注册码第3位与字符‘9’比较
00401937   .75 77         jnz   short 004019B0                               不相等则跳向失败处
00401939   .8A5424 15   mov   dl, byte ptr
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 , al            //注册码第6位与字符‘1’比较
0040194C   .75 62         jnz   short 004019B0                               不相等则跳向失败处
0040194E   .807C24 1B 34cmp   byte ptr , 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
0040196B   .E8 E2690200   call    00428352                           
00401970   .8B40 04       mov   eax, dword ptr
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
00401988   .E8 C5690200   call    00428352
0040198D   .8B40 04       mov   eax, dword ptr
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 编辑 ]

deletex 发表于 2007-5-20 19:43:11

恩,lz努力学习,进步飞快。。。希望继续努力。。。

6590ttt 发表于 2007-5-21 07:03:23

还是看不懂

Nisy 发表于 2007-5-21 11:04:59

不错,继续努力~~

千里之外 发表于 2007-5-21 12:24:44

谢谢NISY坛主关心啊/:09我会继续努力的 呵呵

pw2000 发表于 2007-5-28 14:34:10

向楼主学习。

happylinkai 发表于 2007-5-30 07:09:06

谢谢,学习中!

yingfeng 发表于 2007-5-31 10:06:13

算法学习中,呵

小子贼野 发表于 2007-5-31 15:52:11

想LZ学习~!

bhcjl 发表于 2007-6-3 15:03:20

学习再学习
页: [1] 2
查看完整版本: 菜鸟算法1