欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

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

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

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的时候也会出现,解决方法类似。
BeaEngineDemo.zip

上传的附件 1.png
2.png
3.png
4.png
5.png
6.png
7.png
BeaEngineDemo.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功