龙马谷

 找回密码
 立即注册

QQ登录

只需一步,快速开始

龙马谷VIP会员办理客服QQ:82926983(如果临时会话没有收到回复,请先加QQ好友再发。)
1 [已完结] GG修改器新手入门与实战教程 31课 2 [已完结] GG修改器美化修改教程 6课 3 [已完结] GG修改器Lua脚本新手入门教程 12课
4 [已完结] 触动精灵脚本新手入门必学教程 22课 5 [已完结] 手游自动化脚本入门实战教程 9课 6 [已完结] C++射击游戏方框骨骼透视与自瞄教程 27课
7 [已完结] C++零基础UE4逆向开发FPS透视自瞄教程 29课 8 [已完结] C++零基础大漠模拟器手游自动化辅助教程 22课 9 [已完结] C++零基础开发DXF内存脚本辅助教程 32课
以下是天马阁VIP教程,本站与天马阁合作,赞助VIP可以获得天马阁对应VIP会员,名额有限! 点击进入天马阁论坛
1 [已完结] x64CE与x64dbg入门基础教程 7课 2 [已完结] x64汇编语言基础教程 16课 3 [已完结] x64辅助入门基础教程 9课
4 [已完结] C++x64内存辅助实战技术教程 149课 5 [已完结] C++x64内存检测与过检测技术教程 10课 6 [已完结] C+x64二叉树分析遍历与LUA自动登陆教程 19课
7 [已完结] C++BT功能原理与x64实战教程 29课 8 [已完结] C+FPS框透视与自瞄x64实现原理及防护思路
查看: 4423|回复: 1

C++调用反汇编引擎BeaEngine, capstone与汇编引擎keystone、XEDParse

[复制链接]

4

主题

0

回帖

6

积分

编程入门

Rank: 1

龙马币
18
月光小丫头 | 显示全部楼层 |阅读模式

C++调用反汇编引擎BeaEngine, capstone与汇编引擎keystone、XEDParse

调用XEDParse:
  1. // XEDParse.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"

  4. //1. 导入头文件
  5. #include "XEDParse/XEDParse.h"

  6. #ifdef _WIN64
  7. #pragma comment (lib,"XEDParse/x64/XEDParse_x64.lib")
  8. #else
  9. #pragma comment (lib,"XEDParse/x86/XEDParse_x86.lib")
  10. #endif // _WIN64

  11. // 打印opcode
  12. void printOpcode(const unsigned char* pOpcode , int nSize)
  13. {
  14.     for(int i = 0; i < nSize ; ++i)
  15.     {
  16.         printf("%02X " , pOpcode[ i ]);
  17.     }
  18. }

  19. int _tmain(int argc, _TCHAR* argv[])
  20. {

  21.     XEDPARSE xed = { 0 };

  22.     printf("地址:");

  23.     // 接受生成opcode的的初始地址
  24.     scanf_s( "%x" , &xed.cip );
  25.     getchar( );

  26.     do
  27.     {
  28.         // 接收指令
  29.         printf( "指令:" );
  30.         gets_s(xed.instr , XEDPARSE_MAXBUFSIZE);

  31.         // xed.cip, 汇编带有跳转偏移的指令时,需要配置这个字段
  32.         if(XEDPARSE_OK != XEDParseAssemble(&xed))
  33.         {
  34.             printf("指令错误:%s\n" , xed.error);
  35.             continue;
  36.         }

  37.         // 打印汇编指令所生成的opcode
  38.         printf("%08X : " , xed.cip );
  39.         printOpcode(xed.dest , xed.dest_size);
  40.         printf("\n");

  41.         // 将地址增加到下一条指令的首地址
  42.         xed.cip += xed.dest_size;
  43.     } while(*xed.instr);


  44.     return 0;
  45. }
复制代码

游客,如果您要查看本帖隐藏内容请回复

0

主题

25

回帖

908

积分

白金VIP会员(3年)

Rank: 12Rank: 12Rank: 12

龙马币
8830
QQ
黄福寿 | 显示全部楼层
学习学习!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

龙马谷| C/C++辅助教程| 安卓逆向安全| 论坛导航| 免责申明|Archiver|
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表龙马谷立场!
任何人不得以任何方式翻录、盗版或出售本站视频,一经发现我们将追究其相关责任!
我们一直在努力成为最好的编程论坛!
Copyright© 2018-2021 All Right Reserved.
在线客服
快速回复 返回顶部 返回列表