拯救《十万个为什么》光盘
这套《十万个为什么》的光盘里装的是一套《十万个为什么》电子版的数据。由于光盘年久失修,并为了保护光驱,于是本人对该光盘进行了拯救行动。
第一回合:直接复制。由于光盘损坏较严重,又或者光盘本身有防复制措施,这个步骤失败。
第二回合:CloneCD法。CloneCD是一款工作在RAW模式的光盘复制工具。通过它,抢下了不少数据。只是每次都要加载光盘,很麻烦。
第三回合:免CD制作。这里是本文的重点。
这个免CD算是我第一个成功完成的逆向工程吧。首先想想有没有简单的方法,比如修改光盘定位文件。还就真找到一个:100kWhy.ini。文件内容:
[Path]
Application Content Directory=G:\\
试着把 G:\\
改成 . ,修改以后发现:缺文件的提示没有了,但可恶的是,在软件刚打开时的弹窗还在。
如何解决弹窗呢?只有逆向工程了。先看看这个软件是用什么做的。。。怎么是Macromedia Projector!毕竟是当年的老软件。Macromedia似乎是开发Flash那个公司,现在Flash卖给Adobe了。历史如此沧桑。。。好像扯远了。回来接着看。载入OD,bp MessageBoxA,运行,断下了。翻了一下,把几个跳转nop了,重新载入,依旧被断下。怎么会这样?
一下子陷入了中断,又研究了好一会,才发现地址上有名堂。原来是程序的一个dll调用的MessageBoxA。。。在OD里面找到了该程序释放的库文件,找到那个MessageBoxA的调用者,一通nop,保存。
然后问题又来了,这个DLL怎么加载呢?我又想到了过去lpk.dll提权与虚假ws2_32.dll禁止网络访问的技巧。似乎直接把这个DLL丢到根目录里可以使软件优先加载。抱着试一试的心态,我成功了。
试了一下,发现还是有个缺点,就是在软件真正需要报错的地方,软件不报错了。。。原来那个地方是程序所有弹窗的必经之路。。。不过这个影响不大,就这样将就了。。。
- 原文作者:ShadowMov's Blog
- 原文链接:https://shadowmov.com/posts/rescue-100kwhy-cd/
- 版权声明:本作品采用CC BY-SA 4.0. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。