一个小巧的反汇编引擎

简介:

    从内核反汇编hook中截取的反汇编代码,非常小巧:

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
//#include <windows.h>
#include "libdasm.h"

typedef unsigned char byte;
byte bin[] = {0x55,0x89,0xE5,0x83,0xEC,0x08,0xC7,0x04,\
				0x24,0x01,0x00,0x00,0x00,0xFF,0x15,0xDC,\
				0x40,0x40,0x00,0xE8,0x88,0xFF,0xFF,0xFF};

#define SZINST_MAX 128

int main(void)
{
	INSTRUCTION inst;
	char szinst[SZINST_MAX];
	byte *pbin = bin;
	byte *offset = (byte*)0x401220;
	do
	{
		int ret0 = get_instruction(&inst,pbin,MODE_32);
		pbin += ret0;
		if(!get_instruction_string(&inst,FORMAT_INTEL,\
			(DWORD)offset,szinst,sizeof(szinst)))
		{
			puts("err : can't to string???");
		}
		offset += ret0;
		printf("code is :: %s\n",szinst);
	}while(pbin < bin+sizeof(bin));
	
	getchar();
	return 0;
}


输出:
code is :: push ebp
code is :: mov ebp,esp
code is :: sub esp,0x8
code is :: mov dword [esp],0x1
code is :: call [0x4040dc]
code is :: call 0x4011c0
相关文章
|
7月前
|
安全
10.5 认识XEDParse汇编引擎
XEDParse 是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指令,从而更容易地确定一段程序的指令集。XEDParse库可以集成到许多不同的应用程序和工具中,因此被广泛应用于反汇编、逆向工程、漏洞分析和入侵检测等领域。XEDParse 引擎非常易于使用,读者在使用时只需要通过`XEDPARSE xed = { 0 };`定义一个结构,并通过向`xed.cip`内输送一条汇编指令,当调用`XEDParseAssemble(
49 0
10.5 认识XEDParse汇编引擎
|
7月前
|
存储 安全 API
10.4 认识Capstone反汇编引擎
Capstone 是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone 的特点是快速、轻量级、易于使用,它可以良好地处理各种类型的指令,支持将指令转换成AT&T汇编语法或Intel汇编语法等多种格式。Capstone的库可以集成到许多不同的应用程序和工具中,因此被广泛应用于反汇编、逆向工程、漏洞分析和入侵检测等领域,著名的比如IDA Pro、Ghidra、Hopper Disassembler等调试器都在使用该引擎。
112 0
10.4 认识Capstone反汇编引擎
|
7天前
|
存储 编译器
C51汇编程序
C51汇编程序
12 5
|
12月前
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
92 0
|
12月前
|
C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
|
12月前
|
编译器 C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
12月前
|
存储 自然语言处理 程序员
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
程序员 芯片 流计算
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
87 0
MOTOROLA MVME 162-01 直接用汇编语言编程的计算机程序
|
存储 API C语言
从反汇编看恶意程序的C语言结构(二)
从反汇编看恶意程序的C语言结构
96 0
|
编译器 API 分布式数据库
从反汇编看恶意程序的C语言结构(一)
从反汇编看恶意程序的C语言结构
117 0