再次轻度破解EXE文件

在经历股市多年的大起大落、大赚大赔之后。痛定思痛。深切感到在金融市场拼搏。必须建立健全交易纪律守则,严格运行。

这套完整的纪律守则,就是“交易系统”。

在很多方面,它与一般的专家系统相近似。

专家系统的最佳开发工具,是Erlang下的Eresye。它的缺点是。其它语言如C、Python对它的调用不方便。

假设主程序是C或Python,一般需将Eresye做成server。通过sockets通讯调用,比較麻烦。

在简单有用方面,Prolog是第二佳的开发工具。

假设仅仅採用其推理机功能,Visual Prolog 也是不错的选择。


我用的是Visual Prolog 5.2。


这是个免费软件,其编译的EXE、DLL文件执行之始,会弹出一个窗体:

为了不显示这个窗体,我先后试过几次,在5.0、5.1和旧版5.2下均获成功。

第一次的破解,是在Win98下用动态跟踪工具(忘记了名字),无休无眠地追了22个小时,找到关键分支点,绕过了窗体弹出指令。

上一次的破解,是在Win2000下用个静态分析工具(好像叫exescope。记不清了),看到exe文件里有两个函数调用。一个好像是openwindow,还有一个好像是closewindow,以及相相应的机器码指令。然后。在ultraEdit里,用CloseWindow的机器码。覆盖OpenWindow的机器码。于是。任务完毕。

这都多年前的事情。详细细节已记不清。

第一次的动态跟踪,事后曾写过篇幅庞大、十分具体的操作过程记录。但不知何故后来丢失,可惜。

以后的破解过程,都没做记录。

这次破解,仅仅好又一次開始,摸索前行。

一、准备工具

用google、baidu等,以“静态查看EXE"等句子搜索,找到几个软件,试过后,确定用PEbrowse。

又搜到机器码编辑器010Editor,工具备齐了(UltraEdit 为了收费会自己主动罢工,等等。非常讨厌,好多年不再用它)。

二、准备目标文件

用Visual Prolog 自己主动生成并编译一个空白项目,比方 learn01.exe。


三、使用PEbrowse

1、打开目标文件learn01.exe

2、展开左栏的Sections

3、双击当中的对象.text。右栏出现反汇编的代码

4、Ctrl-F键,搜索”messagebox“,找到:
0x44329F: FF1560044900           CALL        DWORD PTR [USER32.DLL!MessageBoxA]; (0x490460)

5、记住机器码:FF1560044900

6、Ctrl-F键,搜索”destroywindow“,找到:
0x431D7E: FF153C034900           CALL        DWORD PTR [USER32.DLL!DestroyWindow]; (0x49033C)

7、记住机器码:FF153C034900

8、关闭 PEbrowse。

四、使用 010Editor

1、打开目标文件learn01.exe

2、Ctrl-F键。打开Find窗体

      在 Type 下拉框选择 Hex Bytes (H)

      在 Value 文本框填入 FF1560044900

3、button Find All,会在编辑器中找到第一处的 FF1560044900

4、按键 F3 共计3次,定位于第4处 FF1560044900

5、把 FF1560044900 改为 FF153C034900

6、保存文件learn01.exe

7、执行learn01.exe,提示窗体Attention不再弹出。

注意!

确定第4处机器码,是逐次实验的结果。即:第1处 FF1560044900 改为 FF153C034900后。存盘。并执行。未达标,则恢复第1处代码,再改动第2处代码,存盘执行,……直至改动第4处代码。

原文地址:https://www.cnblogs.com/blfshiye/p/5224673.html