shenaset 发表于 2009-3-13 16:06

里诺仓库管理软件(单机版)3.70 算法分析

本帖最后由 shenaset 于 2009-3-13 16:10 编辑

【文章标题】: 里诺仓库管理软件(单机版)3.70算法分析
【文章作者】: .........
【作者邮箱】: .........
【作者主页】: .........
【作者QQ号】: .........
【软件名称】: 里诺仓库管理软件(单机版)3.70
【下载地址】: http://www.lenosoft.net/download/depot370.zip
【作者声明】: 无聊呀无聊,好无聊
--------------------------------------------------------------------------------
【详细过程】

006E3225   .51            PUSH ECX
006E3226   .51            PUSH ECX
006E3227   .51            PUSH ECX
006E3228   .51            PUSH ECX
006E3229   .51            PUSH ECX
006E322A   .53            PUSH EBX
006E322B   .56            PUSH ESI
006E322C   .57            PUSH EDI
006E322D   .8945 FC       MOV DWORD PTR SS:,EAX
006E3230   .33C0          XOR EAX,EAX
006E3232   .55            PUSH EBP
006E3233   .68 71336E00   PUSH Depot.006E3371
006E3238   .64:FF30       PUSH DWORD PTR FS:
006E323B   .64:8920       MOV DWORD PTR FS:,ESP
006E323E   .8B45 FC       MOV EAX,DWORD PTR SS:
006E3241   .E8 AE020000   CALL Depot.006E34F4                      ;#1算法(进去)
006E3246   .84C0          TEST AL,AL
006E3248   .0F84 DB000000 JE Depot.006E3329                        ;关键跳
006E324E   .33C0          XOR EAX,EAX
006E3250   .55            PUSH EBP
006E3251   .68 0D336E00   PUSH Depot.006E330D
006E3256   .64:FF30       PUSH DWORD PTR FS:

#1
006E34F4/$55            PUSH EBP
006E34F5|.8BEC          MOV EBP,ESP
006E34F7|.B9 04000000   MOV ECX,4
006E34FC|>6A 00         /PUSH 0
006E34FE|.6A 00         |PUSH 0
006E3500|.49            |DEC ECX
006E3501|.^ 75 F9         \JNZ SHORT Depot.006E34FC
006E3503|.51            PUSH ECX
006E3504|.53            PUSH EBX
006E3505|.56            PUSH ESI
006E3506|.8BF0          MOV ESI,EAX
006E3508|.33C0          XOR EAX,EAX
006E350A|.55            PUSH EBP
006E350B|.68 09366E00   PUSH Depot.006E3609
006E3510|.64:FF30       PUSH DWORD PTR FS:
006E3513|.64:8920       MOV DWORD PTR FS:,ESP
006E3516|.8D55 F8       LEA EDX,DWORD PTR SS:
006E3519|.8B86 08030000 MOV EAX,DWORD PTR DS:
006E351F|.E8 CC83DAFF   CALL Depot.0048B8F0
006E3524|.8B45 F8       MOV EAX,DWORD PTR SS:
006E3527|.8D55 FC       LEA EDX,DWORD PTR SS:
006E352A|.E8 FD65D2FF   CALL Depot.00409B2C
006E352F|.8B45 FC       MOV EAX,DWORD PTR SS:
006E3532|.50            PUSH EAX                                 ;注册码(假码)入栈
006E3533|.8D55 EC       LEA EDX,DWORD PTR SS:
006E3536|.8B86 04030000 MOV EAX,DWORD PTR DS:
006E353C|.E8 AF83DAFF   CALL Depot.0048B8F0
006E3541|.8B45 EC       MOV EAX,DWORD PTR SS:
006E3544|.8D55 F0       LEA EDX,DWORD PTR SS:
006E3547|.E8 E065D2FF   CALL Depot.00409B2C
006E354C|.8B55 F0       MOV EDX,DWORD PTR SS:
006E354F|.8D4D F4       LEA ECX,DWORD PTR SS:
006E3552|.8BC6          MOV EAX,ESI
006E3554|.E8 FF000000   CALL Depot.006E3658                      ;#1-1算法(进去)
006E3559|.8B55 F4       MOV EDX,DWORD PTR SS:             ;注册码(真码)放到EDX里
006E355C|.58            POP EAX                                  ;注册码(假码)出栈
006E355D|.E8 7619D2FF   CALL Depot.00404ED8                      ;这个CALL就很好理解了,比较
006E3562|.75 50         JNZ SHORT Depot.006E35B4               ;关键跳
006E3564|.B3 01         MOV BL,1

