再次轻度破解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处代码。