tianxj 发表于 2008-4-6 23:25:34

锦航物业收费管理软件 3.0算法分析

【破文标题】锦航物业收费管理软件 3.0
【破文作者】tianxj
【作者邮箱】[email protected]
【作者主页】www.chinapyg.com
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】锦航物业收费管理软件 3.0(2008-3-19版)
【软件大小】4204KB
【原版下载】华军软件园
【保护方式】注册码
【软件简介】
    锦航物业收费管理系统是一套物业公司对业主收取电费、水费、维修费、清洁卫生费、治安管理费等各种物业收费项目进行全面管理的系统。
  根据物业管理的要求,用户可以自行设定各种收费项目和计算公式,针对每个业主设定不同收费项目及收费标准,可以复制上月的收费项目及数据到本月进行修改。该系统操作简单,功能齐全,对各项收费项目进行分类统计与综合查询,能够打印出缴款单和各种报表,为物业收费管理提供了一个现代化的管理手段,保持了各种数据的完整性、及时性和正确性,使企业完善了管理体系提高了管理水平。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------
【破解内容】
--------------------------------------------------------------
**************************************************************
一、运行程序,进行注册,输入错误的注册信息进行检测,有提示信息
"序列号不正确,请重新输入!"
**************************************************************
二、用PEiD对锦航物业管理系统查壳,为 Borland Delphi 6.0 - 7.0
**************************************************************
三、运行OD,打开锦航物业管理系统,右键—超级字串参考—查找ASCII.
发现"序列号不正确,请重新输入!"