#1-1
006E3658/$55            PUSH EBP
006E3659|.8BEC          MOV EBP,ESP
006E365B|.51            PUSH ECX
006E365C|.B9 04000000   MOV ECX,4
006E3661|>6A 00         /PUSH 0
006E3663|.6A 00         |PUSH 0
006E3665|.49            |DEC ECX
006E3666|.^ 75 F9         \JNZ SHORT Depot.006E3661
006E3668|.51            PUSH ECX
006E3669|.874D FC       XCHG DWORD PTR SS:,ECX
006E366C|.53            PUSH EBX
006E366D|.56            PUSH ESI
006E366E|.57            PUSH EDI
006E366F|.8BF9          MOV EDI,ECX
006E3671|.8955 FC       MOV DWORD PTR SS:,EDX
006E3674|.8B45 FC       MOV EAX,DWORD PTR SS:             ;机器码送给EAX
006E3677|.E8 0019D2FF   CALL Depot.00404F7C
006E367C|.33C0          XOR EAX,EAX
006E367E|.55            PUSH EBP
006E367F|.68 19386E00   PUSH Depot.006E3819
006E3684|.64:FF30       PUSH DWORD PTR FS:
006E3687|.64:8920       MOV DWORD PTR FS:,ESP
006E368A|.8BC7          MOV EAX,EDI
006E368C|.E8 2B14D2FF   CALL Depot.00404ABC
006E3691|.8B45 FC       MOV EAX,DWORD PTR SS:
006E3694|.E8 F316D2FF   CALL Depot.00404D8C                      ;取机器码位数
006E3699|.8BF0          MOV ESI,EAX                              ;机器码位数放到ESI里
006E369B|.85F6          TEST ESI,ESI
006E369D|.7E 26         JLE SHORT Depot.006E36C5
006E369F|.BB 01000000   MOV EBX,1                              ;1放到EBX里
006E36A4|>8D4D EC       /LEA ECX,DWORD PTR SS:
006E36A7|.8B45 FC       |MOV EAX,DWORD PTR SS:            ;机器码放到EAX里
006E36AA|.0FB64418 FF   |MOVZX EAX,BYTE PTR DS:       ;机器码各位ASCII码放到EAX里
006E36AF|.33D2          |XOR EDX,EDX                           ;EDX清零
006E36B1|.E8 AA6AD2FF   |CALL Depot.0040A160
006E36B6|.8B55 EC       |MOV EDX,DWORD PTR SS:         ;机器码各位ASCII码放到EDX里
006E36B9|.8D45 F8       |LEA EAX,DWORD PTR SS:         
006E36BC|.E8 D316D2FF   |CALL Depot.00404D94
006E36C1|.43            |INC EBX
006E36C2|.4E            |DEC ESI
006E36C3|.^ 75 DF         \JNZ SHORT Depot.006E36A4                ;a1=机器码转成ASCII码
006E36C5|>8B45 F8       MOV EAX,DWORD PTR SS:             ;a1放到EAX
006E36C8|.E8 BF16D2FF   CALL Depot.00404D8C                      ;取a1位数
006E36CD|.8BF0          MOV ESI,EAX                              ;a1位数放到ESI里
006E36CF|.85F6          TEST ESI,ESI
006E36D1|.7E 2C         JLE SHORT Depot.006E36FF
006E36D3|.BB 01000000   MOV EBX,1                              ;1放到EBX里
006E36D8|>8B45 F8       /MOV EAX,DWORD PTR SS:            ;a1放到EAX里
006E36DB|.E8 AC16D2FF   |CALL Depot.00404D8C                     ;取a1位数
006E36E0|.2BC3          |SUB EAX,EBX                           ;a1位数-1
006E36E2|.8B55 F8       |MOV EDX,DWORD PTR SS:            ;a1放到EDX里
006E36E5|.8A1402      |MOV DL,BYTE PTR DS:            ;a1倒序放到DL里
006E36E8|.8D45 E8       |LEA EAX,DWORD PTR SS:
006E36EB|.E8 B415D2FF   |CALL Depot.00404CA4
006E36F0|.8B55 E8       |MOV EDX,DWORD PTR SS:         ;机器码放到EDX里
006E36F3|.8D45 F4       |LEA EAX,DWORD PTR SS:
006E36F6|.E8 9916D2FF   |CALL Depot.00404D94
006E36FB|.43            |INC EBX
006E36FC|.4E            |DEC ESI
006E36FD|.^ 75 D9         \JNZ SHORT Depot.006E36D8                ;a2=a1倒序
006E36FF|>8D45 F8       LEA EAX,DWORD PTR SS:
006E3702|.50            PUSH EAX
006E3703|.B9 04000000   MOV ECX,4
006E3708|.BA 01000000   MOV EDX,1
006E370D|.8B45 F4       MOV EAX,DWORD PTR SS:             ;a2放到EAX里
006E3710|.E8 D718D2FF   CALL Depot.00404FEC
006E3715|.8D45 F4       LEA EAX,DWORD PTR SS:
006E3718|.50            PUSH EAX
006E3719|.B9 04000000   MOV ECX,4                              ;4放到ECX里
006E371E|.BA 05000000   MOV EDX,5                              ;5放到EDX里
006E3723|.8B45 F4       MOV EAX,DWORD PTR SS:             ;a2放到EAX里
006E3726|.E8 C118D2FF   CALL Depot.00404FEC                      ;可以进去看看,从a2的第5位开始取4位,结果设为n2
006E372B|.8B45 F8       MOV EAX,DWORD PTR SS:             ;n1=取a2前4位放到EAX里
006E372E|.E8 5916D2FF   CALL Depot.00404D8C                      ;取n1长度
006E3733|.83F8 04       CMP EAX,4                              ;与4比较
006E3736|.7D 2F         JGE SHORT Depot.006E3767               ;大于等于则跳
006E3738|.8B45 F8       MOV EAX,DWORD PTR SS:
006E373B|.E8 4C16D2FF   CALL Depot.00404D8C
006E3740|.8BD8          MOV EBX,EAX
006E3742|.83FB 03       CMP EBX,3
006E3745|.7F 20         JG SHORT Depot.006E3767
006E3747|>8D4D E4       /LEA ECX,DWORD PTR SS:
006E374A|.8BC3          |MOV EAX,EBX
006E374C|.C1E0 02       |SHL EAX,2
006E374F|.33D2          |XOR EDX,EDX
006E3751|.E8 0A6AD2FF   |CALL Depot.0040A160
006E3756|.8B55 E4       |MOV EDX,DWORD PTR SS:
006E3759|.8D45 F8       |LEA EAX,DWORD PTR SS:
006E375C|.E8 3316D2FF   |CALL Depot.00404D94
006E3761|.43            |INC EBX
006E3762|.83FB 04       |CMP EBX,4
006E3765|.^ 75 E0         \JNZ SHORT Depot.006E3747
006E3767|>8B45 F4       MOV EAX,DWORD PTR SS:             ;n2放到EAX里
006E376A|.E8 1D16D2FF   CALL Depot.00404D8C                      ;取n2长度
006E376F|.83F8 04       CMP EAX,4                              ;与4比较
006E3772|.7D 2F         JGE SHORT Depot.006E37A3               ;大于等于则跳
006E3774|.8B45 F4       MOV EAX,DWORD PTR SS:
006E3777|.E8 1016D2FF   CALL Depot.00404D8C
006E377C|.8BD8          MOV EBX,EAX
006E377E|.83FB 03       CMP EBX,3
006E3781|.7F 20         JG SHORT Depot.006E37A3
006E3783|>8D4D E0       /LEA ECX,DWORD PTR SS:
006E3786|.8BC3          |MOV EAX,EBX
006E3788|.C1E0 02       |SHL EAX,2
006E378B|.33D2          |XOR EDX,EDX
006E378D|.E8 CE69D2FF   |CALL Depot.0040A160
006E3792|.8B55 E0       |MOV EDX,DWORD PTR SS:
006E3795|.8D45 F4       |LEA EAX,DWORD PTR SS:
006E3798|.E8 F715D2FF   |CALL Depot.00404D94
006E379D|.43            |INC EBX
006E379E|.83FB 04       |CMP EBX,4
006E37A1|.^ 75 E0         \JNZ SHORT Depot.006E3783
006E37A3|>8D45 F0       LEA EAX,DWORD PTR SS:
006E37A6|.BA 30386E00   MOV EDX,Depot.006E3830                   ;DEPw245d54k放到EDX里
006E37AB|.E8 A413D2FF   CALL Depot.00404B54
006E37B0|.8D45 DC       LEA EAX,DWORD PTR SS:
006E37B3|.50            PUSH EAX
006E37B4|.B9 04000000   MOV ECX,4                              ;4放到ECX里
006E37B9|.BA 01000000   MOV EDX,1                              ;1放到EDX里
006E37BE|.8B45 F0       MOV EAX,DWORD PTR SS:            ;a3=DEPw245d54k
006E37C1|.E8 2618D2FF   CALL Depot.00404FEC                      ;可以进去看看,从a3的第1位开始取4位数,结果设为n3
006E37C6|.FF75 DC       PUSH DWORD PTR SS:               ;n3=a3前4位
006E37C9|.68 44386E00   PUSH Depot.006E3844                      ;-
006E37CE|.FF75 F8       PUSH DWORD PTR SS:                ;n1
006E37D1|.8D45 D8       LEA EAX,DWORD PTR SS:
006E37D4|.50            PUSH EAX
006E37D5|.B9 05000000   MOV ECX,5                              ;5放到ECX里
006E37DA|.BA 05000000   MOV EDX,5                              ;5放到EDX里
006E37DF|.8B45 F0       MOV EAX,DWORD PTR SS:            ;DEPw245d54k放到EAX里
006E37E2|.E8 0518D2FF   CALL Depot.00404FEC                      ;可以进去看看,从a3的第5位开始取5位数,结果设为n4
006E37E7|.FF75 D8       PUSH DWORD PTR SS:
006E37EA|.68 44386E00   PUSH Depot.006E3844                      ;-
006E37EF|.FF75 F4       PUSH DWORD PTR SS:
006E37F2|.8BC7          MOV EAX,EDI
006E37F4|.BA 06000000   MOV EDX,6
006E37F9|.E8 4E16D2FF   CALL Depot.00404E4C                      ;#1-1-1合并(进去)
006E37FE|.33C0          XOR EAX,EAX
006E3800|.5A            POP EDX
006E3801|.59            POP ECX
006E3802|.59            POP ECX
006E3803|.64:8910       MOV DWORD PTR FS:,EDX
006E3806|.68 20386E00   PUSH Depot.006E3820
006E380B|>8D45 D8       LEA EAX,DWORD PTR SS:
006E380E|.BA 0A000000   MOV EDX,0A
006E3813|.E8 C812D2FF   CALL Depot.00404AE0
006E3818\.C3            RETN
006E3819   .^ E9 1E0BD2FF   JMP Depot.0040433C
006E381E   .^ EB EB         JMP SHORT Depot.006E380B
006E3820   .5F            POP EDI
006E3821   .5E            POP ESI
006E3822   .5B            POP EBX
006E3823   .8BE5          MOV ESP,EBP
006E3825   .5D            POP EBP
006E3826   .C3            RETN

