- UID
- 1132
注册时间2005-4-20
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 无聊 2020-4-10 17:02 |
---|
签到天数: 5 天 [LV.2]偶尔看看I
|
【原创】销售王家装预算报价软件 2005.08.001 简单算法分析
日期:2005年8月15日 破解人:冷血书生[OCN]
———————————————————————————————————————————
【软件名称】:销售王家装预算报价软件 2005 软件版本: 08.00
【软件大小】: 4943 KB
【下载地址】:http://yncnc.onlinedown.net/soft/40802.htm
【软件简介】:销售王家装预算软件是北京信达公司在总结吸收业内知名家装公司经验的基础上推出的装
饰预算报价软件,系统以标准Windows风格界面,完成工程报价、定额扩充、客户管理、报表输出、合同
管理等功能,可将工程文件导出到Excel表中进行分析处理。
与其他同类软件相比,销售王预算软件具有如下显著优势:
1.操作简便:用户可在一个界面下轻松完成项目的报价工作,按户型功能间单独报价,输出报表一目了然
。
2.功能强大:系统涵盖了报价管理、客户管理、合同管理及资料管理等多方面内容。
3.立即可用:系统无须复杂的后台设置工作,无须使用者关注后台,安装完成后,打开即可使用。
4.数据安全:系统设置了严密的安全权限设置(三级用户权限设置),同时提供“备份/恢复”功能,保
证用户数据的安全性。
5.报价与业务管理无缝集成:将公司管理重点自动延升到售前打单过程,提高销售成功率。
6.人性设计:系统提供了类似Windows的右键功能,用户可轻松上手。
【软件限制】:注册码限制
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:PEID,OD
———————————————————————————————————————————
【破解过程】:
首先用PEID查壳,检测到是Borland Delphi 6.0 - 7.0编写,没壳!我喜欢!接着就用DO载入,搜索
到错误提示,来到下面:
0062A200 55 push ebp ; 下断
0062A201 68 DAA36200 push Jiazhuan.0062A3DA
0062A206 64:FF30 push dword ptr fs:[eax]
0062A209 64:8920 mov dword ptr fs:[eax],esp
0062A20C 8D55 F8 lea edx,dword ptr ss:[ebp-8]
0062A20F 8B83 08030000 mov eax,dword ptr ds:[ebx+308]
0062A215 E8 9225E2FF call Jiazhuan.0044C7AC
0062A21A 8B45 F8 mov eax,dword ptr ss:[ebp-8]
0062A21D 8D55 FC lea edx,dword ptr ss:[ebp-4]
0062A220 E8 63F0DDFF call Jiazhuan.00409288 ; 取用户名
0062A225 837D FC 00 cmp dword ptr ss:[ebp-4],0 ; 比较用户名是否
为0
0062A229 74 1F je short Jiazhuan.0062A24A ; 为0就跳到出错
0062A22B 8D55 F0 lea edx,dword ptr ss:[ebp-10]
0062A22E 8B83 0C030000 mov eax,dword ptr ds:[ebx+30C]
0062A234 E8 7325E2FF call Jiazhuan.0044C7AC
0062A239 8B45 F0 mov eax,dword ptr ss:[ebp-10]
0062A23C 8D55 F4 lea edx,dword ptr ss:[ebp-C]
0062A23F E8 44F0DDFF call Jiazhuan.00409288 ; 取假码
0062A244 837D F4 00 cmp dword ptr ss:[ebp-C],0 ; 比较注册码是否
为0
0062A248 75 1D jnz short Jiazhuan.0062A267 ; 为0就出错
0062A24A 6A 40 push 40
0062A24C B9 E8A36200 mov ecx,Jiazhuan.0062A3E8
0062A251 BA F4A36200 mov edx,Jiazhuan.0062A3F4
0062A256 A1 6C6C6300 mov eax,dword ptr ds:[636C6C]
0062A25B 8B00 mov eax,dword ptr ds:[eax]
0062A25D E8 4640E4FF call Jiazhuan.0046E2A8
0062A262 E9 F5000000 jmp Jiazhuan.0062A35C
0062A267 8D45 EC lea eax,dword ptr ss:[ebp-14]
0062A26A 50 push eax
0062A26B 8D55 E8 lea edx,dword ptr ss:[ebp-18]
0062A26E 8B83 04030000 mov eax,dword ptr ds:[ebx+304]
0062A274 E8 3325E2FF call Jiazhuan.0044C7AC
0062A279 8B45 E8 mov eax,dword ptr ss:[ebp-18]
0062A27C 50 push eax ; EAX入栈
0062A27D 8D55 E0 lea edx,dword ptr ss:[ebp-20]
0062A280 8B83 08030000 mov eax,dword ptr ds:[ebx+308]
0062A286 E8 2125E2FF call Jiazhuan.0044C7AC
0062A28B 8B45 E0 mov eax,dword ptr ss:[ebp-20]
0062A28E 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
0062A291 E8 F2EFDDFF call Jiazhuan.00409288
0062A296 8B55 E4 mov edx,dword ptr ss:[ebp-1C]
0062A299 A1 C4666300 mov eax,dword ptr ds:[6366C4]
0062A29E 8B00 mov eax,dword ptr ds:[eax]
0062A2A0 8B80 B8000000 mov eax,dword ptr ds:[eax+B8]
0062A2A6 59 pop ecx
0062A2A7 E8 C8A1EFFF call Jiazhuan.00524474 ; 算法CALL,F7跟进
0062A2AC 8B45 EC mov eax,dword ptr ss:[ebp-14] ; 看到真码
0062A2AF 50 push eax ; 真码入栈
0062A2B0 8D55 D8 lea edx,dword ptr ss:[ebp-28]
0062A2B3 8B83 0C030000 mov eax,dword ptr ds:[ebx+30C]
0062A2B9 E8 EE24E2FF call Jiazhuan.0044C7AC
0062A2BE 8B45 D8 mov eax,dword ptr ss:[ebp-28]
0062A2C1 8D55 DC lea edx,dword ptr ss:[ebp-24]
0062A2C4 E8 BFEFDDFF call Jiazhuan.00409288
0062A2C9 8B55 DC mov edx,dword ptr ss:[ebp-24]
0062A2CC 58 pop eax ; 真码出栈
0062A2CD E8 FAA8DDFF call Jiazhuan.00404BCC ; 真假码比较,可做
内存注册机
0062A2D2 75 70 jnz short Jiazhuan.0062A344 ; 不相等就出OVER
******************跟进 0062A2A7 E8 C8A1EFFF call Jiazhuan.00524474 ******************
00524474 55 push ebp ; F7跟进来到这里
00524475 8BEC mov ebp,esp
00524477 83C4 F4 add esp,-0C
0052447A 53 push ebx
0052447B 56 push esi
0052447C 57 push edi
0052447D 33DB xor ebx,ebx
0052447F 895D F4 mov dword ptr ss:[ebp-C],ebx
00524482 894D F8 mov dword ptr ss:[ebp-8],ecx
00524485 8955 FC mov dword ptr ss:[ebp-4],edx
00524488 8B75 08 mov esi,dword ptr ss:[ebp+8]
0052448B 8B45 FC mov eax,dword ptr ss:[ebp-4]
0052448E E8 DD07EEFF call Jiazhuan.00404C70
00524493 8B45 F8 mov eax,dword ptr ss:[ebp-8]
00524496 E8 D507EEFF call Jiazhuan.00404C70
0052449B 33C0 xor eax,eax
0052449D 55 push ebp
0052449E 68 1E455200 push Jiazhuan.0052451E
005244A3 64:FF30 push dword ptr fs:[eax]
005244A6 64:8920 mov dword ptr fs:[eax],esp
005244A9 8BC6 mov eax,esi
005244AB E8 1003EEFF call Jiazhuan.004047C0
005244B0 8B45 FC mov eax,dword ptr ss:[ebp-4]
005244B3 E8 D005EEFF call Jiazhuan.00404A88
005244B8 8BD8 mov ebx,eax
005244BA 85DB test ebx,ebx
005244BC 7E 45 jle short Jiazhuan.00524503
005244BE BF 01000000 mov edi,1
005244C3 8B45 F8 mov eax,dword ptr ss:[ebp-8]
005244C6 E8 BD05EEFF call Jiazhuan.00404A88 ; 取机器码长度
005244CB 8B55 F8 mov edx,dword ptr ss:[ebp-8]
005244CE 0FB6543A FF movzx edx,byte ptr ds:[edx+edi-1] ; 依次取机器码
ASCII值
005244D3 03C2 add eax,edx ; EAX=EAX+EDX
005244D5 50 push eax
005244D6 8B45 FC mov eax,dword ptr ss:[ebp-4]
005244D9 E8 AA05EEFF call Jiazhuan.00404A88 ; 取用户名长度
005244DE 8BD0 mov edx,eax
005244E0 58 pop eax
005244E1 03C2 add eax,edx ; EAX=EAX+EDX
005244E3 05 BC000000 add eax,0BC ; EAX=EAX+0BC
005244E8 8D4D F4 lea ecx,dword ptr ss:[ebp-C]
005244EB BA 02000000 mov edx,2
005244F0 E8 A751EEFF call Jiazhuan.0040969C
005244F5 8B55 F4 mov edx,dword ptr ss:[ebp-C] ; 这里得到上面计
算的结果
005244F8 8BC6 mov eax,esi ; ESI送EAX
005244FA E8 9105EEFF call Jiazhuan.00404A90
005244FF 47 inc edi ; 计数器加1
00524500 4B dec ebx ; 长度减1
00524501 ^ 75 C0 jnz short Jiazhuan.005244C3 ; 取完往下走,没取
完往回跳
00524503 33C0 xor eax,eax
00524505 5A pop edx
00524506 59 pop ecx
00524507 59 pop ecx
00524508 64:8910 mov dword ptr fs:[eax],edx
0052450B 68 25455200 push Jiazhuan.00524525
00524510 8D45 F4 lea eax,dword ptr ss:[ebp-C]
00524513 BA 03000000 mov edx,3
00524518 E8 C702EEFF call Jiazhuan.004047E4
0052451D C3 retn
0052451E ^ E9 C5FBEDFF jmp Jiazhuan.004040E8
00524523 ^ EB EB jmp short Jiazhuan.00524510
00524525 5F pop edi
00524526 5E pop esi
00524527 5B pop ebx
00524528 8BE5 mov esp,ebp
0052452A 5D pop ebp
0052452B C2 0400 retn 4 ; 返回
【算法总结】
(1)机器码ASCII值+机器码长度+用户名长度+BC=SN1
……
机器码最后一位ASCII值+机器码长度+用户名长度+BC=SN(最后一个SN)
(2)SN1+SN2+SN3+……+SN(最后一个SN)=注册码
(3)如果用户名长度超过机器码长度,机器码将以0x00补上再计算!
———————————————————————————————————————————
【Crack_总结】:
初学算法,如有不足之处,请各位大侠指点!
[ Last edited by 冷血书生 on 2005-8-19 at 11:12 AM ] |
|