CPU에서 어떤 명령이 실행되었는지 감지하는 방법은 무엇입니까?

CPU에서 어떤 명령이 실행되었는지 감지하는 방법은 무엇입니까?

어떤 CPU 명령이 실행되고 있는지 감지하는 방법을 아는 사람이 있습니까?

나는 특히 테스트에 관심이 있다AES 지침최신 Intel 및 AMD CPU로 구현됩니다. 이러한 명령어를 감지하는 커널 모듈을 작성하는 것이 가능합니까? 아니면 커널이 단순히 CPU로 전송된 특정 CPU 명령을 모르고 있습니까?

답변1

대부분의 경우 CPU는 커널을 포함하지 않고 프로세스의 명령을 실행합니다. 사용자 수준 프로세스가 트랩을 발생시키는 경우에만 커널이 잘못된 명령(여기서는 유효하지 않음)을 실행하려고 시도해야 합니다. 다양한 이유) 또는 소프트웨어 인터럽트를 호출하여. AES 명령어는 직접 실행되며 커널은 명령어가 실행되고 있다는 사실을 인식하지 못합니다.

사용할 수 있는 관련 성능 카운터가 없다고 생각합니다. AES 명령어에 비정상적인 실행 패턴이 있습니다.가능한통계적으로 식별하는 것은 가능하지만 시도해 본 적이 없으며...보통 적용되지도 않습니다.

다음과 같은 적절한 에뮬레이터를 사용해 볼 수 있습니다.상자, 또는 바이너리를 분석하여 그들이 사용하는 명령어를 결정합니다.데비안: x86-64 바이너리는 어떤 명령어를 사용하나요?후자에 대한 추가 정보가 있습니다.

관련 정보