您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: