欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

解除“天x结构7.1”时间限制的过程

解除“天x结构7.1”时间限制的过程

软件的简单介绍:
“天x结构7.1”是土木工程专业同学进行结构设计的一款较有名的软件,它是AutoCAD二次开发的产物。
为什么要破解,破解什么:
选择“试用版”模式安装完成,使用软件时我们的系统时间得小于2010-01-01,否则直接弹出如下对话框:

第一次使用时必须进行注册,此时使用“天x结构7.1”安装压缩包中的注册机即可。
(成功安装后,就会有左边的工具栏,以后称此为T工具栏)
因此我们以后如果要使用,必须把时间调到2010-01-01之前。
我们要把它“变”成以后即使不调整时间也可使用:)
破解过程:
阶段一:
它是AutoCAD二次开发的产物,那我们得看看AutoCAD的帮助,了解下有哪些方式开发。
1.  ActiveX Automation
2.  AutoCAD VBA
3.  AutoLISP 和 Visual LISP
4.  ObjectARX
那是哪一种方式呢?我们看看它安装目录下的文件,可以发现有许多.arx扩张名的文件,还有一些.lsp的文件。应此我们认定它应该是3方式与4方式的结合。
我们要解决的矛盾是:时间判断在哪个地方呢?
3方式中?它的代码是以源代码的形式存在的,应该不会在这里面;而4方式开发的.arx其实是dll文件,应该这。所以我首先想到的是:对GetSystemTime函数下断点。
用OllyDbg打开软件,AutoCAD都还没加载完就出现错误了,不用说加载“天x”模块了,显然使用了反调试技术。既然这条大路行不通,那我得找其它的路了。
阶段二:
那我们看看加载了哪些模块,再看看AutoCAD帮助,可以知道:用“arx”命令可查看已加载的arx模块。可以发现“tch_initstart.arx - 支持 MDI”,这是“天x”加载的第一个模块,从字面也可以看出。所以主要研究这个文件。
可是tch_initstart.arx文件在好几个文件夹下都有啊!难道每个都要分析?那可不是一件轻松的事!抱着试一试的心情再重新打开软件,突然在状态栏下看到它的加载路径。这下让我松了口气。它加载的是sys16文件夹下的文件。所以应该就只研究它一个啦,哈哈……
用PEID查了下:Microsoft Visual C++ 7.0 DLL Method 3
没加壳!哈哈……马上用IDA打开,查找GetSystemTime函数,果然有调用。这下让我高兴了,马上用IDA的“交叉参考到” GetSystemTime功能,可看到好几个地方调用。那就配合HIEW一个个改咯,然而后面的努力……让我很失望,居然一点效果都没有!一气之下把它的OEP入口改成int 3,打开“天x”软件,然而在加载tch_initstart.arx的时候,它认为tch_initstart.arx 是无效 ARX 文件了。
阶段三:
这时我想到了OllyDbg的附加(attactch to process)功能。因为“天x”是AutoCAD的二次开发产品,所以我想可以自己手动加载:
首先,把系统时间调到2010-01-01以后
其次:打开AutoCAD,用arx把tch_initstart.arx加载
再次:它应该会弹出“软件已经过期!请……”对话框。
要是成功的话,我就在可以用OllyDbg的附加功能调试tch_initstart.arx(后面介绍)。
然而,并没有弹出“软件已经过期!请……”对话框,这肯定是之前还有东西要处理。
再次看看AutoCAD帮助,了解了它的启动过程:“如果打开文件目录下有AutoCAD三种用户可自定义的文件:acad.lsp、acaddoc.lsp 以及用于支持当前菜单的 MNL 文件,那么它会自动加载。”
我发现sys16目录下的确有acad.lsp文件,和菜单文件(非MNL文件)。
用“appload”命令直接加载acad.lsp,然而并没有正常的打开软件,命令行提示:TAsd.lsp加载失败;我在common文件夹下发现TAsd.lsp文件,再加载之。我再用“menuload”命令加载了sys16文件夹下的TCH.mnc文件。这时,我再用“arx”命令加载tch_initstart.arx成功的弹出了“软件已经过期!请……”对话框。这下好办了!
阶段四:
在阶段三中,我们知道了自己手动加载的方法!我们在自己加载tch_initstart.arx之前,一定要在用了“arx”命令的加载参数L弹出通用对话框时(这很重要),才能打开OllyDbg然后附加到acad.exe进程。我们要对user32!MesssageBoxA(W)入口下断点。至于怎么弄我不多说。
这时按F9运行,选择tch_initstart.arx加载!这时停在USER32!MessageBoxA入口处。
这时我们就要看堆栈了。此时堆栈是这样子的:

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功