- UID
 - 2
 
 注册时间2004-12-1
阅读权限255
最后登录1970-1-1
总坛主 
    
 
 
 
TA的每日心情  | 开心 2024-12-1 11:04 | 
|---|
 
  签到天数: 12 天 [LV.3]偶尔看看II  
 | 
 
【破文标题】算法分析入门第十四课 
【破文作者】飘云 
【作者主页】https://www.chinapyg.com 
【破解平台】WinXp 
【破解工具】PEiD0.93、OD 
【作者邮箱】[email protected] 
【软件名称】锦航物业收费管理软件 1.0 
【软件大小】1805KB 
【原版下载】http://nj.onlinedown.net/soft/42454.htm 
【软件简介】锦航物业收费管理系统是一套物业公司对业主收取电费、水费、维修费、清洁卫生费、治安 
 
管理费等各种物业收费项目进行全面管理的系统。 
  根据物业管理的要求,用户可以自行设定各种收费项目和计算公式,针对每个业主设定不同收费项目 
 
及收费标准,可以复制上月的收费项目及数据到本月进行修改。该系统操作简单,功能齐全,对各项收费 
 
项目进行分类统计与综合查询,能够打印出缴款单和各种报表,为物业收费管理提供了一个现代化的管理 
 
手段,保持了各种数据的完整性、及时性和正确性,使企业完善了管理体系提高了管理水平。 
【破解过程】用PEID0.93探测,本软件无壳,Borland Delphi 6.0 - 7.0 编写,OD载入程序运行 
 
我的试探信息: 
机器码:JWBDNCY24H 
注册码:789456123 
 
用OD汉字插件,找到如下关键点: 
005EB4CC    53                push ebx                          ;在此中断 
005EB4CD    8945 FC           mov dword ptr ss:[ebp-4],eax 
005EB4D0    33C0              xor eax,eax 
005EB4D2    55                push ebp 
005EB4D3    68 25B65E00       push Main.005EB625 
005EB4D8    64:FF30           push dword ptr fs:[eax] 
005EB4DB    64:8920           mov dword ptr fs:[eax],esp 
005EB4DE    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB4E1    E8 F2F9FFFF       call Main.005EAED8 
005EB4E6    8D45 EC           lea eax,dword ptr ss:[ebp-14]      ; 机器码 
005EB4E9    B9 3CB65E00       mov ecx,Main.005EB63C              ; ASCII "wygl" 
005EB4EE    8B55 F4           mov edx,dword ptr ss:[ebp-C] 
005EB4F1    E8 EA95E1FF       call Main.00404AE0                 ; 连接机器码和"wygl"   我们称它为特征码 
005EB4F6    8B45 EC           mov eax,dword ptr ss:[ebp-14] 
005EB4F9    8D55 F0           lea edx,dword ptr ss:[ebp-10] 
005EB4FC    E8 AFFAFFFF       call Main.005EAFB0                 ; 算法call 跟进! 
005EB501    8D55 E4           lea edx,dword ptr ss:[ebp-1C] 
005EB504    8B45 FC           mov eax,dword ptr ss:[ebp-4] 
005EB507    8B80 08030000     mov eax,dword ptr ds:[eax+308] 
005EB50D    E8 5E58E6FF       call Main.00450D70 
005EB512    8B45 E4           mov eax,dword ptr ss:[ebp-1C] 
005EB515    8D55 E8           lea edx,dword ptr ss:[ebp-18] 
005EB518    E8 8BDFE1FF       call Main.004094A8 
005EB51D    8B45 E8           mov eax,dword ptr ss:[ebp-18]      ; 以下经典部分 哈 
005EB520    8B55 F0           mov edx,dword ptr ss:[ebp-10] 
005EB523    E8 B096E1FF       call Main.00404BD8                 ; 这里可以做内存注册机 
005EB528    74 2E             je short Main.005EB558             ; 关键跳转,爆破点 
005EB52A    6A 30             push 30 
005EB52C    B9 44B65E00       mov ecx,Main.005EB644 
005EB531    BA 4CB65E00       mov edx,Main.005EB64C 
005EB536    A1 78F16100       mov eax,dword ptr ds:[61F178] 
005EB53B    8B00              mov eax,dword ptr ds:[eax] 
005EB53D    E8 FA6DE8FF       call Main.0047233C 
005EB542    8B45 FC           mov eax,dword ptr ss:[ebp-4] 
005EB545    8B80 08030000     mov eax,dword ptr ds:[eax+308] 
005EB54B    8B10              mov edx,dword ptr ds:[eax] 
005EB54D    FF92 C0000000     call dword ptr ds:[edx+C0] 
005EB553    E9 AA000000       jmp Main.005EB602 
005EB558    8B45 F0           mov eax,dword ptr ss:[ebp-10] 
005EB55B    E8 5CE4E1FF       call Main.004099BC 
005EB560    8BD8              mov ebx,eax 
005EB562    81EB B54A0506     sub ebx,6054AB5 
005EB568    33C0              xor eax,eax 
005EB56A    55                push ebp 
005EB56B    68 DBB55E00       push Main.005EB5DB 
005EB570    64:FF30           push dword ptr fs:[eax] 
005EB573    64:8920           mov dword ptr fs:[eax],esp 
005EB576    B2 01             mov dl,1 
005EB578    A1 34C74B00       mov eax,dword ptr ds:[4BC734] 
005EB57D    E8 1E13EDFF       call Main.004BC8A0                 ; 下面开始向注册表写信息 
005EB582    8945 F8           mov dword ptr ss:[ebp-8],eax 
005EB585    BA 02000080       mov edx,80000002 
005EB58A    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB58D    E8 EA13EDFF       call Main.004BC97C 
005EB592    BA 70B65E00       mov edx,Main.005EB670              ; ASCII  
"Software\Microsoft\Windows\CurrentVersion\Mark\wygl" 
005EB597    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB59A    E8 4514EDFF       call Main.004BC9E4 
005EB59F    B1 01             mov cl,1 
005EB5A1    BA 70B65E00       mov edx,Main.005EB670              ; ASCII  
"Software\Microsoft\Windows\CurrentVersion\Mark\wygl" 
005EB5A6    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB5A9    E8 1215EDFF       call Main.004BCAC0 
005EB5AE    8BCB              mov ecx,ebx 
005EB5B0    BA ACB65E00       mov edx,Main.005EB6AC              ; ASCII "reg_id" 
005EB5B5    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB5B8    E8 4317EDFF       call Main.004BCD00 
005EB5BD    33C0              xor eax,eax 
005EB5BF    5A                pop edx 
005EB5C0    59                pop ecx 
005EB5C1    59                pop ecx 
005EB5C2    64:8910           mov dword ptr fs:[eax],edx 
005EB5C5    68 E2B55E00       push Main.005EB5E2 
005EB5CA    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB5CD    E8 7A13EDFF       call Main.004BC94C 
005EB5D2    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB5D5    E8 9683E1FF       call Main.00403970 
005EB5DA    C3                retn 
 
