-
去除 AutoCAD 教育版打印戳记 - [软件调试]
2009-05-12
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://gleisure.blogbus.com/logs/39306781.html
一年前从他人那里拷贝了一份图纸电子档,是DWG格式(AutoCAD文件),文件打开时提示“检测到教育版打印戳记”,没有理会,只是打印时会在图纸四周印上“由AUTODESK教育版产品制作”的戳记,不能通过设置来取消,但感觉没多大影响。
网上提供了几种方法去除该戳记,核心思想是格式转换,如转换成外部交换文件后再转回,或者转换成低版本的文件(如R14)再转回。
今日虽然比较忙,但仍乘着休息时间分析了一下。AutoCAD 2008通过“acdb17.dll”的输出函数“AcDbDatabase: isEMR”来判断是否存在教育版打印戳记,该函数代码如下:
62076CB0 > 8B41 04 mov eax, [ecx+4]
62076CB3 33C9 xor ecx, ecx
62076CB5 3988 24080000 cmp [eax+824], ecx
62076CBB 0F95C1 setne cl
62076CBE 8AC1 mov al, cl
62076CC0 C3 retn即[eax+824]处的值,“1”为存在教育版戳记,“0”则不存在该戳记。暂没分析出如何直接从“DWG”文件取得该戳记,只对DLL文件作简单修改便可去除该戳记:
62076CB5 3988 24080000 cmp [eax+824], ecx
=>
62076CB5 8988 24080000 mov [eax+824], ecx这时打开含教育版戳记的DWG文件,不会再提示,保存后便可去除该戳记了。
要注意的是,只是这样更改“acdb17.dll”文件是不可行的,自身会调用“isAnObjectDBXModule”来判断:
62035481 . 8B5424 08 mov edx, [esp+8]
62035485 . 52 push edx
62035486 . E8 45000000 call isAnObjectDBXModule
6203548B . 83C4 04 add esp, 4
6203548E . 83F8 01 cmp eax, 1
62035491 . 75 12 jnz short 620354A5暂没空具体分析,只是作个简单修改:
62035491 . 75 12 jnz short 620354A5
=>
62035491 . 90 nop
62035492 . 90 nop仅修改了三个字节,AutoCAD可以正常运行了,打开带教育版打印戳记的DWG文件再重新保存一下,就成功去除了该戳记,完事后再还原DLL文件。AutoCAD 2006使用的是“acdb16.dll”,稍有不同,但更改也很容易。
经测试,60Mb左右的“DWG”文件都能顺利去除教育版打印戳记。有机会再做个程序,如果一直改来改去也累。
[2009-05-18]
花了二个晚上,编了个修改“教育版打印戳记”的程序(内存补丁)。
下载地址:本地下载
简要说明:先运行AutoCAD,再运行“EduPlotStamp.exe”,应用所需功能,如选择了“强制去除教育版打印戳记”,此时再打开带该戳记的DWG文件不会有提示了,保存后也会去除该戳记标识。关闭AutoCAD后功能便自动失效。
测试环境:Windows XP SP3;AutoCAD 2006
[2009-05-19]
在AutoCAD 2008中文版下测试成功!
[2009-08-30]
竟然在AutoCAD 2009中文版下也测试成功!随机文章:
试装 Google Earth Extension for AutoCAD 2009-05-11寻找 Ultra RM Converter 3.5.0411 注册码 2008-04-21通达OA 2007SE 注册机制 2007-11-03某麻将的P-CODE分析 2007-03-31分析创奇文书档案管理软件V4.0 2007-03-16
收藏到:Del.icio.us








评论
你好,我按照你的指导,在网上学了学内存补丁的制作,我用的 OllyDBG 1.10 和 XMemPatch ,根据分析的结果,制作了 AutoCAD2008 的 acdb17.dll 的EXE补丁和DLL补丁,并复制到CAD的安装目录下试用,但是都没有效果。
我以前没有接触过这方面的东西,可能是我制作的方法或软件有问题,特向你请教。请问佳闲兄如何制作的这个内存补丁,用的哪些软件呢?
还有,我在安装 AutoCAD2007 的电脑上也测试过你的程序,效果很好,我也用 OllyDBG 1.10 分析了一下 AutoCAD2007 的 acdb17.dll ,其内存地址与2008的完全不一样,也没有CMP [EAX+824],ECX这一句,只有64567735 |. 3988 DC070000 CMP DWORD PTR DS:[EAX+7DC],ECX。请问这是怎么回事呢?希望你在百忙之中能抽点时间来解答我的这些疑问,谢谢!
藤藤
2009.7.28
你的程序很好用,是我到目前为止见的最有效的“去除 AutoCAD 教育版打印戳记”的方法或程序,我已经将它推荐给了很多同事使用。对于你作所的工作,我们对你表示衷心的感谢!
我是一个CAD二次开发的爱好者,对你的破解思路很感兴趣,想学习学习,不知道版主能不能给小弟提供一份源程序?如果版主毫不保留,请发到我的邮箱:tengteb@163.com。再次感谢版主!
我是一个CAD二次开发的爱好者,对你的破解思路很感兴趣,想学习学习,不知道版主能不能给小弟提供一份源程序?如果版主毫不保留,请发到我的邮箱:tengteb@163.com。再次感谢版主!