首页
社区
课程
招聘
[原创]里诺进销存管理软件算法分析
发表于: 2006-7-2 11:02 4487

[原创]里诺进销存管理软件算法分析

vxin 活跃值
10
2006-7-2 11:02
4487
【破文标题】里诺进销存管理软件算法分析
【破文作者】黑夜彩虹
【破解工具】OD
【破解平台】Windows 2K&XP
【软件名称】里诺进销存管理软件(单机版)V2.75
【软件大小】
【原版下载】Google
【保护方式】注册码
【软件简介】里诺进销存管理系统是是一个集“进、销、存、财”四位一体的全功能商贸管理软件。软件界面设计简洁,美观。其人性化
            的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。强大报表与集成查询功能是本软件的最大特
            色,所有功能在用户需要的使用地方自然体现,不用打开多个窗口重复查询。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
【破解过程】   

一、安装软件后,运行注册有错误提示。PEiD查无壳。
软件是Borland Delphi 6.0 - 7.0编写。

运行,注册名:VXin   试练码:123456

二、OD载入后,超级ASCII参串

****************************

从而找到程序注册检测代码段:

超级字串参考+        , 条目 5341
地址=00655B04
反汇编=PUSH jxc.00655BE0
文本字串=注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!       //双击

00655A5D   .  E8 A6020000   CALL jxc.00655D08                           //这里下断(关键CALL)
00655A62   .  84C0          TEST AL,AL
00655A64   .  0F84 DB000000 JE jxc.00655B45                            //这里比较,相等则跳,跳则死
00655A6A   .  33C0          XOR EAX,EAX

...............中间代码省略........................

00655AF8   .  E8 67E0DAFF   CALL jxc.00403B64
00655AFD   .  6A 40         PUSH 40
00655AFF   .  68 D45B6500   PUSH jxc.00655BD4                        ;  软件注册
00655B04   .  68 E05B6500   PUSH jxc.00655BE0                        ;  注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!
00655B09   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00655B0C   .  E8 6793E3FF   CALL jxc.0048EE78
00655B11   .  50            PUSH EAX                                 ; |hOwner
00655B12   .  E8 9925DBFF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

...............中间代码省略........................

00655B43   . /EB 1A         JMP SHORT jxc.00655B5F
00655B45   > |6A 40         PUSH 40
00655B47   . |68 D45B6500   PUSH jxc.00655BD4                        ;  软件注册
00655B4C   . |68 305C6500   PUSH jxc.00655C30                        ;  注册失败,请检查您的注册名和注册码!
00655B51   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00655B54   . |E8 1F93E3FF   CALL jxc.0048EE78
00655B59   . |50            PUSH EAX                                 ; |hOwner
00655B5A   . |E8 5125DBFF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

运行,停在下断处,F7跟进

00655D08  /$  55            PUSH EBP
00655D09  |.  8BEC          MOV EBP,ESP
00655D0B  |.  B9 04000000   MOV ECX,4

...............中间省略N行代码..............

00655D27  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00655D2A  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
00655D2D  |.  8B86 08030000 MOV EAX,DWORD PTR DS:[ESI+308]           ;  DS:[0156C548]=0156EAF8, (ASCII "LZG") 不管,继续单步
00655D33  |.  E8 3827E3FF   CALL jxc.00488470                        ;  EAX 0156EAF8 ASCII "LZG"
00655D38  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  堆栈 SS:[0012EBFC]=0156EA8C, (ASCII "123456")
00655D3B  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]             ;  EAX 0156EA8C ASCII "123456"
00655D3E  |.  E8 093DDBFF   CALL jxc.00409A4C
00655D43  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  堆栈 SS:[0012EC00]=01566A4C, (ASCII "123456")
00655D46  |.  50            PUSH EAX                                 ;  EAX 01566A4C ASCII "123456"
00655D47  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
00655D4A  |.  8B86 04030000 MOV EAX,DWORD PTR DS:[ESI+304]           ;  DS:[0156C544]=0156E7AC, (ASCII "LZG") EAX=01566A4C, (ASCII "123456")
00655D50  |.  E8 1B27E3FF   CALL jxc.00488470                        ;  EAX 0156E7AC ASCII "LZG"
00655D55  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]            ;  堆栈 SS:[0012EBF0]=014ED60C, (ASCII "VXin")
00655D58  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]            ;  EAX 014ED60C ASCII "VXin"
00655D5B  |.  E8 EC3CDBFF   CALL jxc.00409A4C
00655D60  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]            ;  堆栈 SS:[0012EBF4]=014D1C60, (ASCII "VXin")
00655D63  |.  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]             ;  EDX 014D1C60 ASCII "VXin"
00655D66  |.  8BC6          MOV EAX,ESI
00655D68  |.  E8 FF000000   CALL jxc.00655E6C                        ;  F7
00655D6D  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  堆栈 SS:[0012EBF8]=01561BC0, (ASCII "JXCw-E696268d5-8767")
00655D70  |.  58            POP EAX                                  ;  ASCII码压入EDX
00655D71  |.  E8 EEF0DAFF   CALL jxc.00404E64
00655D76  |.  75 50         JNZ SHORT jxc.00655DC8                   ;  比较,不等则跳
00655D78  |.  B3 01         MOV BL,1

