[PYG]算法分析入门第十四课
【破文标题】算法分析入门第十四课【破文作者】飘云
【作者主页】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:,eax
005EB4D0 33C0 xor eax,eax
005EB4D2 55 push ebp
005EB4D3 68 25B65E00 push Main.005EB625
005EB4D8 64:FF30 push dword ptr fs:
005EB4DB 64:8920 mov dword ptr fs:,esp
005EB4DE 8D45 F4 lea eax,dword ptr ss:
005EB4E1 E8 F2F9FFFF call Main.005EAED8
005EB4E6 8D45 EC lea eax,dword ptr ss: ; 机器码
005EB4E9 B9 3CB65E00 mov ecx,Main.005EB63C ; ASCII "wygl"
005EB4EE 8B55 F4 mov edx,dword ptr ss:
005EB4F1 E8 EA95E1FF call Main.00404AE0 ; 连接机器码和"wygl" 我们称它为特征码
005EB4F6 8B45 EC mov eax,dword ptr ss:
005EB4F9 8D55 F0 lea edx,dword ptr ss:
005EB4FC E8 AFFAFFFF call Main.005EAFB0 ; 算法call 跟进!
005EB501 8D55 E4 lea edx,dword ptr ss:
005EB504 8B45 FC mov eax,dword ptr ss:
005EB507 8B80 08030000 mov eax,dword ptr ds:
005EB50D E8 5E58E6FF call Main.00450D70
005EB512 8B45 E4 mov eax,dword ptr ss:
005EB515 8D55 E8 lea edx,dword ptr ss:
005EB518 E8 8BDFE1FF call Main.004094A8
005EB51D 8B45 E8 mov eax,dword ptr ss: ; 以下经典部分 哈
005EB520 8B55 F0 mov edx,dword ptr ss:
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:
005EB53B 8B00 mov eax,dword ptr ds:
005EB53D E8 FA6DE8FF call Main.0047233C
005EB542 8B45 FC mov eax,dword ptr ss:
005EB545 8B80 08030000 mov eax,dword ptr ds:
005EB54B 8B10 mov edx,dword ptr ds:
005EB54D FF92 C0000000 call dword ptr ds:
005EB553 E9 AA000000 jmp Main.005EB602
005EB558 8B45 F0 mov eax,dword ptr ss:
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:
005EB573 64:8920 mov dword ptr fs:,esp
005EB576 B2 01 mov dl,1
005EB578 A1 34C74B00 mov eax,dword ptr ds:
005EB57D E8 1E13EDFF call Main.004BC8A0 ; 下面开始向注册表写信息
005EB582 8945 F8 mov dword ptr ss:,eax
005EB585 BA 02000080 mov edx,80000002
005EB58A 8B45 F8 mov eax,dword ptr ss:
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:
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:
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:
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:,edx
005EB5C5 68 E2B55E00 push Main.005EB5E2
005EB5CA 8B45 F8 mov eax,dword ptr ss:
005EB5CD E8 7A13EDFF call Main.004BC94C
005EB5D2 8B45 F8 mov eax,dword ptr ss:
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:,ecx
005EAFE8 B8 01000000 mov eax,1 ; 初始化eax=1
005EAFED 8B4D FC mov ecx,dword ptr ss: ; 特征码
005EAFF0 8A4C01 FF mov cl,byte ptr ds: ; 逐位取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:
005EB00F 8BC6 mov eax,esi
005EB011 E8 06E9E1FF call Main.0040991C
005EB016 8B45 F4 mov eax,dword ptr ss:
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:
005EB03F 8B4D F4 mov ecx,dword ptr ss:
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:
005EB051 8B4D F4 mov ecx,dword ptr ss:
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:
005EB063 8B4D F4 mov ecx,dword ptr ss:
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:
005EB075 8B4D F4 mov ecx,dword ptr ss:
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:
005EB087 8B55 F4 mov edx,dword ptr ss:
005EB08A E8 E597E1FF call Main.00404874 ; 直接输出当前字符串作为注册码
005EB08F EB 0D jmp short Main.005EB09E
005EB091 8D45 F4 lea eax,dword ptr ss:
005EB094 BA 10B15E00 mov edx,Main.005EB110 ; ASCII "333543469"
005EB099 E8 D697E1FF call Main.00404874 ; 否则用333543469代替,作为注册码
005EB09E 8B45 F8 mov eax,dword ptr ss:
005EB0A1 8B55 F4 mov edx,dword ptr ss:
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:,edx
005EB0B1 68 CEB05E00 push Main.005EB0CE
005EB0B6 8D45 F4 lea eax,dword ptr ss:
005EB0B9 E8 1E97E1FF call Main.004047DC
005EB0BE 8D45 FC lea eax,dword ptr ss:
005EB0C1 E8 1697E1FF call Main.004047DC
005EB0C6 C3 retn
【算法总结】机器码 & wygl然后进行循环运算,得出的结果转换成10进制,然后判断位数,根据不同的位数来选择不同的处理方式。最终的结果就是注册码!
例如我的:
机器码:
机器码:JWBDNCY24H
注册码:874269624
【注册机】 论坛有下载
附:
注册信息保存在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Mark\wygl删除后可以继续研究
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 学习了,
下课了,
盼第十五课 晕`
我发了才知道飘云老大也发了!
狂晕~~ 支持啊~ 支持,这里是学习的好地方。 好好学习。 每看一次感受到不同 第十四课是不是有二篇? 就是啊.为什么有两个十四课?
https://www.chinapyg.com/viewthread.php?tid=2387&extra=page%3D1
页:
[1]
2