- UID
- 38560
注册时间2007-12-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【软件名称】《山东省工程建设监理计算机管理系统》V2004 内部版本号:20030528
【软件大小】4.06M
【运行平台】Win98/Win2K/WinXP
【编写语言】Borland Delphi 6.0 - 7.0
【破解平台】WinXP+SP1
【加壳方式】无
【脱壳方法】无
【加密方法】软件狗
【加密强度】简单
【破解软件】W32dasm 无极版、PEiD v0.92、UltraEdit-32 V8.00
【破解类型】爆破
【下载地址】自己找
【破 解 人】libo533
【软件简介】
该系统是在山东省监理协会和淄博市监理协会的主持下,由“淄博齐通建筑科技有限公司”自主开发的工程建设监理管理软件。该系统采用了最新的规范标准,集成了进度控制软件、工程预算软件,是工程监理系统的通用软件。
该系统通用性强、功能全面、覆盖监理业务工作的所有内容,对监理业向国际接轨起到引导作用。
主要特点:
1.使用Access2000数据库系统,运行稳定。
2.方便的数据输入功能,并提供大量的报表、数据表格、文本、最新的规范标准及法律法规,且实现了与微软Office办公系统的完美结合。
3.查询简便,采用树型分类显示和组合式多项选择查询功能。
4.提供最新、最全面的监理相关文档,方便用户查询、使用。
5.满足同时对多个工程的监理需要。
6.强大的数据备份功能、数据传输功能,实现远程管理。
7.挂接“进度控制软件”、“工程预算软件”和“cad看图软件”。
主要功能:
1.工程项目:主要包括:项目概况、监理合同、项目组织情况、人员情况。
2.文档管理:主要包括:文件收件、发件、文件档案管理的全过程,并对工程监理中的建设函件(建筑施工函件、建筑监理函件、市政施工函件、市政监理函件)、监理文件及用户自定义的报表进行输出。
3.合同管理:完成对合同基本索引情况的登记、合同全文录入(导入或扫描)、合同审查意见、执行情况、纠纷与索赔处理、修改与终止等。
4.组织协调:完成监理会议纪要的编写和监理程序和流程的查询。
5.质量控制:包括对设计、准备、施工、竣工、保修各个阶段分项工程管理、分项工程工序质量控制。
6.投资控制:包括对各合同的合同价清单、费用计算、结算汇总、分项累计比较及月度费用偏差比较。
7.进度控制:包括对施工计划和实际施工进度信息编辑、横道图、单代号图、双代号图来进度显示工程进度和进度调整。
8.系统设置:对整个系统中工程、代码、模板、定额等基本信息进行预处理。
9.数据通讯:系统提供数据交换的方法,包括报盘、远程网络、INTERNET等方式。交换的信息可由用户选择。
辅助功能:数据管理、系统日志、帮助、各种相关法规检索等功能。
【破解过程】
【破解分析】
软件运行时,如果不插入软件狗,会有“请插入本系统的加密狗”的提示,这为我们破解软件提供了很好的切入点。
1.用“PEiD v0.92”对原文件进行检查,发现没有加壳,哈哈,节省了不少时间。软件是用“Delphi”编写的。
2.用“W32dasm 无极版”反汇编程序。
3.在“W32dasm 无极版”中使用“编辑”-》“查找”输入“加密”,进行查找。找到代码如下:
........
:00532F41 55 push ebp
:00532F42 681B305300 push 0053301B
:00532F47 64FF30 push dword ptr fs:[eax]
:00532F4A 648920 mov dword ptr fs:[eax], esp
:00532F4D 33C0 xor eax, eax
:00532F4F A3AC0E5C00 mov dword ptr [005C0EAC], eax
:00532F54 E8CE4D0000 call 00537D27
:00532F59 85C0 test eax, eax --->比较 1
:00532F5B 7416 je 00532F73 物理地址:13235B --->关键跳转
* Possible StringData Ref from Code Obj ->"1.请插入本系统的加密狗!"
|
:00532F5D B830305300 mov eax, 00533030
:00532F62 E8A580F0FF call 0043B00C
:00532F67 A188FA5B00 mov eax, dword ptr [005BFA88]
:00532F6C 8B00 mov eax, dword ptr [eax]
:00532F6E E83D16F6FF call 004945B0
........
--------------------------------
........
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00532F5B(C)
|
:00532F73 8D45E2 lea eax, dword ptr [ebp-1E]
:00532F76 A3C00E5C00 mov dword ptr [005C0EC0], eax
:00532F7B C645E106 mov [ebp-1F], 06
:00532F7F C705B40E5C0006000000 mov dword ptr [005C0EB4], 00000006
:00532F89 33C0 xor eax, eax
:00532F8B A3B00E5C00 mov dword ptr [005C0EB0], eax
:00532F90 E8AB4D0000 call 00537D40
:00532F95 85C0 test eax, eax --->比较 2
:00532F97 740C je 00532FA5 物理地址:132397 --->关键跳转
* Possible StringData Ref from Code Obj ->"1.请插入本系统的加密狗!"
|
:00532F99 B830305300 mov eax, 00533030
:00532F9E E86980F0FF call 0043B00C
:00532FA3 EB56 jmp 00532FFB
........
--------------------------------
........
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00532F97(C)
|
:00532FA5 8D45DC lea eax, dword ptr [ebp-24]
:00532FA8 8D55E1 lea edx, dword ptr [ebp-1F]
:00532FAB E8601AEDFF call 00404A10
:00532FB0 8B45DC mov eax, dword ptr [ebp-24]
* Possible StringData Ref from Code Obj ->"QITONG"
|
:00532FB3 8B15FCE65B00 mov edx, dword ptr [005BE6FC]
:00532FB9 E8FA1BEDFF call 00404BB8 --->比较 3
:00532FBE 7427 je 00532FE7 物理地址:1323BE --->关键跳转
* Possible StringData Ref from Data Obj ->" "
|
:00532FC0 B8FCE65B00 mov eax, 005BE6FC
* Possible StringData Ref from Code Obj ->"3.14159265E-310"
|
:00532FC5 BA50305300 mov edx, 00533050
:00532FCA E83118EDFF call 00404800
* Possible StringData Ref from Code Obj ->"1.请插入本系统的加密狗!"
|
:00532FCF B830305300 mov eax, 00533030
:00532FD4 E83380F0FF call 0043B00C
:00532FD9 A188FA5B00 mov eax, dword ptr [005BFA88]
:00532FDE 8B00 mov eax, dword ptr [eax]
:00532FE0 E8CB15F6FF call 004945B0
:00532FE5 EB14 jmp 00532FFB
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00532FBE(C)
|
:00532FE7 A144FD5B00 mov eax, dword ptr [005BFD44]
:00532FEC 8B00 mov eax, dword ptr [eax]
:00532FEE 8B4058 mov eax, dword ptr [eax+58]
........
--------------------------------
........
:005B3D2A 8B08 mov ecx, dword ptr [eax]
:005B3D2C FF9178010000 call dword ptr [ecx+00000178]
:005B3D32 8D45F4 lea eax, dword ptr [ebp-0C]
* Possible StringData Ref from Code Obj ->"project1"
|
:005B3D35 8B1534ED5B00 mov edx, dword ptr [005BED34]
:005B3D3B E88813E5FF call 004050C8
:005B3D40 8B55F4 mov edx, dword ptr [ebp-0C]
:005B3D43 A144FD5B00 mov eax, dword ptr [005BFD44]
:005B3D48 8B00 mov eax, dword ptr [eax]
:005B3D4A 8B4058 mov eax, dword ptr [eax+58]
:005B3D4D E83E5DF2FF call 004D9A90
:005B3D52 85DB test ebx, ebx --->比较 4
:005B3D54 7436 je 005B3D8C 物理地址:1B3154 --->关键跳转
:005B3D56 8D45F0 lea eax, dword ptr [ebp-10]
* Possible StringData Ref from Code Obj ->"project1"
|
:005B3D59 8B1534ED5B00 mov edx, dword ptr [005BED34]
:005B3D5F E86413E5FF call 004050C8
:005B3D64 8B55F0 mov edx, dword ptr [ebp-10]
:005B3D67 A144FD5B00 mov eax, dword ptr [005BFD44]
:005B3D6C 8B00 mov eax, dword ptr [eax]
:005B3D6E 8B4058 mov eax, dword ptr [eax+58]
:005B3D71 E81A5DF2FF call 004D9A90
* Possible StringData Ref from Code Obj ->"2.请插入本系统的加密狗!"
|
:005B3D76 B8C83E5B00 mov eax, 005B3EC8
:005B3D7B E88C72E8FF call 0043B00C
:005B3D80 A188FA5B00 mov eax, dword ptr [005BFA88]
:005B3D85 8B00 mov eax, dword ptr [eax]
:005B3D87 E82408EEFF call 004945B0
........
--------------------------------
........
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005B3D54(C)
|
:005B3D8C 33C0 xor eax, eax
:005B3D8E 8945F8 mov dword ptr [ebp-08], eax
:005B3D91 8945FC mov dword ptr [ebp-04], eax
:005B3D94 8D45F8 lea eax, dword ptr [ebp-08]
:005B3D97 A350145C00 mov dword ptr [005C1450], eax
:005B3D9C C70544145C0006000000 mov dword ptr [005C1444], 00000006
:005B3DA6 C70540145C001E000000 mov dword ptr [005C1440], 0000001E
:005B3DB0 E8A75D0000 call 005B9B5C
:005B3DB5 8BD8 mov ebx, eax
:005B3DB7 85DB test ebx, ebx --->比较 5
:005B3DB9 7438 je 005B3DF3 物理地址: 1B31B9 --->关键跳转
* Possible StringData Ref from Code Obj ->"2.请插入本系统的加密狗!"
|
:005B3DBB B8C83E5B00 mov eax, 005B3EC8
:005B3DC0 E84772E8FF call 0043B00C
:005B3DC5 8D45EC lea eax, dword ptr [ebp-14]
* Possible StringData Ref from Code Obj ->"project1"
|
:005B3DC8 8B1534ED5B00 mov edx, dword ptr [005BED34]
:005B3DCE E8F512E5FF call 004050C8
:005B3DD3 8B55EC mov edx, dword ptr [ebp-14]
:005B3DD6 A144FD5B00 mov eax, dword ptr [005BFD44]
:005B3DDB 8B00 mov eax, dword ptr [eax]
:005B3DDD 8B4058 mov eax, dword ptr [eax+58]
:005B3DE0 E8AB5CF2FF call 004D9A90
:005B3DE5 A188FA5B00 mov eax, dword ptr [005BFA88]
:005B3DEA 8B00 mov eax, dword ptr [eax]
:005B3DEC E8BF07EEFF call 004945B0
:005B3DF1 EB7A jmp 005B3E6D
........
--------------------------------
........
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005B3DB9(C)
|
:005B3DF3 DD45F8 fld qword ptr [ebp-08]
:005B3DF6 83C4F4 add esp, FFFFFFF4
:005B3DF9 DB3C24 fstp tbyte ptr [esp]
:005B3DFC 9B wait
:005B3DFD 8D45E8 lea eax, dword ptr [ebp-18]
:005B3E00 E87772E5FF call 0040B07C
:005B3E05 8B45E8 mov eax, dword ptr [ebp-18]
:005B3E08 8B1558145C00 mov edx, dword ptr [005C1458]
:005B3E0E E8A50DE5FF call 00404BB8 --->比较 6
:005B3E13 7438 je 005B3E4D 物理地址: 1B3213 --->关键跳转
* Possible StringData Ref from Code Obj ->"2.请插入本系统的加密狗!"
|
:005B3E15 B8C83E5B00 mov eax, 005B3EC8
:005B3E1A E8ED71E8FF call 0043B00C
:005B3E1F 8D45E4 lea eax, dword ptr [ebp-1C]
* Possible StringData Ref from Code Obj ->"project1"
|
:005B3E22 8B1534ED5B00 mov edx, dword ptr [005BED34]
:005B3E28 E89B12E5FF call 004050C8
:005B3E2D 8B55E4 mov edx, dword ptr [ebp-1C]
:005B3E30 A144FD5B00 mov eax, dword ptr [005BFD44]
:005B3E35 8B00 mov eax, dword ptr [eax]
:005B3E37 8B4058 mov eax, dword ptr [eax+58]
:005B3E3A E8515CF2FF call 004D9A90
:005B3E3F A188FA5B00 mov eax, dword ptr [005BFA88]
:005B3E44 8B00 mov eax, dword ptr [eax]
:005B3E46 E86507EEFF call 004945B0
:005B3E4B EB20 jmp 005B3E6D
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005B3E13(C)
|
:005B3E4D 8D45E0 lea eax, dword ptr [ebp-20]
* Possible StringData Ref from Code Obj ->"project"
........
--------------------------------
经以上分析并经过试验,可以看到,软件对加密狗的检测共四个地方,其中4、5、6的比较为进入软件时对加密狗
的检测,如果没有加密狗,将不能进入软件。
第1、2、3个比较是进入软件后,使用软件功能时对加密狗的检测,如果没有加密狗,将不能使用软件的功能。
【破解方法】
只要将以上四处je跳转修改为jmp跳转即可绕过加密狗的检测,实现对软件的暴力破解。
在“W32dasm 无极版”中,双击各跳转语句,可以在“W32dasm”的下方状态栏中看到此语句在软件中的物理地址,六个跳转的物理地址分别如下:0013235Bh、00132397h、001323BEh、001B3154h、001B31B9h、001B3213h
使用“UltraEdit-32 V8.00”编辑软件,找到以上相应的六处物理地址,将“74”改为“EB”即可。
【破解说明】
按照以上破解方法对软件进行破解后,可以正常使用软件的任何功能,没有任何功能限制。但是软件运行大约10分钟后,还会出现“ERROR!”的提示框,然后软件立即退出。为了保护软件的版权,对于使用时间限制的破解就不再进行详细说明,各位可以根据以上的破解方法自行破解。
因为在软件中出现“ERROR!”提示框的地方非常多,为了快速确定哪一个是我们需要进行定位的提示框,可以采取以下办法:
1.用“UltraEdit-32 V8.00”编辑软件,使用“搜索”-》“查找”输入“ERROR”,进行查找。
2.对找到的第一个“ERROR”的字符修改为“1RROR”,对找到的第二个“ERROR”的字符修改为“2RROR”,依次类推,然后保存。
3.运行软件,等10分钟后出现“ERROR!”的提示框,看一下是“1RROR”还是“2RROR”,或者是其余的“?RROR”.
4.用“W32dasm 无极版”反汇编程序。在“W32dasm 无极版”中使用“编辑”-》“查找”功能,在输入框中输入你刚才看到提示框的内容,进行查找。就可对提示框的位置进行定位了!
说明:这个软件几年前就已经破解了,前几天看到有朋友寻找关于软件狗的破解教程,就写了这篇破解手记,第一次写,不足之处请大家指教,这是我的原创,首发在飘云阁,如果转载请保持文章的完整性和出处,谢谢!
[ 本帖最后由 libo533 于 2007-12-25 21:47 编辑 ] |
评分
-
查看全部评分
|