32/64位跨平台反汇编引擎BeaEngine使用简介

本文介绍了 BeaEngine 反汇编引擎的基本使用方法及常见问题解决技巧。BeaEngine 是一个跨平台的反汇编引擎,支持 i386/AMD64 架构。文章详细解释了如何配置 BeaEngine,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作 者: 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.主要结构体说明
点击图片以查看大图图片名称:	1.png查看次数:	62文件大小:	50.3 KB文件 ID :	81775
点击图片以查看大图图片名称:	2.png查看次数:	24文件大小:	52.7 KB文件 ID :	81776
名称:  3.png查看次数: 1文件大小:  20.4 KB

NOTE:对于以上字段的理解最好结合示例源代码,一目了然。
BeaEngine示例: http://beaengine.org/examples
我测试使用的32/64Bit示例代码在附件中。

5.常见问题

   * 链接错误:找不到文件"crt.lib"。如下图所示:
名称:  4.png查看次数: 1文件大小:  7.9 KB

此时打开工程属性,设置如下图即可:
点击图片以查看大图图片名称:	5.png查看次数:	22文件大小:	85.0 KB文件 ID :	81779


   * 还是链接错误,这次是找不到符号,如下图:
点击图片以查看大图图片名称:	6.png查看次数:	8文件大小:	10.1 KB文件 ID :	81780
这个错误很常见,但一不小心就会出错。这个错误主要是因为在C++ Project中使用C Library,C和C++编译出的符号格式是不一样的,在这里只需要在使用BeaEngine.h头文件的外面包一个extern "C"即可。如下图:
点击图片以查看大图图片名称:	7.png查看次数:	30文件大小:	10.8 KB文件 ID :	81781

   * 以下两个宏,使用的时候要注意,我开发的时候是用的静态库

#define BEA_ENGINE_STATIC   // 指明使用静态Lib库
#define BEA_USE_STDCALL     // 指明使用stdcall调用约定

NOTE:以上问题在使用64位BeaEngine的时候也会出现,解决方法类似。

附件下载地址*转载请注明来自看雪论坛@PEdiy.com 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值