自写反汇编引擎(一)——Intel指令编码

本文作者分享了编写反汇编引擎的经验,强调了学习反汇编引擎对理解机器语言和汇编语言的重要性。文章详细介绍了IA-32指令的组成部分,包括指令前缀、操作码、ModR/M、SIB等,并提供了查询和解析Intel指令的方法,为读者铺垫了编写反汇编引擎的基础知识。

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

自写反汇编引擎(一)——Intel指令编码


资料:
1.Intel指令手册
2.打造自己的反汇编引擎——Intel指令编码学习报告( https://wenku.baidu.com/view/8557a44d2b160b4e767fcf0d.html)
3.逆向工程核心原理(49.IA-32)

写在文章前的一些话:这篇文章是我编写完反汇编引擎后的有感而发,也是一种整理总结并将自己的经验分享出来。相信很多学习逆向的朋友与我一样,都会有那么一段时间去编写一个反汇编引擎以巩固自己对于机器语言与汇编语言的学习,而事实也证明这样确实能加强我们的能力。学习反汇编引擎的编写是十分有意义的,同时也是十分枯燥的,所以在此我还要说一点,那就是希望大家不要抱以一种“反正市面上已经有了许多很完善的反汇编工具”的态度来学习,因为那样你是往往不能坚持下来的。我们学习的目的不是为了学习而学习,而是去弥补自己的不足,从无到有的过程,而这样的过程有何尝不是一种对自己的锻炼?所以,加油吧!

在正式开始编写反汇编引擎之前,也是最重要的一点,那就是需要大家先学会查询IA-32指令,这是最重要的一点,如果连这一步都不会,那整个过程将无从下手。

一、IA-32指令

1、IA-32指令指IA-32(Intel Architecture 32位)系列CPU使用的指令。

2、IA-32指令的格式由6部分组成:
在这里插入图片描述
在这里插入图片描述
ModR/M = Mod + Reg/Opcode + R/M;
SIB = Scale + Index + Base

二、分析结构

(一) 指令前缀

可选项,对特定的操作码的补充说明

  • 段寄改写与分支前缀:
2E     CS 
36     SS 
3E  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值