#1-1-1
00404E4C   $53            PUSH EBX
00404E4D   .56            PUSH ESI
00404E4E   .57            PUSH EDI
00404E4F   .52            PUSH EDX
00404E50   .50            PUSH EAX
00404E51   .89D3          MOV EBX,EDX
00404E53   .31FF          XOR EDI,EDI
00404E55   .8B4C94 14   MOV ECX,DWORD PTR SS:      ;n3放到ECX里
00404E59   .85C9          TEST ECX,ECX
00404E5B   .74 0C         JE SHORT Depot.00404E69
00404E5D   .3908          CMP DWORD PTR DS:,ECX
00404E5F   .75 08         JNZ SHORT Depot.00404E69
00404E61   .89CF          MOV EDI,ECX
00404E63   .8B41 FC       MOV EAX,DWORD PTR DS:
00404E66   .4A            DEC EDX
00404E67   .EB 02         JMP SHORT Depot.00404E6B
00404E69   >31C0          XOR EAX,EAX                              ;EAX清零
00404E6B   >8B4C94 14   MOV ECX,DWORD PTR SS:      ;n3,n1,n4,n2
00404E6F   .85C9          TEST ECX,ECX
00404E71   .74 09         JE SHORT Depot.00404E7C
00404E73   .0341 FC       ADD EAX,DWORD PTR DS:             ;EAX+n3,n1,n4,n2的位数
00404E76   .39CF          CMP EDI,ECX
00404E78   .75 02         JNZ SHORT Depot.00404E7C
00404E7A   .31FF          XOR EDI,EDI
00404E7C   >4A            DEC EDX
00404E7D   .^ 75 EC         JNZ SHORT Depot.00404E6B               ;这个循环说明取n3,n1,n4,n2的位数放到EAX里,设位数为b2
00404E7F   .85FF          TEST EDI,EDI
00404E81   .74 17         JE SHORT Depot.00404E9A
00404E83   .89C2          MOV EDX,EAX
00404E85   .8B0424      MOV EAX,DWORD PTR SS:
00404E88   .8B77 FC       MOV ESI,DWORD PTR DS:
00404E8B   .E8 88020000   CALL Depot.00405118
00404E90   .8B3C24      MOV EDI,DWORD PTR SS:
00404E93   .FF37          PUSH DWORD PTR DS:
00404E95   .0337          ADD ESI,DWORD PTR DS:
00404E97   .4B            DEC EBX
00404E98   .EB 08         JMP SHORT Depot.00404EA2
00404E9A   >E8 E1FCFFFF   CALL Depot.00404B80                      ;这里就不进去了,这里说下就行了(b2+0A) AND FFFFFFFE,设结果为b3
00404E9F   .50            PUSH EAX                                 ;上面CALL就是取a1(b3位)
00404EA0   .89C6          MOV ESI,EAX
00404EA2   >8B449C 18   MOV EAX,DWORD PTR SS:      ;n3,n1,n4,n2放到EAX里
00404EA6   .89F2          MOV EDX,ESI                              ;b3放到EDX里
00404EA8   .85C0          TEST EAX,EAX
00404EAA   .74 0A         JE SHORT Depot.00404EB6
00404EAC   .8B48 FC       MOV ECX,DWORD PTR DS:             ;n3,n1,n4,n2位数放到ECX里
00404EAF   .01CE          ADD ESI,ECX
00404EB1   .E8 EADCFFFF   CALL Depot.00402BA0                      ;这个CALL就替换文本
00404EB6   >4B            DEC EBX
00404EB7   .^ 75 E9         JNZ SHORT Depot.00404EA2               ;循环,就是合并
00404EB9   .5A            POP EDX
00404EBA   .58            POP EAX
00404EBB   .85FF          TEST EDI,EDI
00404EBD   .75 0C         JNZ SHORT Depot.00404ECB
00404EBF   .85D2          TEST EDX,EDX
00404EC1   .74 03         JE SHORT Depot.00404EC6
00404EC3   .FF4A F8       DEC DWORD PTR DS:
00404EC6   >E8 45FCFFFF   CALL Depot.00404B10
00404ECB   >5A            POP EDX
00404ECC   .5F            POP EDI
00404ECD   .5E            POP ESI
00404ECE   .5B            POP EBX
00404ECF   .58            POP EAX
00404ED0   .8D2494      LEA ESP,DWORD PTR SS:
00404ED3   .FFE0          JMP EAX