005A0C7C   .55            PUSH EBP
005A0C7D   .8BEC          MOV EBP,ESP
005A0C7F   .33C9          XOR ECX,ECX
005A0C81   .51            PUSH ECX
005A0C82   .51            PUSH ECX
005A0C83   .51            PUSH ECX
005A0C84   .51            PUSH ECX
005A0C85   .51            PUSH ECX
005A0C86   .51            PUSH ECX
005A0C87   .51            PUSH ECX
005A0C88   .53            PUSH EBX
005A0C89   .8945 FC       MOV DWORD PTR SS:,EAX
005A0C8C   .33C0          XOR EAX,EAX
005A0C8E   .55            PUSH EBP
005A0C8F   .68 E10D5A00   PUSH 锦航物业.005A0DE1
005A0C94   .64:FF30       PUSH DWORD PTR FS:
005A0C97   .64:8920       MOV DWORD PTR FS:,ESP
005A0C9A   .8D45 F4       LEA EAX,DWORD PTR SS:
005A0C9D   .E8 F2F9FFFF   CALL 锦航物业.005A0694                     ;//取本机ID号
005A0CA2   .8D45 EC       LEA EAX,DWORD PTR SS:
005A0CA5   .B9 F80D5A00   MOV ECX,锦航物业.005A0DF8                  ;wygl-20060505
005A0CAA   .8B55 F4       MOV EDX,DWORD PTR SS:
005A0CAD   .E8 0E3EE6FF   CALL 锦航物业.00404AC0                     ;//将本机ID号与固定字符串"wygl-20060505"相连
005A0CB2   .8B45 EC       MOV EAX,DWORD PTR SS:
005A0CB5   .8D55 F0       LEA EDX,DWORD PTR SS:
005A0CB8   .E8 AFFAFFFF   CALL 锦航物业.005A076C                     ;//算法CALL
005A0CBD   .8D55 E4       LEA EDX,DWORD PTR SS:
005A0CC0   .8B45 FC       MOV EAX,DWORD PTR SS:
005A0CC3   .8B80 08030000 MOV EAX,DWORD PTR DS:
005A0CC9   .E8 0EE1EAFF   CALL 锦航物业.0044EDDC
005A0CCE   .8B45 E4       MOV EAX,DWORD PTR SS:
005A0CD1   .8D55 E8       LEA EDX,DWORD PTR SS:
005A0CD4   .E8 9F87E6FF   CALL 锦航物业.00409478
005A0CD9   .8B45 E8       MOV EAX,DWORD PTR SS:                ;//EAX==试练码
005A0CDC   .8B55 F0       MOV EDX,DWORD PTR SS:                ;//EDX==真码
005A0CDF   .E8 D43EE6FF   CALL 锦航物业.00404BB8                     ;//比较CALL
005A0CE4   .74 2E         JE SHORT 锦航物业.005A0D14                   ;//关键跳转
005A0CE6   .6A 30         PUSH 30
005A0CE8   .B9 080E5A00   MOV ECX,锦航物业.005A0E08                  ;提示
005A0CED   .BA 100E5A00   MOV EDX,锦航物业.005A0E10                  ;序列号不正确,请重新输入!
005A0CF2   .A1 10C46A00   MOV EAX,DWORD PTR DS:
005A0CF7   .8B00          MOV EAX,DWORD PTR DS:
005A0CF9   .E8 AAF6ECFF   CALL 锦航物业.004703A8
005A0CFE   .8B45 FC       MOV EAX,DWORD PTR SS:
005A0D01   .8B80 08030000 MOV EAX,DWORD PTR DS:
005A0D07   .8B10          MOV EDX,DWORD PTR DS:
005A0D09   .FF92 C0000000 CALL DWORD PTR DS:
005A0D0F   .E9 AA000000   JMP 锦航物业.005A0DBE
005A0D14   >8B45 F0       MOV EAX,DWORD PTR SS:
005A0D17   .E8 708CE6FF   CALL 锦航物业.0040998C
005A0D1C   .8BD8          MOV EBX,EAX
005A0D1E   .81EB B54A0506 SUB EBX,6054AB5
005A0D24   .33C0          XOR EAX,EAX
005A0D26   .55            PUSH EBP
005A0D27   .68 970D5A00   PUSH 锦航物业.005A0D97
005A0D2C   .64:FF30       PUSH DWORD PTR FS:
005A0D2F   .64:8920       MOV DWORD PTR FS:,ESP
005A0D32   .B2 01         MOV DL,1
005A0D34   .A1 28A14B00   MOV EAX,DWORD PTR DS:
005A0D39   .E8 5695F1FF   CALL 锦航物业.004BA294
005A0D3E   .8945 F8       MOV DWORD PTR SS:,EAX
005A0D41   .BA 02000080   MOV EDX,80000002
005A0D46   .8B45 F8       MOV EAX,DWORD PTR SS:
005A0D49   .E8 2296F1FF   CALL 锦航物业.004BA370
005A0D4E   .BA 340E5A00   MOV EDX,锦航物业.005A0E34                  ;software\microsoft\windows\currentversion\mark\wygl
005A0D53   .8B45 F8       MOV EAX,DWORD PTR SS:
005A0D56   .E8 7D96F1FF   CALL 锦航物业.004BA3D8
005A0D5B   .B1 01         MOV CL,1
005A0D5D   .BA 340E5A00   MOV EDX,锦航物业.005A0E34                  ;software\microsoft\windows\currentversion\mark\wygl
005A0D62   .8B45 F8       MOV EAX,DWORD PTR SS:
005A0D65   .E8 4A97F1FF   CALL 锦航物业.004BA4B4
005A0D6A   .8BCB          MOV ECX,EBX
005A0D6C   .BA 700E5A00   MOV EDX,锦航物业.005A0E70                  ;reg_id
005A0D71   .8B45 F8       MOV EAX,DWORD PTR SS:
005A0D74   .E8 7B99F1FF   CALL 锦航物业.004BA6F4
005A0D79   .33C0          XOR EAX,EAX
005A0D7B   .5A            POP EDX
005A0D7C   .59            POP ECX
005A0D7D   .59            POP ECX
005A0D7E   .64:8910       MOV DWORD PTR FS:,EDX
005A0D81   .68 9E0D5A00   PUSH 锦航物业.005A0D9E
005A0D86   >8B45 F8       MOV EAX,DWORD PTR SS:
005A0D89   .E8 B295F1FF   CALL 锦航物业.004BA340
005A0D8E   .8B45 F8       MOV EAX,DWORD PTR SS:
005A0D91   .E8 DA2BE6FF   CALL 锦航物业.00403970
005A0D96   .C3            RETN
005A0D97   .^ E9 6833E6FF   JMP 锦航物业.00404104
005A0D9C   .^ EB E8         JMP SHORT 锦航物业.005A0D86
005A0D9E   .6A 30         PUSH 30
005A0DA0   .B9 080E5A00   MOV ECX,锦航物业.005A0E08                  ;提示
005A0DA5   .BA 780E5A00   MOV EDX,锦航物业.005A0E78                  ;恭喜,你已经注册成功了!
005A0DAA   .A1 10C46A00   MOV EAX,DWORD PTR DS:
005A0DAF   .8B00          MOV EAX,DWORD PTR DS:
005A0DB1   .E8 F2F5ECFF   CALL 锦航物业.004703A8
005A0DB6   .8B45 FC       MOV EAX,DWORD PTR SS:
005A0DB9   .E8 1EBDECFF   CALL 锦航物业.0046CADC
005A0DBE   >33C0          XOR EAX,EAX
005A0DC0   .5A            POP EDX
005A0DC1   .59            POP ECX
005A0DC2   .59            POP ECX
005A0DC3   .64:8910       MOV DWORD PTR FS:,EDX
005A0DC6   .68 E80D5A00   PUSH 锦航物业.005A0DE8
005A0DCB   >8D45 E4       LEA EAX,DWORD PTR SS:
005A0DCE   .E8 E939E6FF   CALL 锦航物业.004047BC
005A0DD3   .8D45 E8       LEA EAX,DWORD PTR SS:
005A0DD6   .BA 04000000   MOV EDX,4
005A0DDB   .E8 003AE6FF   CALL 锦航物业.004047E0
005A0DE0   .C3            RETN
005A0DE1   .^ E9 1E33E6FF   JMP 锦航物业.00404104
005A0DE6   .^ EB E3         JMP SHORT 锦航物业.005A0DCB
005A0DE8   .5B            POP EBX
005A0DE9   .8BE5          MOV ESP,EBP
005A0DEB   .5D            POP EBP
005A0DEC   .C3            RETN
==============================================================
005A0694/$55            PUSH EBP
005A0695|.8BEC          MOV EBP,ESP
005A0697|.33C9          XOR ECX,ECX
005A0699|.51            PUSH ECX
005A069A|.51            PUSH ECX
005A069B|.51            PUSH ECX
005A069C|.51            PUSH ECX
005A069D|.51            PUSH ECX
005A069E|.51            PUSH ECX
005A069F|.53            PUSH EBX
005A06A0|.8BD8          MOV EBX,EAX
005A06A2|.33C0          XOR EAX,EAX
005A06A4|.55            PUSH EBP
005A06A5|.68 48075A00   PUSH 锦航物业.005A0748
005A06AA|.64:FF30       PUSH DWORD PTR FS:
005A06AD|.64:8920       MOV DWORD PTR FS:,ESP
005A06B0|.E8 D7FFFFFF   CALL <JMP.&winjh.HDSerialNumRead>         ;//取硬件号
005A06B5|.8BD0          MOV EDX,EAX
005A06B7|.8D45 F0       LEA EAX,DWORD PTR SS:
005A06BA|.E8 ED42E6FF   CALL 锦航物业.004049AC
005A06BF|.8B45 F0       MOV EAX,DWORD PTR SS:
005A06C2|.8D55 F4       LEA EDX,DWORD PTR SS:
005A06C5|.E8 AE8DE6FF   CALL 锦航物业.00409478
005A06CA|.8B45 F4       MOV EAX,DWORD PTR SS:
005A06CD|.8D55 F8       LEA EDX,DWORD PTR SS:
005A06D0|.E8 338BE6FF   CALL 锦航物业.00409208
005A06D5|.68 5C075A00   PUSH 锦航物业.005A075C                     ;j
005A06DA|.8D45 EC       LEA EAX,DWORD PTR SS:
005A06DD|.50            PUSH EAX
005A06DE|.8B45 F8       MOV EAX,DWORD PTR SS:
005A06E1|.E8 8E43E6FF   CALL 锦航物业.00404A74
005A06E6|.8BC8          MOV ECX,EAX
005A06E8|.BA 04000000   MOV EDX,4
005A06ED|.8B45 F8       MOV EAX,DWORD PTR SS:
005A06F0|.E8 D745E6FF   CALL 锦航物业.00404CCC                     ;//取硬件号4位以后字符
005A06F5|.FF75 EC       PUSH DWORD PTR SS:
005A06F8|.8D45 E8       LEA EAX,DWORD PTR SS:
005A06FB|.50            PUSH EAX
005A06FC|.B9 03000000   MOV ECX,3
005A0701|.BA 01000000   MOV EDX,1
005A0706|.8B45 F8       MOV EAX,DWORD PTR SS:
005A0709|.E8 BE45E6FF   CALL 锦航物业.00404CCC                     ;//取硬件号1-3位的字符
005A070E|.FF75 E8       PUSH DWORD PTR SS:
005A0711|.68 68075A00   PUSH 锦航物业.005A0768                     ;h
005A0716|.8D45 FC       LEA EAX,DWORD PTR SS:
005A0719|.BA 04000000   MOV EDX,4
005A071E|.E8 1144E6FF   CALL 锦航物业.00404B34                     ;//本机ID号="J"+硬件号4位以后字符+硬件号1-3位的字符+"H"
005A0723|.8BC3          MOV EAX,EBX
005A0725|.8B55 FC       MOV EDX,DWORD PTR SS:
005A0728|.E8 E340E6FF   CALL 锦航物业.00404810
005A072D|.33C0          XOR EAX,EAX
005A072F|.5A            POP EDX
005A0730|.59            POP ECX
005A0731|.59            POP ECX
005A0732|.64:8910       MOV DWORD PTR FS:,EDX
005A0735|.68 4F075A00   PUSH 锦航物业.005A074F
005A073A|>8D45 E8       LEA EAX,DWORD PTR SS:
005A073D|.BA 06000000   MOV EDX,6
005A0742|.E8 9940E6FF   CALL 锦航物业.004047E0
005A0747\.C3            RETN
005A0748   .^ E9 B739E6FF   JMP 锦航物业.00404104
005A074D   .^ EB EB         JMP SHORT 锦航物业.005A073A
005A074F   .5B            POP EBX
005A0750   .8BE5          MOV ESP,EBP
005A0752   .5D            POP EBP
005A0753   .C3            RETN
==============================================================
005A076C/$55            PUSH EBP
005A076D|.8BEC          MOV EBP,ESP
005A076F|.83C4 F4       ADD ESP,-0C
005A0772|.56            PUSH ESI
005A0773|.33C9          XOR ECX,ECX
005A0775|.894D F4       MOV DWORD PTR SS:,ECX
005A0778|.8955 F8       MOV DWORD PTR SS:,EDX
005A077B|.8945 FC       MOV DWORD PTR SS:,EAX
005A077E|.8B45 FC       MOV EAX,DWORD PTR SS:
005A0781|.E8 D644E6FF   CALL 锦航物业.00404C5C
005A0786|.33C0          XOR EAX,EAX
005A0788|.55            PUSH EBP
005A0789|.68 83085A00   PUSH 锦航物业.005A0883
005A078E|.64:FF30       PUSH DWORD PTR FS:
005A0791|.64:8920       MOV DWORD PTR FS:,ESP
005A0794|.33F6          XOR ESI,ESI                              ;//ESI=0
005A0796|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==相连字符串
005A0799|.E8 D642E6FF   CALL 锦航物业.00404A74                   ;//EAX=相连字符串长度
005A079E|.8BD0          MOV EDX,EAX                              ;//EDX=EAX
005A07A0|.85D2          TEST EDX,EDX                           ;//比较EDX
005A07A2|.7E 24         JLE SHORT 锦航物业.005A07C8            ;//若小于等于则跳
005A07A4|.B8 01000000   MOV EAX,1                              ;//EAX=1
005A07A9|>8B4D FC       /MOV ECX,DWORD PTR SS:            ;//EAX==相连字符串
005A07AC|.8A4C01 FF   |MOV CL,BYTE PTR DS:          ;//逐位取ASCII码
005A07B0|.80F1 57       |XOR CL,57                               ;//CL=CL xor 57
005A07B3|.81E1 FF000000 |AND ECX,0FF
005A07B9|.69C9 6C030000 |IMUL ECX,ECX,36C                        ;//ECX=ECX * 36C
005A07BF|.0FAFC8      |IMUL ECX,EAX                            ;//ECX=ECX * EAX,EAX为当前字符所在的位置
005A07C2|.03F1          |ADD ESI,ECX                           ;//ESI=ESI+ECX
005A07C4|.40            |INC EAX                                 ;//EAX=EAX+1
005A07C5|.4A            |DEC EDX                                 ;//EDX=EDX-1
005A07C6|.^ 75 E1         \JNZ SHORT 锦航物业.005A07A9             ;//若不相等则跳
005A07C8|>8D55 F4       LEA EDX,DWORD PTR SS:
005A07CB|.8BC6          MOV EAX,ESI                              ;//EAX=ESI
005A07CD|.E8 1A91E6FF   CALL 锦航物业.004098EC                   ;//将ESI,即累加数值,转为10进制字符形式
005A07D2|.8B45 F4       MOV EAX,DWORD PTR SS:             ;//EAX==累加数值10进制字符形式
005A07D5|.E8 9A42E6FF   CALL 锦航物业.00404A74                   ;//EAX=累加数值10进制字符形式长度
005A07DA|.83F8 07       CMP EAX,7                              ;Switch (cases 5..8)
005A07DD|.7F 0C         JG SHORT 锦航物业.005A07EB               ;//大于7位的处理
005A07DF|.74 3B         JE SHORT 锦航物业.005A081C               ;//等于7位的处理
005A07E1|.83E8 05       SUB EAX,5
005A07E4|.74 12         JE SHORT 锦航物业.005A07F8               ;//等于5位的处理
005A07E6|.48            DEC EAX
005A07E7|.74 21         JE SHORT 锦航物业.005A080A               ;//等于6位的处理
005A07E9|.EB 62         JMP SHORT 锦航物业.005A084D
005A07EB|>83E8 08       SUB EAX,8
005A07EE|.74 3E         JE SHORT 锦航物业.005A082E               ;//等于8位的处理
005A07F0|.48            DEC EAX
005A07F1|.83E8 5C       SUB EAX,5C
005A07F4|.72 4A         JB SHORT 锦航物业.005A0840               ;//与5Ch(92)比较,若小于则跳
005A07F6|.EB 55         JMP SHORT 锦航物业.005A084D
005A07F8|>8D45 F4       LEA EAX,DWORD PTR SS:             ;Case 5 of switch 005A07DA
005A07FB|.8B4D F4       MOV ECX,DWORD PTR SS:
005A07FE|.BA 98085A00   MOV EDX,锦航物业.005A0898                ;8761
005A0803|.E8 B842E6FF   CALL 锦航物业.00404AC0                   ;//等于5位就在前面加上"8761"
005A0808|.EB 50         JMP SHORT 锦航物业.005A085A
005A080A|>8D45 F4       LEA EAX,DWORD PTR SS:             ;Case 6 of switch 005A07DA
005A080D|.8B4D F4       MOV ECX,DWORD PTR SS:
005A0810|.BA A8085A00   MOV EDX,锦航物业.005A08A8                ;876
005A0815|.E8 A642E6FF   CALL 锦航物业.00404AC0                   ;//等于6位就在前面加上"876"
005A081A|.EB 3E         JMP SHORT 锦航物业.005A085A
005A081C|>8D45 F4       LEA EAX,DWORD PTR SS:             ;Case 7 of switch 005A07DA
005A081F|.8B4D F4       MOV ECX,DWORD PTR SS:
005A0822|.BA B4085A00   MOV EDX,锦航物业.005A08B4                ;87
005A0827|.E8 9442E6FF   CALL 锦航物业.00404AC0                   ;//等于7位就在前面加"87"
005A082C|.EB 2C         JMP SHORT 锦航物业.005A085A
005A082E|>8D45 F4       LEA EAX,DWORD PTR SS:             ;Case 8 of switch 005A07DA
005A0831|.8B4D F4       MOV ECX,DWORD PTR SS:
005A0834|.BA C0085A00   MOV EDX,锦航物业.005A08C0                ;8
005A0839|.E8 8242E6FF   CALL 锦航物业.00404AC0                   ;//等于8位就在前面加"8"
005A083E|.EB 1A         JMP SHORT 锦航物业.005A085A
005A0840|>8D45 F4       LEA EAX,DWORD PTR SS:
005A0843|.8B55 F4       MOV EDX,DWORD PTR SS:
005A0846|.E8 0940E6FF   CALL 锦航物业.00404854                   ;//直接输出当前字符串作为注册码
005A084B|.EB 0D         JMP SHORT 锦航物业.005A085A
005A084D|>8D45 F4       LEA EAX,DWORD PTR SS:
005A0850|.BA CC085A00   MOV EDX,锦航物业.005A08CC                ;333543469
005A0855|.E8 FA3FE6FF   CALL 锦航物业.00404854                   ;//否则用333543469代替,作为注册码
005A085A|>8B45 F8       MOV EAX,DWORD PTR SS:
005A085D|.8B55 F4       MOV EDX,DWORD PTR SS:             ;//EDX==真码
005A0860|.E8 AB3FE6FF   CALL 锦航物业.00404810
005A0865|.33C0          XOR EAX,EAX
005A0867|.5A            POP EDX
005A0868|.59            POP ECX
005A0869|.59            POP ECX
005A086A|.64:8910       MOV DWORD PTR FS:,EDX
005A086D|.68 8A085A00   PUSH 锦航物业.005A088A
005A0872|>8D45 F4       LEA EAX,DWORD PTR SS:
005A0875|.E8 423FE6FF   CALL 锦航物业.004047BC
005A087A|.8D45 FC       LEA EAX,DWORD PTR SS:
005A087D|.E8 3A3FE6FF   CALL 锦航物业.004047BC
005A0882\.C3            RETN
005A0883   .^ E9 7C38E6FF   JMP 锦航物业.00404104
005A0888   .^ EB E8         JMP SHORT 锦航物业.005A0872
005A088A   .5E            POP ESI
005A088B   .8BE5          MOV ESP,EBP
005A088D   .5D            POP EBP
005A088E   .C3            RETN
**************************************************************
【破解总结】
--------------------------------------------------------------
【算法总结】
本机ID号与固定字符串"wygl-20060505"相连后,进行循环运算,所得结果转换成10进制,然后判断位数,根据不同的位数来选择不同的处理方式。最终的结果就是注册码
--------------------------------------------------------------
【算法注册机】
(略)
https://www.chinapyg.com/viewthread.php?tid=29588&extra=page%3D1&frombbs=1
--------------------------------------------------------------
【内存注册机】
中断地址 005A0CDF
中断次数 1
第一字节 E8
指令长度 5