...............中间省略N行代码..............

00655E83  |.  8BF9          MOV EDI,ECX
00655E85  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;  EDX=014D1C60, (ASCII "VXin")
00655E88  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  堆栈 SS:[0012EBBC]=014D1C60, (ASCII "VXin")
00655E8B  |.  E8 78F0DAFF   CALL jxc.00404F08                        ;  EAX 014D1C60 ASCII "VXin"
00655E90  |.  33C0          XOR EAX,EAX                              ;  EAX=014D1C60, (ASCII "VXin")
00655E92  |.  55            PUSH EBP
00655E93  |.  68 2D606500   PUSH jxc.0065602D
00655E98  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00655E9B  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00655E9E  |.  8BC7          MOV EAX,EDI
00655EA0  |.  E8 B3EBDAFF   CALL jxc.00404A58
00655EA5  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  堆栈 SS:[0012EBBC]=014D1C60, (ASCII "VXin")
00655EA8  |.  E8 6BEEDAFF   CALL jxc.00404D18                        ;  EAX 014D1C60 ASCII "VXin"
00655EAD  |.  8BF0          MOV ESI,EAX
00655EAF  |.  85F6          TEST ESI,ESI
00655EB1  |.  7E 26         JLE SHORT jxc.00655ED9
00655EB3  |.  BB 01000000   MOV EBX,1
00655EB8  |>  8D4D EC       /LEA ECX,DWORD PTR SS:[EBP-14]
00655EBB  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ;  堆栈 SS:[0012EBBC]=014D1C60, (ASCII "VXin")
00655EBE  |.  0FB64418 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]       ;  循环取用户名的ASCII码
00655EC3  |.  33D2          |XOR EDX,EDX                             ;  
00655EC5  |.  E8 9A42DBFF   |CALL jxc.0040A164
00655ECA  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]           ;  ASCII码入EDX
00655ECD  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
00655ED0  |.  E8 4BEEDAFF   |CALL jxc.00404D20
00655ED5  |.  43            |INC EBX
00655ED6  |.  4E            |DEC ESI
00655ED7  |.^ 75 DF         \JNZ SHORT jxc.00655EB8
00655ED9  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  堆栈 SS:[0012EBB8]=014ED7AC, (ASCII "5658696E")
00655EDC  |.  E8 37EEDAFF   CALL jxc.00404D18
00655EE1  |.  8BF0          MOV ESI,EAX
00655EE3  |.  85F6          TEST ESI,ESI
00655EE5  |.  7E 2C         JLE SHORT jxc.00655F13
00655EE7  |.  BB 01000000   MOV EBX,1
00655EEC  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]            ;  堆栈 SS:[0012EBB8]=014ED7AC, (ASCII "5658696E")
00655EEF  |.  E8 24EEDAFF   |CALL jxc.00404D18
00655EF4  |.  2BC3          |SUB EAX,EBX
00655EF6  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]            ;  堆栈 SS:[0012EBB8]=014ED7AC, (ASCII "5658696E") EDX=014ED7B2, (ASCII "6E")
00655EF9  |.  8A1402        |MOV DL,BYTE PTR DS:[EDX+EAX]            ;  ASCII码,由尾至头重新排列
00655EFC  |.  8D45 E8       |LEA EAX,DWORD PTR SS:[EBP-18]
00655EFF  |.  E8 3CEDDAFF   |CALL jxc.00404C40
00655F04  |.  8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]
00655F07  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
00655F0A  |.  E8 11EEDAFF   |CALL jxc.00404D20
00655F0F  |.  43            |INC EBX
00655F10  |.  4E            |DEC ESI
00655F11  |.^ 75 D9         \JNZ SHORT jxc.00655EEC
00655F13  |>  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
00655F16  |.  50            PUSH EAX
00655F17  |.  B9 04000000   MOV ECX,4
00655F1C  |.  BA 01000000   MOV EDX,1
00655F21  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  堆栈 SS:[0012EBB4]=01565830, (ASCII "E6968565")
00655F24  |.  E8 4FF0DAFF   CALL jxc.00404F78                        ;  EAX 01565830 ASCII "E6968565"
00655F29  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
00655F2C  |.  50            PUSH EAX
00655F2D  |.  B9 04000000   MOV ECX,4
00655F32  |.  BA 05000000   MOV EDX,5
00655F37  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  堆栈 SS:[0012EBB4]=01565830, (ASCII "E6968565")
00655F3A  |.  E8 39F0DAFF   CALL jxc.00404F78                        ;  EAX 01565830 ASCII "E6968565"
00655F3F  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  堆栈 SS:[0012EBB8]=0156D880, (ASCII "E696")
00655F42  |.  E8 D1EDDAFF   CALL jxc.00404D18                        ;  EAX 0156D880 ASCII "E696"
00655F47  |.  83F8 04       CMP EAX,4
00655F4A  |.  7D 2F         JGE SHORT jxc.00655F7B

