• 去除 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中文版下也测试成功! 


    收藏到:Del.icio.us




    评论

  • 你好~~~你的软件很好用,我见识过,我就有点不明白我跟我同事都是用2004的CAD,他的电脑能够应用有完成提示,我这里就不能应用的,我也不知道是什么原因。请指教一下,是不是有什么地方没有注意。
    佳闲回复Treeman86说:
    因为没有办法调试,所以很难分析出原因,可能程序有什么地方没有考虑周到,或者有什么因素干挠了。
    2009-11-06 18:13:52
  • 你好~~~你的软件很好用,我见识过,我就有点不明白我跟我同事都是用2004的CAD,他的电脑能够应用有完成提示,我这里就不能应用的,我也不知道是什么原因。请指教一下,是不是有什么地方没有注意。
  • 你好~~~你的软件很好用,我见识过,我就有点不明白我跟我同事都是用2004的CAD,他的电脑能够应用有完成提示,我这里就不能应用的,我也不知道是什么原因。请指教一下,是不是有什么地方没有注意。
  • http://www.gze.cn/products_JMMRESFPERLMM8.html版主能够发个破解这个“DG图文档安全卫士”的程序出来吗?CAD加密了,打开是“图形文件无效”
  • 佳闲兄,我是不久前才在嬴政论坛上知道这个软件的,妈呀,我不知该说啥才可以准确表达我的敬意!!!呵呵……自打沾上了教育版后,后来的图都无一幸免!奇怪的是,我前天重装了XP后,点应用没有窗口出来了。我的是XP SP3+2006,原来的系统也是一样的。小弟是程序盲,搞不懂是怎么了,佳闲兄可以分析下是什么原因吗,谢谢啦!兄要是忙的话就不要费心了,弟的大部分已经去掉了。再次感谢兄的工作!!!
    佳闲回复hui说:
    以上信息不足以分析是何原因。
    2009-08-30 19:28:50
  • 我是先运行AutoCAD,再进行修补的,但是无效。我用XMemPatch生成的Patch.exe,运行时没有任何成功或失败的提示。请问你是用的什么软件制作的这个内存补丁程序呢?
    佳闲回复tengte说:
    修补地址是否正确?XMemPatch补丁没有效验吗?!
    2009-08-11 13:24:20
  • 我是先运行AutoCAD,再进行修补的,但是无效。我用XMemPatch生成的Patch.exe,运行时没有任何成功或失败的提示。请问你是用的什么软件制作的这个内存补丁程序呢?
  • 佳闲兄:
      你好,我按照你的指导,在网上学了学内存补丁的制作,我用的 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
    佳闲回复tengte说:
    内存补丁需事先运行AutoCAD,再进行修补;不同版本可能代码不一致,那就是需要判断了,不同情况不同处理,或者重写代码,很难包容所有可能性.本程序也只是对分析过的版本有效.
    2009-07-29 08:19:06
  • (我发现你的这个博客很好用,于是我也注册了一个帐号。)
    你的程序很好用,是我到目前为止见的最有效的“去除 AutoCAD 教育版打印戳记”的方法或程序,我已经将它推荐给了很多同事使用。对于你作所的工作,我们对你表示衷心的感谢!
    我是一个CAD二次开发的爱好者,对你的破解思路很感兴趣,想学习学习,不知道版主能不能给小弟提供一份源程序?如果版主毫不保留,请发到我的邮箱:tengteb@163.com。再次感谢版主!
    佳闲回复tengte说:
    文章已经把思想讲得很详细了,只不过是一个内存补丁工具,网上下载的制作补丁的工具就能实现,况且你熟知CAD的二次开发,如果之前未接触过内存补丁,那么查查网络,那也是一个很好的练习。希望能见到你的作品。
    2009-07-26 09:24:25
  • 你的程序很好用,是我到目前为止见的最有效的“去除 AutoCAD 教育版打印戳记”的方法或程序,我已经将它推荐给了很多同事使用。对于你作所的工作,我们对你表示衷心的感谢!
    我是一个CAD二次开发的爱好者,对你的破解思路很感兴趣,想学习学习,不知道版主能不能给小弟提供一份源程序?如果版主毫不保留,请发到我的邮箱:tengteb@163.com。再次感谢版主!
  • 我是2006的用户,用高手编的小程序测试失败
    佳闲回复尺天涯说:
    请详细写明出错情况,比如是否有错误提示等。
    2009-06-20 21:51:59
  • “EduPlotStamp.exe 这个程序很不错。只是关闭AutoCAD后功能便自动失效。我想,能不能这样,修改一下这个程序,成***.lsp格式的,修改后的应用程序就是只有默认的一项--去掉戳记,而原来的是添加和删除两项,需手动选择。这样,修改之后,就可以加载该***.lsp文件,从而达到删除打印版效果。可惜我对编写和修改程序不精。还望您能帮忙。谢谢。
    佳闲回复zz说:
    因为不会常用这个程序,一旦去除了文件的教育版戳记,可能就不再需要了,所以选择内存PATCH的方式,而不是直接PATCH。
    2009-06-03 21:53:18