
Alguém sabe que posso detectar quais instruções da CPU estão sendo executadas?
Estou especialmente interessado em detectarInstruções AESimplementado por CPUs Intel e AMD recentes. Seria possível escrever um módulo do kernel que detectasse essas instruções? Ou as instruções específicas da CPU enviadas à CPU nem são conhecidas pelo kernel?
Responder1
Na maioria das vezes, as CPUs executam as instruções dos processos sem envolver o kernel; o kernel só precisa intervir se um processo no nível do usuário causar uma armadilha, seja pela tentativa de executar uma instrução inválida (inválida aqui por vários motivos) ou pela invocação de uma interrupção de software. As instruções AES são executadas diretamente e o kernel não sabe que estão sendo executadas.
Não acho que existam contadores de desempenho relacionados que você possa usar. As instruções AES possuem um padrão de execução incomum quepoderiaser identificável estatisticamente, mas nunca tentei isso... E isso geralmente não é aplicável.
Você pode tentar usar um emulador adequadamente instrumentado, comoBochs, ou analise binários para determinar as instruções que eles usam -Debian: quais instruções os binários x86-64 usam?tem mais informações sobre este último.