...............中间省略N行代码..............

00655F79  |.^ 75 E0         \JNZ SHORT jxc.00655F5B
00655F7B  |>  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  堆栈 SS:[0012EBB4]=0156DC80, (ASCII "8565")
00655F7E  |.  E8 95EDDAFF   CALL jxc.00404D18
00655F83  |.  83F8 04       CMP EAX,4

...............中间省略N行代码..............

00655FB5  |.^ 75 E0         \JNZ SHORT jxc.00655F97
00655FB7  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
00655FBA  |.  BA 44606500   MOV EDX,jxc.00656044                     ;  00656044=jxc.00656044 (ASCII "JXCw268d58k")
00655FBF  |.  E8 2CEBDAFF   CALL jxc.00404AF0                        ;  EDX 00656044 ASCII "JXCw268d58k"
00655FC4  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
00655FC7  |.  50            PUSH EAX
00655FC8  |.  B9 04000000   MOV ECX,4
00655FCD  |.  BA 01000000   MOV EDX,1
00655FD2  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  堆栈 SS:[0012EBB0]=00656044 (jxc.00656044), ASCII "JXCw268d58k"
00655FD5  |.  E8 9EEFDAFF   CALL jxc.00404F78                        ;  EAX 00656044 ASCII "JXCw268d58k"
00655FDA  |.  FF75 DC       PUSH DWORD PTR SS:[EBP-24]               ;  堆栈 SS:[0012EB9C]=0156505C, (ASCII "JXCw")
00655FDD  |.  68 58606500   PUSH jxc.00656058                        ;  -
00655FE2  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]                ;  堆栈 SS:[0012EBB8]=0156D880, (ASCII "E696")
00655FE5  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
00655FE8  |.  50            PUSH EAX
00655FE9  |.  B9 05000000   MOV ECX,5
00655FEE  |.  BA 05000000   MOV EDX,5
00655FF3  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  堆栈 SS:[0012EBB0]=00656044 (jxc.00656044), ASCII "JXCw268d58k"
00655FF6  |.  E8 7DEFDAFF   CALL jxc.00404F78                        ;  EAX 00656044 ASCII "JXCw268d58k"
00655FFB  |.  FF75 D8       PUSH DWORD PTR SS:[EBP-28]               ;  堆栈 SS:[0012EB98]=0156C7AC, (ASCII "268d5")
00655FFE  |.  68 58606500   PUSH jxc.00656058                        ;  -
00656003  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]                ;  堆栈 SS:[0012EBB4]=0156DC80, (ASCII "8565")
00656006  |.  8BC7          MOV EAX,EDI
00656008  |.  BA 06000000   MOV EDX,6
0065600D  |.  E8 C6EDDAFF   CALL jxc.00404DD8
00656012  |.  33C0          XOR EAX,EAX
00656014  |.  5A            POP EDX
00656015  |.  59            POP ECX
00656016  |.  59            POP ECX
00656017  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
0065601A  |.  68 34606500   PUSH jxc.00656034
0065601F  |>  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
00656022  |.  BA 0A000000   MOV EDX,0A
00656027  |.  E8 50EADAFF   CALL jxc.00404A7C
0065602C  \.  C3            RETN                                     ;  EDX 014D1C60 ASCII "VXin"
0065602D   .^ E9 C6E2DAFF   JMP jxc.004042F8
00656032   .^ EB EB         JMP SHORT jxc.0065601F
00656034   .  5F            POP EDI
00656035   .  5E            POP ESI
00656036   .  5B            POP EBX
00656037   .  8BE5          MOV ESP,EBP
00656039   .  5D            POP EBP
0065603A   .  C3            RETN

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【算法小结】

用户名:VXin  注册码:JXCw-E696268d5-8565

V=56
X=58
i=69
n=6E

注册码的格式:JXCw 268d5   //固定格式

1、循环取用户名的ASCII码(16进制)   为code1     则等于:5658696E

2、将ASCII码从尾到头重新排列       为code2        则等于:E6968565

3、取ASCII码前4位                为code3                     则等于:E696

4、取ASCII码第位5到第8位                  为code4      则等于:8565

最后:JXCw- 加 code3 加268d5    加 -     加  code4  就是注册码了

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第一写算法分析,感谢你看到这里!

【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
支持,支持!

第一次写算法分析,不错
2006-7-2 13:50
0
雪    币: 372
活跃值: (31)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
3
阿紫兄弟提醒了一下,乍一看,赫然发现竟发错版块了,晕。。。。

  版主帮忙移到『软件调试论坛』吧~~
2006-7-2 13:57
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
学习
2006-7-2 19:38
0
雪    币: 175
活跃值: (2331)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个软件的破解分析网上太多了。
2006-7-3 08:59
0
雪    币: 200
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好详细的分析!向高人学习!
2006-7-3 09:59
0
雪    币: 253
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
最初由 dllish 发布
好详细的分析!向高人学习!


2006-7-3 15:02
0
游客
登录 | 注册 方可回帖
返回
//