| 
注册时间2005-3-23
阅读权限20
最后登录1970-1-1UID373 以武会友  
 
 TA的每日心情|  | 开心 2019-11-22 21:56
 | 
|---|
 签到天数: 5 天 [LV.2]偶尔看看I | 
 
| 【破文标题】里诺销售管理软件 2.10简单算法分析 【破文作者】CHA23[CZG][PYG]
 【作者邮箱】[email protected]
 【作者主页】http://cha23a.yeah.net
 【破解工具】PEID,W32Dasm,OD
 【破解平台】winxp
 【软件名称】里诺销售管理软件 2.10
 【软件大小】3702KB
 
 【原版下载】http://www.onlinedown.net/soft/22518.htm
 【保护方式】无壳
 【软件简介】   里诺销售管理软件参考了各类销售管理软件,溶入了各自的优点并采纳众多用户的宝贵意见,真正地从用户的需要出发,为客户需要而设计。本软件适合各类企事业单位和门店单位销售管理地需要,爱作极为简便。高效实用。软件功能强大,性能稳定。功能如下:
 1、销售发货;2、销售退货;3、销售收款; 4、各种单据的查找、查询、统计汇总;5、销售额、销售数量表分析;6、各种单据都有打印功能;7、货品档案、客户档案管理;8、货品单位、类别资料管理。
 ------------------------------------------------------------------------
 PEID查壳,无,Borland Delphi 6.0 - 7.0编写,爽啊!
 试着运行了一下,有提示注册的窗口弹出,输入注册信息后点击注册,弹出“已保存了注册信息!下次启动本程序
 时将会对你的注册码进行验证,如注册码正确,本程序所有功能限制将被解除,您成为我们正式版本用户!”的提示
 ,看来是会重启验证的。查看了一下安装文件夹。发现有一个Config.ini文件,就从它下手。
 OD载入,查字符串“Config.ini”来到下面的代码处
 
 0062168B   . 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
 0062168E   . B9 781D6200    MOV ECX,Sale,2.00621D78                  ;  ASCII "Config.ini"《=F2试着下断
 00621693   . E8 9836DEFF    CALL Sale,2.00404D30
 00621698   . 8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
 
 F8单步来到这里
 0062181A   . BA 9C1E6200    MOV EDX,Sale,2.00621E9C                 ;  ASCII "Software\zy\Sale"
 0062181F   . E8 9832DEFF    CALL Sale,2.00404ABC                    ;  《=从注册表里取上次注册时填入的注册名和注册码(假码)
 00621824   . B1 01          MOV CL,1
 00621826   . 8B55 F0        MOV EDX,DWORD PTR SS:[EBP-10]
 00621829   . 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 0062182C   . E8 7774E2FF    CALL Sale,2.00448CA8
 00621831   . 84C0           TEST AL,AL
 00621833   . 0F84 8C000000  JE Sale,2.006218C5
 00621839   . 8D4D C4        LEA ECX,DWORD PTR SS:[EBP-3C]
 0062183C   . BA B81E6200    MOV EDX,Sale,2.00621EB8                  ;  ASCII "Name"《=取注册名
 00621841   . 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 00621844   . E8 2776E2FF    CALL Sale,2.00448E70
 00621849   . 8B55 C4        MOV EDX,DWORD PTR SS:[EBP-3C]
 0062184C   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 00621851   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 00621853   . 05 70050000    ADD EAX,570
 00621858   . E8 1B32DEFF    CALL Sale,2.00404A78
 0062185D   . 8D4D C0        LEA ECX,DWORD PTR SS:[EBP-40]
 00621860   . BA C81E6200    MOV EDX,Sale,2.00621EC8                  ;  ASCII "Pass"《=取注册码(假码)
 00621865   . 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 00621868   . E8 0376E2FF    CALL Sale,2.00448E70
 0062186D   . 8B55 C0        MOV EDX,DWORD PTR SS:[EBP-40]
 00621870   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 00621875   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 00621877   . 05 74050000    ADD EAX,574
 0062187C   . E8 F731DEFF    CALL Sale,2.00404A78
 00621881   . 33C0           XOR EAX,EAX
 00621883   . 55             PUSH EBP
 00621884   . 68 A8186200    PUSH Sale,2.006218A8
 00621889   . 64:FF30        PUSH DWORD PTR FS:[EAX]
 0062188C   . 64:8920        MOV DWORD PTR FS:[EAX],ESP
 0062188F   . BA D81E6200    MOV EDX,Sale,2.00621ED8                  ;  ASCII "Date"
 00621894   . 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 00621897   . E8 EC76E2FF    CALL Sale,2.00448F88
 0062189C   . DDD8           FSTP ST
 0062189E   . 33C0           XOR EAX,EAX
 006218A0   . 5A             POP EDX
 006218A1   . 59             POP ECX
 006218A2   . 59             POP ECX
 006218A3   . 64:8910        MOV DWORD PTR FS:[EAX],EDX
 006218A6   . EB 1D          JMP SHORT Sale,2.006218C5
 006218A8   .^E9 6327DEFF    JMP Sale,2.00404010
 006218AD   . FF75 E4        PUSH DWORD PTR SS:[EBP-1C]               ; /Arg2
 006218B0   . FF75 E0        PUSH DWORD PTR SS:[EBP-20]               ; |Arg1
 006218B3   . BA D81E6200    MOV EDX,Sale,2.00621ED8                  ; |ASCII "Date"
 006218B8   . 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]             ; |
 006218BB   . E8 B476E2FF    CALL Sale,2.00448F74                     ; \Sale,2.00448F74
 006218C0   . E8 772BDEFF    CALL Sale,2.0040443C
 006218C5   > 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 006218C8   . E8 6772E2FF    CALL Sale,2.00448B34
 006218CD   . 33C0           XOR EAX,EAX
 006218CF   . 5A             POP EDX
 006218D0   . 59             POP ECX
 006218D1   . 59             POP ECX
 006218D2   . 64:8910        MOV DWORD PTR FS:[EAX],EDX
 006218D5   . 68 EA186200    PUSH Sale,2.006218EA
 006218DA   > 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 006218DD   . E8 4E22DEFF    CALL Sale,2.00403B30
 006218E2   . C3             RETN
 006218E3   .^E9 DC29DEFF    JMP Sale,2.004042C4
 006218E8   .^EB F0          JMP SHORT Sale,2.006218DA
 006218EA   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 006218EF   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 006218F1   . C780 CC050000 >MOV DWORD PTR DS:[EAX+5CC],1
 006218FB   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
 006218FE   . 8B90 50030000  MOV EDX,DWORD PTR DS:[EAX+350]
 00621904   . B9 E81E6200    MOV ECX,Sale,2.00621EE8                  ;  ASCII "select count(*) as T_Num from T_Bill"
 00621909   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
 0062190C   . E8 67FCFFFF    CALL Sale,2.00621578
 00621911   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
 00621914   . 8B80 50030000  MOV EAX,DWORD PTR DS:[EAX+350]
 0062191A   . BA 181F6200    MOV EDX,Sale,2.00621F18                  ;  ASCII "T_Num"
 0062191F   . E8 B41DEAFF    CALL Sale,2.004C36D8
 00621924   . 8B10           MOV EDX,DWORD PTR DS:[EAX]
 00621926   . FF52 58        CALL DWORD PTR DS:[EDX+58]
 00621929   . 8BD8           MOV EBX,EAX
 0062192B   . 8D4D BC        LEA ECX,DWORD PTR SS:[EBP-44]
 0062192E   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 00621933   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 00621935   . 8B90 70050000  MOV EDX,DWORD PTR DS:[EAX+570]
 0062193B   . A1 ACF36500    MOV EAX,DWORD PTR DS:[65F3AC]
 00621940   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 00621942   . E8 9DECFFFF    CALL Sale,2.006205E4                 《=单步到这时跳回到006205E4处继续
 00621947   . 8B55 BC        MOV EDX,DWORD PTR SS:[EBP-44]            ;  从006207B2回来后真码出现并赋予DEX
 0062194A   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 0062194F   . 8B00           MOV EAX,DWORD PTR DS:[EAX]
 00621951   . 8B80 74050000  MOV EAX,DWORD PTR DS:[EAX+574]           ;  假码入EAX
 00621957   . E8 D434DEFF    CALL Sale,2.00404E30                     ;  真假码比较
 0062195C   . 0F85 8A000000  JNZ Sale,2.006219EC                      ;  不相等就跳到未注册的提示窗口
 00621962   . A1 F4F66500    MOV EAX,DWORD PTR DS:[65F6F4]
 
 #########################################################################################
 006205E4  /$ 55             PUSH EBP
 006205E5  |. 8BEC           MOV EBP,ESP
 006205E7  |. 51             PUSH ECX
 006205E8  |. B9 04000000    MOV ECX,4
 006205ED  |> 6A 00          /PUSH 0
 006205EF  |. 6A 00          |PUSH 0
 006205F1  |. 49             |DEC ECX
 006205F2  |.^75 F9          \JNZ SHORT Sale,2.006205ED
 006205F4  |. 51             PUSH ECX
 006205F5  |. 874D FC        XCHG DWORD PTR SS:[EBP-4],ECX
 006205F8  |. 53             PUSH EBX
 006205F9  |. 56             PUSH ESI
 006205FA  |. 57             PUSH EDI
 006205FB  |. 8BF9           MOV EDI,ECX
 006205FD  |. 8955 FC        MOV DWORD PTR SS:[EBP-4],EDX
 00620600  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
 00620603  |. E8 CC48DEFF    CALL Sale,2.00404ED4
 00620608  |. 33C0           XOR EAX,EAX
 0062060A  |. 55             PUSH EBP
 0062060B  |. 68 A5076200    PUSH Sale,2.006207A5
 00620610  |. 64:FF30        PUSH DWORD PTR FS:[EAX]
 00620613  |. 64:8920        MOV DWORD PTR FS:[EAX],ESP
 00620616  |. 8BC7           MOV EAX,EDI
 00620618  |. E8 0744DEFF    CALL Sale,2.00404A24
 0062061D  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
 00620620  |. E8 BF46DEFF    CALL Sale,2.00404CE4
 00620625  |. 8BF0           MOV ESI,EAX
 00620627  |. 85F6           TEST ESI,ESI
 00620629  |. 7E 26          JLE SHORT Sale,2.00620651
 0062062B  |. BB 01000000    MOV EBX,1
 00620630  |> 8D4D EC        /LEA ECX,DWORD PTR SS:[EBP-14]
 00620633  |. 8B45 FC        |MOV EAX,DWORD PTR SS:[EBP-4]
 00620636  |. 0FB64418 FF    |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]   ;  逐位取注册名的16进制数
 0062063B  |. 33D2           |XOR EDX,EDX
 0062063D  |. E8 D69ADEFF    |CALL Sale,2.0040A118
 00620642  |. 8B55 EC        |MOV EDX,DWORD PTR SS:[EBP-14]
 00620645  |. 8D45 F8        |LEA EAX,DWORD PTR SS:[EBP-8]
 00620648  |. E8 9F46DEFF    |CALL Sale,2.00404CEC
 0062064D  |. 43             |INC EBX
 0062064E  |. 4E             |DEC ESI
 0062064F  |.^75 DF          \JNZ SHORT Sale,2.00620630        ;  循环到取完注册名 我注册名的16进制为"43484132335B435A475D5B5059475D"
 00620651  |> 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
 00620654  |. E8 8B46DEFF    CALL Sale,2.00404CE4
 00620659  |. 8BF0           MOV ESI,EAX
 0062065B  |. 85F6           TEST ESI,ESI
 0062065D  |. 7E 2C          JLE SHORT Sale,2.0062068B
 0062065F  |. BB 01000000    MOV EBX,1
 00620664  |> 8B45 F8        /MOV EAX,DWORD PTR SS:[EBP-8]
 00620667  |. E8 7846DEFF    |CALL Sale,2.00404CE4
 0062066C  |. 2BC3           |SUB EAX,EBX
 0062066E  |. 8B55 F8        |MOV EDX,DWORD PTR SS:[EBP-8]
 00620671  |. 8A1402         |MOV DL,BYTE PTR DS:[EDX+EAX]
 00620674  |. 8D45 E8        |LEA EAX,DWORD PTR SS:[EBP-18]
 00620677  |. E8 9045DEFF    |CALL Sale,2.00404C0C
 0062067C  |. 8B55 E8        |MOV EDX,DWORD PTR SS:[EBP-18]
 0062067F  |. 8D45 F4        |LEA EAX,DWORD PTR SS:[EBP-C]
 00620682  |. E8 6546DEFF    |CALL Sale,2.00404CEC
 00620687  |. 43             |INC EBX
 00620688  |. 4E             |DEC ESI
 00620689  |.^75 D9          \JNZ SHORT Sale,2.00620664               ;  循环从最后一位取注册名的16进制数,直到取完,即"D5749505B5D574A534B53323148434"
 0062068B  |> 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
 0062068E  |. 50             PUSH EAX
 0062068F  |. B9 04000000    MOV ECX,4
 00620694  |. BA 01000000    MOV EDX,1
 00620699  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]             ;   "D5749505B5D574A534B53323148434"赋予EAX
 0062069C  |. E8 A348DEFF    CALL Sale,2.00404F44                     ;  这个CALL取了"D5749505B5D574A534B53323148434"的前4位
 006206A1  |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
 006206A4  |. 50             PUSH EAX
 006206A5  |. B9 04000000    MOV ECX,4
 006206AA  |. BA 05000000    MOV EDX,5
 006206AF  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 006206B2  |. E8 8D48DEFF    CALL Sale,2.00404F44                     ;  这个CALL又取了后面的4位即“9505”
 006206B7  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
 006206BA  |. E8 2546DEFF    CALL Sale,2.00404CE4
 006206BF  |. 83F8 04        CMP EAX,4
 006206C2  |. 7D 2F          JGE SHORT Sale,2.006206F3
 006206C4  |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
 006206C7  |. E8 1846DEFF    CALL Sale,2.00404CE4
 006206CC  |. 8BD8           MOV EBX,EAX
 006206CE  |. 83FB 03        CMP EBX,3
 006206D1  |. 7F 20          JG SHORT Sale,2.006206F3
 006206D3  |> 8D4D E4        /LEA ECX,DWORD PTR SS:[EBP-1C]
 006206D6  |. 8BC3           |MOV EAX,EBX
 006206D8  |. C1E0 02        |SHL EAX,2
 006206DB  |. 33D2           |XOR EDX,EDX
 006206DD  |. E8 369ADEFF    |CALL Sale,2.0040A118
 006206E2  |. 8B55 E4        |MOV EDX,DWORD PTR SS:[EBP-1C]
 006206E5  |. 8D45 F8        |LEA EAX,DWORD PTR SS:[EBP-8]
 006206E8  |. E8 FF45DEFF    |CALL Sale,2.00404CEC
 006206ED  |. 43             |INC EBX
 006206EE  |. 83FB 04        |CMP EBX,4
 006206F1  |.^75 E0          \JNZ SHORT Sale,2.006206D3
 006206F3  |> 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]             ;  第2次取的即“9550”赋予EAX
 006206F6  |. E8 E945DEFF    CALL Sale,2.00404CE4
 006206FB  |. 83F8 04        CMP EAX,4                                ;  和4比较,即查看是否为4位
 006206FE  |. 7D 2F          JGE SHORT Sale,2.0062072F                ;  大于或等于就跳
 00620700  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
 00620703  |. E8 DC45DEFF    CALL Sale,2.00404CE4
 00620708  |. 8BD8           MOV EBX,EAX
 0062070A  |. 83FB 03        CMP EBX,3
 0062070D  |. 7F 20          JG SHORT Sale,2.0062072F
 0062070F  |> 8D4D E0        /LEA ECX,DWORD PTR SS:[EBP-20]
 00620712  |. 8BC3           |MOV EAX,EBX
 00620714  |. C1E0 02        |SHL EAX,2
 00620717  |. 33D2           |XOR EDX,EDX
 00620719  |. E8 FA99DEFF    |CALL Sale,2.0040A118
 0062071E  |. 8B55 E0        |MOV EDX,DWORD PTR SS:[EBP-20]
 00620721  |. 8D45 F4        |LEA EAX,DWORD PTR SS:[EBP-C]
 00620724  |. E8 C345DEFF    |CALL Sale,2.00404CEC
 00620729  |. 43             |INC EBX
 0062072A  |. 83FB 04        |CMP EBX,4
 0062072D  |.^75 E0          \JNZ SHORT Sale,2.0062070F
 0062072F  |> 8D45 F0        LEA EAX,DWORD PTR SS:[EBP-10]
 00620732  |. BA BC076200    MOV EDX,Sale,2.006207BC                 ;字符串"Saler954dj5"入EDX
 00620737  |. E8 8043DEFF    CALL Sale,2.00404ABC
 0062073C  |. 8D45 DC        LEA EAX,DWORD PTR SS:[EBP-24]
 0062073F  |. 50             PUSH EAX
 00620740  |. B9 04000000    MOV ECX,4
 00620745  |. BA 01000000    MOV EDX,1
 0062074A  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
 0062074D  |. E8 F247DEFF    CALL Sale,2.00404F44                     ;  取了字符串"Saler954dj5"的前4位
 00620752  |. FF75 DC        PUSH DWORD PTR SS:[EBP-24]
 00620755  |. 68 D0076200    PUSH Sale,2.006207D0
 0062075A  |. FF75 F8        PUSH DWORD PTR SS:[EBP-8]
 0062075D  |. 8D45 D8        LEA EAX,DWORD PTR SS:[EBP-28]
 00620760  |. 50             PUSH EAX
 00620761  |. B9 05000000    MOV ECX,5
 00620766  |. BA 05000000    MOV EDX,5
 0062076B  |. 8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
 0062076E  |. E8 D147DEFF    CALL Sale,2.00404F44                     ;  又取了后面的5位的即“r954d”
 00620773  |. FF75 D8        PUSH DWORD PTR SS:[EBP-28]
 00620776  |. 68 D0076200    PUSH Sale,2.006207D0
 0062077B  |. FF75 F4        PUSH DWORD PTR SS:[EBP-C]
 0062077E  |. 8BC7           MOV EAX,EDI
 00620780  |. BA 06000000    MOV EDX,6
 00620785  |. E8 1A46DEFF    CALL Sale,2.00404DA4                     ;  在这个CALL中将前后取得的4段字符重新组合的到注册码
 0062078A  |. 33C0           XOR EAX,EAX
 0062078C  |. 5A             POP EDX
 0062078D  |. 59             POP ECX
 0062078E  |. 59             POP ECX
 0062078F  |. 64:8910        MOV DWORD PTR FS:[EAX],EDX
 00620792  |. 68 AC076200    PUSH Sale,2.006207AC
 00620797  |> 8D45 D8        LEA EAX,DWORD PTR SS:[EBP-28]
 0062079A  |. BA 0A000000    MOV EDX,0A
 0062079F  |. E8 A442DEFF    CALL Sale,2.00404A48
 006207A4  \. C3             RETN
 006207A5   .^E9 1A3BDEFF    JMP Sale,2.004042C4
 006207AA   .^EB EB          JMP SHORT Sale,2.00620797
 006207AC   . 5F             POP EDI
 006207AD   . 5E             POP ESI
 006207AE   . 5B             POP EBX
 006207AF   . 8BE5           MOV ESP,EBP
 006207B1   . 5D             POP EBP
 006207B2   . C3             RETN                                     《=单步到这里会跳到00621947继续比较
 ------------------------------------------------------------------------
 此软件的注册码是根据注册时填入的用户名加上特定的字符组合得出的,以我的为例。
 用户名为:CHA23[CZG][PYG]
 先将用户名换算成16进制即43484132335B435A475D5B5059475D再倒着排序即D5749505B5D574A534B53323148434
 将前八位分为两组即:第一组“D574”和第二组“9505”
 再将软件自己定义的字符串Saler954dj5取前9位分成两组即:第三组“Sale”和第四组“r954d”
 把四组字符按第三组“Sale”加“-”加第一组加第四组加“-”加第二组的顺序排列得出真码即:“Sale-D574r954d-9505”
 
 注册码和用户名保存在注册表的[HKEY_LOCAL_MACHINE\Software\zy\Sale]里,删除后为未注册
 
 内存注册机设置如下:
 中断地址:62194A
 中断次数:1
 第一字节:A1
 指令长度:5
 寄存器:  EDX
 ------------------------------------------------------------------------
 【版权声明】欢迎转载,请保持文章的完整行,注明出处
 
 CHA23[CZG][PYG]
 2006.9.2
 | 
 |