首页
社区
课程
招聘
[原创]绝对无法识别的x86/x64机器码
发表于: 2022-1-4 16:08 11333

[原创]绝对无法识别的x86/x64机器码

2022-1-4 16:08
11333

先说结论:0f 0f 0f 0f 0f 0f是x86/x64下一定无法识别的机器码


构造原理: 我们知道0f和0f 0f都不是有效的操作码,但有可能作为操作数(最多4字节),另外0f 05也是有效的指令(syscall)。所以可以先构造出一个含有5个0f的"极限"有效x86/x64指令ff 25 0f 0f 0f 0f 0f 05,也就是

FF 25 0F 0F 0F 0F    jmp     dword ptr [0xf0f0f0f]
0F 05                syscall

FF 25 0F 0F 0F 0F    jmp     qword ptr [rip + 0xf0f0f0f]
0F 05                syscall


那么6个0f构成的机器码,x86/x64的CPU就绝对无法识别了(当然,5个0f能被识别的概率已经很低了)


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2428
活跃值: (2586)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
简单一点的方式是0F 0B,也就是ud2指令,也会引发相同的非法指令异常,不过这属于intel故意预留的非法指令。另外0F 0B也不能随便插入,因为同样可能被当作操作数。6个0f就可以随便插入,只要执行到就肯定会发生非法指令异常
2022-1-4 16:12
0
雪    币: 143
活跃值: (780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这样有什么意义············
2022-1-4 18:56
0
雪    币: 6
活跃值: (556)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
萌新同问,这有啥用啊
2022-1-11 21:56
0
雪    币: 792
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
也 有作用 吧。
2022-1-12 06:56
0
游客
登录 | 注册 方可回帖
返回
//