作 者: stanford
时 间: 2013-08-15,23:29:45
链 接: http://bbs.pediy.com/showthread.php?t=177301
1.Preface
最近在写一个ARK工具(完成之后会开源,且保证不是半成品),不可避免的会用到反汇编引擎,因为要同时支持32/64-Bit平台,所以找到了一个同时支持i386/AMD64且跨平台的反汇编引擎BeaEngine。选择BeaEngine的一个主要原因是因为Hopper Disassembler也使用它,同时加上自己对其他一些反汇编引擎的测试,在实际开发ARK的过程中BeaEngine的效果非常棒。国内资料比较少,主要资料来自于BeaEngine的官方网站:http://beaengine.org,不过都是英文的,在这里翻译并整理一个简单的使用教程,测试代码在附件中。并且将我使用过程中遇到的一些问题罗列出来,以供参考。
2.References
* http://beaengine.org
3.使用配置
参考附件的源代码。
4.主要结构体说明
NOTE:对于以上字段的理解最好结合示例源代码,一目了然。
BeaEngine示例: http://beaengine.org/examples
我测试使用的32/64Bit示例代码在附件中。
5.常见问题
* 链接错误:找不到文件"crt.lib"。如下图所示:
此时打开工程属性,设置如下图即可:
* 还是链接错误,这次是找不到符号,如下图:
这个错误很常见,但一不小心就会出错。这个错误主要是因为在C++ Project中使用C Library,C和C++编译出的符号格式是不一样的,在这里只需要在使用BeaEngine.h头文件的外面包一个extern "C"即可。如下图:
* 以下两个宏,使用的时候要注意,我开发的时候是用的静态库
#define BEA_ENGINE_STATIC // 指明使用静态Lib库
#define BEA_USE_STDCALL // 指明使用stdcall调用约定
时 间: 2013-08-15,23:29:45
链 接: http://bbs.pediy.com/showthread.php?t=177301
1.Preface
最近在写一个ARK工具(完成之后会开源,且保证不是半成品),不可避免的会用到反汇编引擎,因为要同时支持32/64-Bit平台,所以找到了一个同时支持i386/AMD64且跨平台的反汇编引擎BeaEngine。选择BeaEngine的一个主要原因是因为Hopper Disassembler也使用它,同时加上自己对其他一些反汇编引擎的测试,在实际开发ARK的过程中BeaEngine的效果非常棒。国内资料比较少,主要资料来自于BeaEngine的官方网站:http://beaengine.org,不过都是英文的,在这里翻译并整理一个简单的使用教程,测试代码在附件中。并且将我使用过程中遇到的一些问题罗列出来,以供参考。
2.References
* http://beaengine.org
3.使用配置
参考附件的源代码。
4.主要结构体说明
NOTE:对于以上字段的理解最好结合示例源代码,一目了然。
BeaEngine示例: http://beaengine.org/examples
我测试使用的32/64Bit示例代码在附件中。
5.常见问题
* 链接错误:找不到文件"crt.lib"。如下图所示:
此时打开工程属性,设置如下图即可:
* 还是链接错误,这次是找不到符号,如下图:
这个错误很常见,但一不小心就会出错。这个错误主要是因为在C++ Project中使用C Library,C和C++编译出的符号格式是不一样的,在这里只需要在使用BeaEngine.h头文件的外面包一个extern "C"即可。如下图:
* 以下两个宏,使用的时候要注意,我开发的时候是用的静态库
#define BEA_ENGINE_STATIC // 指明使用静态Lib库
#define BEA_USE_STDCALL // 指明使用stdcall调用约定
NOTE:以上问题在使用64位BeaEngine的时候也会出现,解决方法类似。
附件下载地址*转载请注明来自看雪论坛@PEdiy.com