获取非法指令异常的最简单方法

时间:2014-02-24 11:44:34

标签: assembly x86 x86-64

我正在尝试创建一个程序,为演示目的生成非法指令异常。

我的问题似乎有一个简单的解决方案:

cmpxchgl %edx, %ecx

但是编译器(FASM)不想在运行时给我一个异常,而是不想编译代码。它说“非法指令”(这可能是对的,以前很警告我。)

获取非法指令例外的任何解决方案对我来说都没问题,所以你可以

a)指向另一个简单编译代码的编译器

b)为我的命令应用解决方法

c)提出一个完全不同的命令(应该很简单,首选oneliners)

2 个答案:

答案 0 :(得分:7)

简单:ud20F 0B

它的全部目的是引发无效的操作码异常。

答案 1 :(得分:1)

您可以从指令集参考中自行查找机器代码。 我已经为你做了,cmpxchgl %edx, %ecx0x0F 0xB1 0xCA。只需将它们添加到代码中DB.byte或编译器支持的任何内容。

顺便说一下,GAS一言不发地组装起来。