内存方式-寄存器-EDX
--------------------------------------------------------------
【爆破地址】
005A0CE4   .74 2E         JE SHORT 锦航物业.005A0D14
将JE改为JNZ
--------------------------------------------------------------
【注册信息】
保存在

--------------------------------------------------------------
希望以后可以在猫老大和PYG 5.4Cracker学习小组的帮助下进一步提高自己。
感谢飘云老大、猫老大、Nisy老大以及很多前辈们的学习教程以及所有帮助过我的论坛兄弟姐妹们!谢谢
--------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 tianxj 于 2008-4-7 07:38 编辑 ]

tianxj 发表于 2008-4-6 23:26:31

请飘云老大指点

magic659117852 发表于 2008-4-6 23:27:01

/:014 楼主很高产额。。。

新手求教 发表于 2008-4-7 21:58:00

/:good 学习

chinaren 发表于 2008-4-8 21:15:42

我要学习一门计算机语言了,汇编就不打算了,呵呵。。黑鹰最近开delphi班,去看看。

save425 发表于 2008-4-23 23:10:41

强~算法分析的很详细哦,学习了~

云飘飘 发表于 2008-4-25 22:12:30

/:014 写得好!学习了~~

frankin 发表于 2008-4-28 08:59:35

这样写看的非常明白了
方便学习

frankin 发表于 2008-5-4 10:56:27

照葫芦画票我也搞了一个

leakey15 发表于 2008-5-4 12:46:23

不太懂!还是支持@
页: [1] 2
查看完整版本: 锦航物业收费管理软件 3.0算法分析