--------------------------------------------------------------------------------
【经验总结】

算法:
文本:DEPw245d54k
a1=机器码ASCII码倒序
n1=a1前4位
n2=a1第5位开始到4位
n3=文本前4位
n4=文本第5位开始取5位
合并:n3-n1n4-n2

注册机:
--------------------------------------------------------------------------------
【版权声明】: 怎么会有版权,没版权,但禁止用偶的用户名

                                                      2009-3-13


--------------------------------------------------------------------------------

什么也不是 发表于 2009-3-13 16:30

:$
不错不错
赞一个...

热火朝天 发表于 2009-3-13 16:48

呵呵,在暗黑看过 了

shenaset 发表于 2009-3-13 17:38

呵呵,在暗黑看过 了
热火朝天 发表于 2009-3-13 16:48 http://bbs.52pojie.cn/images/common/back.gif


晕,暗黑有呀... 看来慢了,管他,分析就分析了,打发时间,只要不说我抄就行了,嘿嘿

hncdlijian 发表于 2009-3-13 18:33

1# shenaset


不错。好东西

hackwm 发表于 2009-3-13 18:54

- -!
发现楼主老喜欢我分析过的东西再分析

wangyoushen 发表于 2009-3-13 19:39

暗黑指的是什么

wangyoushen 发表于 2009-3-13 19:42

不好使啊   添加一条记录显示为试用版。。

迷乱 发表于 2009-3-14 13:44

太强大了. 我都看不懂

streamload 发表于 2009-3-14 13:50

支持算法分析。。。正在学算法分析
页: [1] 2 3
查看完整版本: 里诺仓库管理软件(单机版)3.70 算法分析