如何检测CPU上执行了哪些指令?

如何检测CPU上执行了哪些指令?

有谁知道我可以检测哪些CPU指令正在执行?

我对检测特别感兴趣AES指令由最新的 Intel 和 AMD CPU 实现。是否可以编写一个检测这些指令的内核模块?或者内核根本不知道发送到CPU的具体CPU指令?

答案1

大多数时候,CPU 执行进程的指令而不涉及内核;仅当用户级进程导致陷阱时,内核才需要介入,要么尝试执行无效指令(此处无效,涵盖多种原因),要么调用软件中断。 AES 指令直接执行,内核不知道它们正在被执行。

我认为您也没有可以使用的任何相关性能计数器。 AES 指令有一个不寻常的执行模式可能可以通过统计来识别,但我从未尝试过......而且这通常不适用。

您可以尝试使用适当的模拟器,例如博克斯,或分析二进制文件以确定它们使用的指令 -Debian:x86-64 二进制文件使用哪些指令?有关于后者的更多信息。

相关内容