找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4235|回复: 3

有没有修改汇编指令含义的方法,比如修改0x55的含义为0XCC

[复制链接]

5

主题

53

回帖

0

精华

铜牌会员

积分
66
发表于 2018-2-11 16:33:24 | 显示全部楼层 |阅读模式
最近调试程序遇到一个问题,极其猥琐,检测了各种断点,不好解决,忽然想到一个问题:
CPU是如何执行汇编指令的?
为什么0x55要对应 push ebp?
为什么0x33C0 要对应 xor eax,eax?

那么有没有一种可能性,让我们可以修改机器码的含义
把原本0x55(push ebp)的机器码含义修改成0xcc(int3),这样就可以在避免修改主模块的情况下设置断点了。
带着这个问题,各种搜啊,似乎没有人研究过这个问题,所以把问题抛到这来了,欢迎大家讨undefined

0

主题

9

回帖

0

精华

初来乍到

积分
9
发表于 2018-2-18 13:35:23 | 显示全部楼层
https://wiki.osdev.org/X86-64_Instruction_Encoding

28

主题

116

回帖

0

精华

铜牌会员

积分
273
发表于 2018-5-7 00:36:25 | 显示全部楼层
LZ自己去发明个CPU就可以了,呵呵。

12

主题

144

回帖

0

精华

铜牌会员

积分
281
发表于 2018-8-7 16:02:17 | 显示全部楼层
用EPT,读一套执行一套。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表