下面是算法: 
****************************************call 005EAFB0:***********************************  
005EAFB6    56                push esi 
005EAFB7    33C9              xor ecx,ecx 
005EAFB9    894D F4           mov dword ptr ss:[ebp-C],ecx 
005EAFE8    B8 01000000       mov eax,1                          ; 初始化eax=1 
005EAFED    8B4D FC           mov ecx,dword ptr ss:[ebp-4]       ; 特征码 
005EAFF0    8A4C01 FF         mov cl,byte ptr ds:[ecx+eax-1]     ; 逐位取ascii 
005EAFF4    80F1 57           xor cl,57                          ; xor 57 
005EAFF7    81E1 FF000000     and ecx,0FF 
005EAFFD    69C9 6C030000     imul ecx,ecx,36C                   ; 乘以36c 
005EB003    0FAFC8            imul ecx,eax                       ; 乘以当前字符所在的位置 
005EB006    03F1              add esi,ecx                        ; 累加到esi 
005EB008    40                inc eax                            ; eax+1 指向下特征码一位 
005EB009    4A                dec edx                            ; edx-1  特征码位数减1 
005EB00A  ^ 75 E1             jnz short Main.005EAFED            ; 循环运算 
005EB00C    8D55 F4           lea edx,dword ptr ss:[ebp-C] 
005EB00F    8BC6              mov eax,esi 
005EB011    E8 06E9E1FF       call Main.0040991C 
005EB016    8B45 F4           mov eax,dword ptr ss:[ebp-C] 
005EB019    E8 769AE1FF       call Main.00404A94 
005EB01E    83F8 07           cmp eax,7 
005EB021    7F 0C             jg short Main.005EB02F             ; 大于7位的处理(具体处理情况,请根据跳转路径查对) 
005EB023    74 3B             je short Main.005EB060             ; 等于7位的处理 
005EB025    83E8 05           sub eax,5 
005EB028    74 12             je short Main.005EB03C             ; 等于5位的处理 
005EB02A    48                dec eax 
005EB02B    74 21             je short Main.005EB04E             ; 等于6位的处理 
005EB02D    EB 62             jmp short Main.005EB091 
005EB02F    83E8 08           sub eax,8                          ; eax-8 
005EB032    74 3E             je short Main.005EB072             ; 如果为8位则跳 
005EB034    48                dec eax                            ; eax-1 
005EB035    83E8 5C           sub eax,5C                         ; eax-5c 
005EB038    72 4A             jb short Main.005EB084             ; 若小于则跳,当然跳咯,比5C(92)大的很少吧? 
005EB03A    EB 55             jmp short Main.005EB091 
005EB03C    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB03F    8B4D F4           mov ecx,dword ptr ss:[ebp-C] 
005EB042    BA DCB05E00       mov edx,Main.005EB0DC              ; ASCII "8761" 
005EB047    E8 949AE1FF       call Main.00404AE0                 ; 等于5位就在前面加上"8761" 
005EB04C    EB 50             jmp short Main.005EB09E 
005EB04E    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB051    8B4D F4           mov ecx,dword ptr ss:[ebp-C] 
005EB054    BA ECB05E00       mov edx,Main.005EB0EC              ; ASCII "876" 
005EB059    E8 829AE1FF       call Main.00404AE0                 ; 等于6位就在前面加上"876" 
005EB05E    EB 3E             jmp short Main.005EB09E 
005EB060    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB063    8B4D F4           mov ecx,dword ptr ss:[ebp-C] 
005EB066    BA F8B05E00       mov edx,Main.005EB0F8              ; ASCII "87" 
005EB06B    E8 709AE1FF       call Main.00404AE0                 ; 等于7位就在前面加"87" 
005EB070    EB 2C             jmp short Main.005EB09E 
005EB072    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB075    8B4D F4           mov ecx,dword ptr ss:[ebp-C] 
005EB078    BA 04B15E00       mov edx,Main.005EB104              ; ASII"8" 
005EB07D    E8 5E9AE1FF       call Main.00404AE0                 ; 等于8位就在前面加"8" 
005EB082    EB 1A             jmp short Main.005EB09E 
005EB084    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB087    8B55 F4           mov edx,dword ptr ss:[ebp-C] 
005EB08A    E8 E597E1FF       call Main.00404874                 ; 直接输出当前字符串作为注册码 
005EB08F    EB 0D             jmp short Main.005EB09E 
005EB091    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB094    BA 10B15E00       mov edx,Main.005EB110              ; ASCII "333543469" 
005EB099    E8 D697E1FF       call Main.00404874                 ; 否则用333543469代替,作为注册码 
005EB09E    8B45 F8           mov eax,dword ptr ss:[ebp-8] 
005EB0A1    8B55 F4           mov edx,dword ptr ss:[ebp-C] 
005EB0A4    E8 8797E1FF       call Main.00404830 
005EB0A9    33C0              xor eax,eax 
005EB0AB    5A                pop edx 
005EB0AC    59                pop ecx 
005EB0AD    59                pop ecx 
005EB0AE    64:8910           mov dword ptr fs:[eax],edx 
005EB0B1    68 CEB05E00       push Main.005EB0CE 
005EB0B6    8D45 F4           lea eax,dword ptr ss:[ebp-C] 
005EB0B9    E8 1E97E1FF       call Main.004047DC 
005EB0BE    8D45 FC           lea eax,dword ptr ss:[ebp-4] 
005EB0C1    E8 1697E1FF       call Main.004047DC 
005EB0C6    C3                retn 
 
【算法总结】机器码 & wygl  然后进行循环运算,得出的结果转换成10进制,然后判断位数,根据不同的位数来选择不同的处理方式。最终的结果就是注册码!   
例如我的: 
机器码: 
机器码:JWBDNCY24H 
注册码:874269624  
【注册机】 论坛有下载 
附: 
注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Mark\wygl  删除后可以继续研究 
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |   
 
 
 
 |