请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

梦织未来

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 97|回复: 6

[交流] 有没有修改汇编指令含义的方法,比如修改0x55(push ebp)的含义为0xCC(int 3)

[复制链接]

升级   4%

1

主题

0

精华

2

积分
发表于 2018-2-10 11:47:12 | 显示全部楼层 |阅读模式
本帖最后由 HJonny 于 2018-2-10 11:54 编辑

最近调试程序遇到一个问题,极其猥琐,检测了各种断点,不好解决,忽然想到一个问题:
CPU是如何执行汇编指令的?
为什么0x55要对应 push ebp?
为什么0x33C0 要对应 xor eax,eax?

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

使用道具 举报

升级   4%

1

主题

0

精华

2

积分
 楼主| 发表于 2018-2-10 11:55:54 | 显示全部楼层
@mengwuji 邀请大佬
回复 支持 反对

使用道具 举报

升级   8.67%

47

主题

0

精华

226

积分
发表于 2018-2-10 14:05:44 | 显示全部楼层
0x55 = 1010101  = 通电断电通电断电通电断电通电
回复 支持 反对

使用道具 举报

升级   40%

13

主题

0

精华

110

积分
发表于 2018-2-10 16:02:41 | 显示全部楼层
1. VT指令级HOOK
2. 自制CPU
回复 支持 反对

使用道具 举报

升级   4%

1

主题

0

精华

2

积分
 楼主| 发表于 2018-2-10 21:30:36 | 显示全部楼层
Chameleon 发表于 2018-2-10 16:02
1. VT指令级HOOK
2. 自制CPU

知道VT是可以的,但是AMD 架构的CPU不可以用VT啊。
回复 支持 反对

使用道具 举报

升级   40%

13

主题

0

精华

110

积分
发表于 2018-2-10 23:13:18 | 显示全部楼层
HJonny 发表于 2018-2-10 21:30
知道VT是可以的,但是AMD 架构的CPU不可以用VT啊。

AMD-V AMD-V AMD-V
回复 支持 反对

使用道具 举报

升级   4%

1

主题

0

精华

2

积分
 楼主| 发表于 2018-2-11 16:33:06 | 显示全部楼层

啊,忘了这个东西,多谢提醒
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|mengwuji ( 粤ICP备13060035号-1 )  

GMT+8, 2018-2-20 05:55 , Processed in 0.309140 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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