再次轻度破解EXE文件

来源:互联网 发布:中国idc公司 知乎 编辑:程序博客网 时间:2024/04/29 10:58

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

这套完整的纪律守则,就是“交易系统”。在许多方面,它与一般的专家系统相近似。

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

如果主程序是C或Python,一般需将Eresye做成服务器,通过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、按钮 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处代码。

0 0
原创粉丝点击