32/64位跨平台反汇编引擎BeaEngine使用简介
2015-07-17 18:11
302 查看
作 者: 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调用约定
NOTE:以上问题在使用64位BeaEngine的时候也会出现,解决方法类似。
附件下载地址*转载请注明来自看雪论坛@PEdiy.com
时 间: 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
相关文章推荐
- Adapter Pattern
- svn常用命令集合
- JavaScript、SSH知识点整理
- Mac 快捷键整理
- 网络请求传参数的问题
- start and end call use itelephony and how to pick up a call
- Android popwindow和fragment结合 左侧弹出下拉菜单 切换界面
- C. Soldier and Cards
- hdu 2102 A计划
- 使用charles来抓取手机App的网络包
- 比较全局变量、全局静态变量、局部变量、局部静态变量的区别
- Error occurred = Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit enti
- µVision中的Key Sequence 中文
- maven项目转eclipse工程的命令:eclipse.bat
- select、poll、epoll之间的区别总结
- 模态和非模态对话框
- NSPredicate的用法
- broadcom sdk 相关文章
- database - 数据库设计/使用容易忽略的细节
- android开发