CPU에서 어떤 명령이 실행되는지 어떻게 알 수 있나요?

CPU에서 어떤 명령이 실행되는지 어떻게 알 수 있나요?

어떤 CPU 명령어가 실행되고 있는지 감지할 수 있다는 것을 아는 사람이 있나요?

나는 특히 탐지에 관심이 있다AES 지침최신 Intel 및 AMD CPU로 구현되었습니다. 이러한 명령어를 감지하는 커널 모듈을 작성하는 것이 가능합니까? 아니면 CPU로 전송되는 특정 CPU 명령이 커널에서도 알려지지 않습니까?

답변1

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

사용할 수 있는 관련 성능 카운터가 없다고 생각합니다. AES 명령어에는 특이한 실행 패턴이 있습니다.5월통계적으로 식별이 가능하지만 저는 그것을 시도한 적이 없습니다. 그리고 그것은 어쨌든 일반적으로 적용 가능하지 않습니다.

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

관련 정보