oumaizi 发表于 2010-8-13 12:28

里诺服装销售管理软件V2.20追码+算法分析

[ 破文标题 ] 里诺服装销售管理软件V2.20追码+算法分析
[ 破文作者 ] Crackers
[ 作者邮箱 ] 860986262@qq.com
[ 作者主页 ] 无
[ 破解工具 ] OD,PEID
[ 破解平台 ] Windows Xp SP3
[ 软件名称 ] 里诺服装销售管理软件V2.20
[ 软件大小 ] 7MB
[ 原版下载 ] http://www.onlinedown.net/soft/69517.htm?jdfwkey=dt5wr3
[ 保护方式 ] 重启验证
[ 软件简介 ] 里诺服装销售管理软件是一款专业的服装管理软件(服装销售软件,服装软件,服装进销存软件)。软件界面设计简洁,美观,其人性化的软件流程,使普通用户不需培训也能快掌握软件操作使用方法,上手极易。强大报表与集成查询功能是本软件的最大特色,所有功能在用户需要使用的地方自然体现。特别适合于各服装专卖店等使用。
[ 破解声明 ] 仅供交流,请勿商业用途
[ 破解过程 ]
追码:
008F78F8   .BA F87C8F00   mov   edx, 008F7CF8                  ;software\zy\fzjxc
008F78FD   .E8 BAD5B0FF   call    00404EBC
008F7902   .B1 01         mov   cl, 1
008F7904   .8B55 F0       mov   edx, dword ptr
008F7907   .8B45 EC       mov   eax, dword ptr
008F790A   .E8 5550B5FF   call    0044C964
008F790F   .84C0          test    al, al                           ;来到了关键代码段
008F7911   .0F84 96000000 je      008F79AD
008F7917   .E8 24FDFFFF   call    <jmp.&HDSerial.HDSerialNumRead>
008F791C   .8BD0          mov   edx, eax
008F791E   .8D45 AC       lea   eax, dword ptr
008F7921   .E8 06D7B0FF   call    0040502C
008F7926   .8B45 AC       mov   eax, dword ptr
008F7929   .8D55 B0       lea   edx, dword ptr
008F792C   .E8 E726B1FF   call    0040A018
008F7931   .8B55 B0       mov   edx, dword ptr           ;读入机器码
008F7934   .A1 04B89000   mov   eax, dword ptr
008F7939   .8B00          mov   eax, dword ptr
008F793B   .05 4C050000   add   eax, 54C
008F7940   .E8 33D5B0FF   call    00404E78
008F7945   .8D4D A8       lea   ecx, dword ptr
008F7948   .BA 147D8F00   mov   edx, 008F7D14                  ;pass
008F794D   .8B45 EC       mov   eax, dword ptr
008F7950   .E8 8B55B5FF   call    0044CEE0                         ;读入注册码
008F7955   .8B55 A8       mov   edx, dword ptr
008F7958   .A1 04B89000   mov   eax, dword ptr
008F795D   .8B00          mov   eax, dword ptr
008F795F   .05 50050000   add   eax, 550
008F7964   .E8 0FD5B0FF   call    00404E78
008F7969   .33C0          xor   eax, eax
008F796B   .55            push    ebp
008F796C   .68 90798F00   push    008F7990
008F7971   .64:FF30       push    dword ptr fs:
008F7974   .64:8920       mov   dword ptr fs:, esp
008F7977   .BA 247D8F00   mov   edx, 008F7D24                  ;date
008F797C   .8B45 EC       mov   eax, dword ptr
008F797F   .E8 BC56B5FF   call    0044D040
008F7984   .DDD8          fstp    st
008F7986   .33C0          xor   eax, eax
008F7988   .5A            pop   edx
008F7989   .59            pop   ecx
008F798A   .59            pop   ecx
008F798B   .64:8910       mov   dword ptr fs:, edx
008F798E   .EB 1D         jmp   short 008F79AD
008F7990   .^ E9 5BCAB0FF   jmp   004043F0
008F7995   .FF75 DC       push    dword ptr
008F7998   .FF75 D8       push    dword ptr
008F799B   .BA 247D8F00   mov   edx, 008F7D24                  ;date
008F79A0   .8B45 EC       mov   eax, dword ptr
008F79A3   .E8 8456B5FF   call    0044D02C
008F79A8   .E8 6FCEB0FF   call    0040481C
008F79AD   >8B45 EC       mov   eax, dword ptr
008F79B0   .E8 3B4EB5FF   call    0044C7F0
008F79B5   .33C0          xor   eax, eax
008F79B7   .5A            pop   edx
008F79B8   .59            pop   ecx
008F79B9   .59            pop   ecx
008F79BA   .64:8910       mov   dword ptr fs:, edx
008F79BD   .68 D2798F00   push    008F79D2
008F79C2   >8B45 EC       mov   eax, dword ptr
008F79C5   .E8 46C5B0FF   call    00403F10
008F79CA   .C3            retn
008F79CB   .^ E9 D4CCB0FF   jmp   004046A4
008F79D0   .^ EB F0         jmp   short 008F79C2
008F79D2   .8B45 FC       mov   eax, dword ptr
008F79D5   .8B80 04030000 mov   eax, dword ptr
008F79DB   .BA 347D8F00   mov   edx, 008F7D34                  ;select count(*) from tstocks
008F79E0   .E8 6B370000   call    008FB150
008F79E5   .8B45 FC       mov   eax, dword ptr
008F79E8   .8B80 04030000 mov   eax, dword ptr
008F79EE   .8B40 30       mov   eax, dword ptr
008F79F1   .33D2          xor   edx, edx
008F79F3   .E8 387BC2FF   call    0051F530
008F79F8   .8B10          mov   edx, dword ptr
008F79FA   .FF52 58       call    dword ptr
008F79FD   .8BD8          mov   ebx, eax
008F79FF   .8B45 FC       mov   eax, dword ptr
008F7A02   .8B80 04030000 mov   eax, dword ptr
008F7A08   .BA 5C7D8F00   mov   edx, 008F7D5C                  ;select count(*) from tsalebill
008F7A0D   .E8 3E370000   call    008FB150
008F7A12   .8B45 FC       mov   eax, dword ptr
008F7A15   .8B80 04030000 mov   eax, dword ptr
008F7A1B   .8B40 30       mov   eax, dword ptr
008F7A1E   .33D2          xor   edx, edx
008F7A20   .E8 0B7BC2FF   call    0051F530
008F7A25   .8B10          mov   edx, dword ptr
008F7A27   .FF52 58       call    dword ptr
008F7A2A   .8B55 FC       mov   edx, dword ptr
008F7A2D   .8982 A00C0000 mov   dword ptr , eax
008F7A33   .8B45 FC       mov   eax, dword ptr
008F7A36   .8B80 04030000 mov   eax, dword ptr
008F7A3C   .BA 847D8F00   mov   edx, 008F7D84                  ;select count(*) from tsalebilldetail
008F7A41   .E8 0A370000   call    008FB150
008F7A46   .8B45 FC       mov   eax, dword ptr
008F7A49   .8B80 04030000 mov   eax, dword ptr
008F7A4F   .8B40 30       mov   eax, dword ptr
008F7A52   .33D2          xor   edx, edx
008F7A54   .E8 D77AC2FF   call    0051F530
008F7A59   .8B10          mov   edx, dword ptr
008F7A5B   .FF52 58       call    dword ptr
008F7A5E   .8B55 FC       mov   edx, dword ptr
008F7A61   .8982 A40C0000 mov   dword ptr , eax
008F7A67   .8B45 FC       mov   eax, dword ptr
008F7A6A   .8B80 04030000 mov   eax, dword ptr
008F7A70   .E8 6729C3FF   call    0052A3DC
008F7A75   .8B45 FC       mov   eax, dword ptr
008F7A78   .C680 BD0C0000>mov   byte ptr , 1
008F7A7F   .8D4D A4       lea   ecx, dword ptr
008F7A82   .A1 04B89000   mov   eax, dword ptr
008F7A87   .8B00          mov   eax, dword ptr
008F7A89   .8B90 4C050000 mov   edx, dword ptr          ;再次读入机器码
008F7A8F   .A1 30B19000   mov   eax, dword ptr
008F7A94   .8B00          mov   eax, dword ptr
008F7A96   .E8 1DE2FEFF   call    008E5CB8                         ;关键Call,在这里下断
008F7A9B   .8B55 A4       mov   edx, dword ptr           ;追码,成功,算出了注册码,我们试一下
008F7A9E   .A1 04B89000   mov   eax, dword ptr
008F7AA3   .8B00          mov   eax, dword ptr
算法分析:
008E5CB8/$55            push    ebp
008E5CB9|.8BEC          mov   ebp, esp                         ;读入机器码
008E5CBB|.51            push    ecx
008E5CBC|.B9 04000000   mov   ecx, 4
008E5CC1|>6A 00         /push    0
008E5CC3|.6A 00         |push    0
008E5CC5|.49            |dec   ecx
008E5CC6|.^ 75 F9         \jnz   short 008E5CC1
008E5CC8|.51            push    ecx
008E5CC9|.874D FC       xchg    dword ptr , ecx
008E5CCC|.53            push    ebx
008E5CCD|.56            push    esi
008E5CCE|.57            push    edi
008E5CCF|.8BF9          mov   edi, ecx
008E5CD1|.8955 FC       mov   dword ptr , edx
008E5CD4|.8B45 FC       mov   eax, dword ptr
008E5CD7|.E8 08F6B1FF   call    004052E4
008E5CDC|.33C0          xor   eax, eax
008E5CDE|.55            push    ebp
008E5CDF|.68 795E8E00   push    008E5E79
008E5CE4|.64:FF30       push    dword ptr fs:
008E5CE7|.64:8920       mov   dword ptr fs:, esp
008E5CEA|.8BC7          mov   eax, edi
008E5CEC|.E8 33F1B1FF   call    00404E24
008E5CF1|.8B45 FC       mov   eax, dword ptr
008E5CF4|.E8 FBF3B1FF   call    004050F4
008E5CF9|.8BF0          mov   esi, eax
008E5CFB|.85F6          test    esi, esi
008E5CFD|.7E 26         jle   short 008E5D25
008E5CFF|.BB 01000000   mov   ebx, 1
008E5D04|>8D4D EC       /lea   ecx, dword ptr
008E5D07|.8B45 FC       |mov   eax, dword ptr
008E5D0A|.0FB64418 FF   |movzx   eax, byte ptr
008E5D0F|.33D2          |xor   edx, edx
008E5D11|.E8 BA49B2FF   |call    0040A6D0
008E5D16|.8B55 EC       |mov   edx, dword ptr
008E5D19|.8D45 F8       |lea   eax, dword ptr
008E5D1C|.E8 DBF3B1FF   |call    004050FC
008E5D21|.43            |inc   ebx
008E5D22|.4E            |dec   esi
008E5D23|.^ 75 DF         \jnz   short 008E5D04
008E5D25|>8B45 F8       mov   eax, dword ptr          ;这个循环是将机器码转换为ASCII码
008E5D28|.E8 C7F3B1FF   call    004050F4
008E5D2D|.8BF0          mov   esi, eax
008E5D2F|.85F6          test    esi, esi
008E5D31|.7E 2C         jle   short 008E5D5F
008E5D33|.BB 01000000   mov   ebx, 1
008E5D38|>8B45 F8       /mov   eax, dword ptr           ;读入ASCII码
008E5D3B|.E8 B4F3B1FF   |call    004050F4
008E5D40|.2BC3          |sub   eax, ebx
008E5D42|.8B55 F8       |mov   edx, dword ptr
008E5D45|.8A1402      |mov   dl, byte ptr
008E5D48|.8D45 E8       |lea   eax, dword ptr
008E5D4B|.E8 BCF2B1FF   |call    0040500C
008E5D50|.8B55 E8       |mov   edx, dword ptr
008E5D53|.8D45 F4       |lea   eax, dword ptr
008E5D56|.E8 A1F3B1FF   |call    004050FC
008E5D5B|.43            |inc   ebx
008E5D5C|.4E            |dec   esi
008E5D5D|.^ 75 D9         \jnz   short 008E5D38
008E5D5F|>8D45 F8       lea   eax, dword ptr
008E5D62|.50            push    eax
008E5D63|.B9 04000000   mov   ecx, 4
008E5D68|.BA 01000000   mov   edx, 1
008E5D6D|.8B45 F4       mov   eax, dword ptr          ;这个循环将ASCII码颠倒
008E5D70|.E8 DFF5B1FF   call    00405354
008E5D75|.8D45 F4       lea   eax, dword ptr
008E5D78|.50            push    eax
008E5D79|.B9 04000000   mov   ecx, 4
008E5D7E|.BA 05000000   mov   edx, 5
008E5D83|.8B45 F4       mov   eax, dword ptr
008E5D86|.E8 C9F5B1FF   call    00405354
008E5D8B|.8B45 F8       mov   eax, dword ptr          ;读出前4位
008E5D8E|.E8 61F3B1FF   call    004050F4
008E5D93|.83F8 04       cmp   eax, 4                           ;判断是否为4位
008E5D96|.7D 2F         jge   short 008E5DC7
008E5D98|.8B45 F8       mov   eax, dword ptr
008E5D9B|.E8 54F3B1FF   call    004050F4
008E5DA0|.8BD8          mov   ebx, eax
008E5DA2|.83FB 03       cmp   ebx, 3
008E5DA5|.7F 20         jg      short 008E5DC7
008E5DA7|>8D4D E4       /lea   ecx, dword ptr
008E5DAA|.8BC3          |mov   eax, ebx
008E5DAC|.C1E0 02       |shl   eax, 2
008E5DAF|.33D2          |xor   edx, edx
008E5DB1|.E8 1A49B2FF   |call    0040A6D0
008E5DB6|.8B55 E4       |mov   edx, dword ptr
008E5DB9|.8D45 F8       |lea   eax, dword ptr
008E5DBC|.E8 3BF3B1FF   |call    004050FC
008E5DC1|.43            |inc   ebx
008E5DC2|.83FB 04       |cmp   ebx, 4
008E5DC5|.^ 75 E0         \jnz   short 008E5DA7
008E5DC7|>8B45 F4       mov   eax, dword ptr          ;读入7576
008E5DCA|.E8 25F3B1FF   call    004050F4
008E5DCF|.83F8 04       cmp   eax, 4                           ;判断是否为4位
008E5DD2|.7D 2F         jge   short 008E5E03
008E5DD4|.8B45 F4       mov   eax, dword ptr
008E5DD7|.E8 18F3B1FF   call    004050F4
008E5DDC|.8BD8          mov   ebx, eax
008E5DDE|.83FB 03       cmp   ebx, 3
008E5DE1|.7F 20         jg      short 008E5E03
008E5DE3|>8D4D E0       /lea   ecx, dword ptr
008E5DE6|.8BC3          |mov   eax, ebx
008E5DE8|.C1E0 02       |shl   eax, 2
008E5DEB|.33D2          |xor   edx, edx
008E5DED|.E8 DE48B2FF   |call    0040A6D0
008E5DF2|.8B55 E0       |mov   edx, dword ptr
008E5DF5|.8D45 F4       |lea   eax, dword ptr
008E5DF8|.E8 FFF2B1FF   |call    004050FC
008E5DFD|.43            |inc   ebx
008E5DFE|.83FB 04       |cmp   ebx, 4
008E5E01|.^ 75 E0         \jnz   short 008E5DE3
008E5E03|>8D45 F0       lea   eax, dword ptr
008E5E06|.BA 905E8E00   mov   edx, 008E5E90                  ;读入csale45yr87
008E5E0B|.E8 ACF0B1FF   call    00404EBC
008E5E10|.8D45 DC       lea   eax, dword ptr
008E5E13|.50            push    eax
008E5E14|.B9 04000000   mov   ecx, 4
008E5E19|.BA 01000000   mov   edx, 1
008E5E1E|.8B45 F0       mov   eax, dword ptr
008E5E21|.E8 2EF5B1FF   call    00405354
008E5E26|.FF75 DC       push    dword ptr                ;读取csale45yr87的前4位,即CSal
008E5E29|.68 A45E8E00   push    008E5EA4                         ;-
008E5E2E|.FF75 F8       push    dword ptr                 ;读出ASCII码的前四位
008E5E31|.8D45 D8       lea   eax, dword ptr
008E5E34|.50            push    eax
008E5E35|.B9 05000000   mov   ecx, 5
008E5E3A|.BA 05000000   mov   edx, 5
008E5E3F|.8B45 F0       mov   eax, dword ptr
008E5E42|.E8 0DF5B1FF   call    00405354
008E5E47|.FF75 D8       push    dword ptr                ;读入e45yr
008E5E4A|.68 A45E8E00   push    008E5EA4                         ;-
008E5E4F|.FF75 F4       push    dword ptr                 ;读入ASCII码的第4位到第8位
008E5E52|.8BC7          mov   eax, edi
008E5E54|.BA 06000000   mov   edx, 6
008E5E59|.E8 56F3B1FF   call    004051B4
008E5E5E|.33C0          xor   eax, eax
008E5E60|.5A            pop   edx
008E5E61|.59            pop   ecx
008E5E62|.59            pop   ecx
008E5E63|.64:8910       mov   dword ptr fs:, edx
008E5E66|.68 805E8E00   push    008E5E80
008E5E6B|>8D45 D8       lea   eax, dword ptr
008E5E6E|.BA 0A000000   mov   edx, 0A
008E5E73|.E8 D0EFB1FF   call    00404E48
008E5E78\.C3            retn
008E5E79   .^ E9 26E8B1FF   jmp   004046A4
008E5E7E   .^ EB EB         jmp   short 008E5E6B
008E5E80   .5F            pop   edi
008E5E81   .5E            pop   esi
008E5E82   .5B            pop   ebx
008E5E83   .8BE5          mov   esp, ebp
008E5E85   .5D            pop   ebp                              ;算出注册码
[ 破解总结 ]
这个算法大体就是这样的结构
1.读入机器码
2.将机器码转换为ASCII码
3.将ASCII码颠倒
4.读入CSale45yr
5.读入ASCII码的前四位放在CSal和e45yr的中间,并在加上CSal后面加上-
6.读入ASCII码的第4位到第8位,放在e45yr后面,并加上-
OK,今天的教程就结束啦,谢谢观看哈,希望多多支持
[ 版权声明 ]
转载请注明作者,谢谢

wu20031123 发表于 2010-8-13 12:35

做沙发``

woaiawu 发表于 2010-8-13 13:40

来学习学习~~~~~

oumaizi 发表于 2010-8-13 13:31

希望加个精

蹦蹦兔 发表于 2010-8-13 12:34

着是什么啊`看不懂哦`

顽皮小子 发表于 2014-11-11 22:35

O(∩_∩)O谢谢。。。。。。。。。。

oumaizi 发表于 2010-8-15 06:57

唉,埋没了

bob123 发表于 2010-8-15 12:13

回复 6# oumaizi


我是来支持的,你猜我是谁?哈哈

yangman 发表于 2010-12-24 15:52

学习学习~~~~~

sgltlj 发表于 2010-12-24 18:07

楼主能做个语音的吗,

woyaodaili 发表于 2010-12-24 20:05

写的很详细,谢谢,学习一下
页: [1] 2 3
查看完整版本: 里诺服装销售管理软件V2.20追码+算法分析