PEiD 및 기타 도구가 컴파일러 유형을 어떻게 감지합니까? 탐지 프로세스가 동적 일 수 있습니까? 그리고 어떻게? PE 파일 처리 대신 다른 절차가 있습니까?컴파일러 탐지 방법은 무엇입니까?
0
A
답변
0
0
PEiD가 어떻게 작동하는지 완전히 알지 못하는 반면, 나는 이것을 달성하는 다양한 방법이 있다고 생각합니다. 특히 생성 된 코드에서 다양한 "지문"을 찾고 싶습니다. 예를 들어, 컴파일러가 바이너리에서 알려진 문자열을 처리하는 방법 (C에서와 같이 끝이 없거나 파스칼에서와 같이 텍스트 앞에 길이 값이있는 경우) 또는 함수에 대해 스택 프레임을 설정하는 방법 그런 다음 공통 코드 구문을 찾고, 루프, 조건부 또는 메인 함수를 호출하기 전에 런타임 설정과 같은 특정 구조를 처리하는 방법을 찾습니다. 또 다른 접근법은 사용 된 런타임에 대한 통찰력을 제공 할 수있는 가져 오기 및 종속성을 살펴 보는 것입니다.
물론 가장 쉬운 방법은 실제로 코드를 전혀 보지 않고 이진 파일에 남아있는 메타 데이터를 확인하는 것입니다. 종종 모든 종류의 메타 데이터와 정확한 컴파일러와 컴파일을 위해 사용 된 버전을 정확하게 보여줄 수있는 주석을위한 섹션이 있습니다. 이것들은 쉽게 스푸핑 될 수 있지만, 좋은 탐지기는이를 고려하여 단서를위한 실제 코드를 살펴 봅니다.
내가 아는 것은 HLL을 LLL에 매핑하는 데 사용되는 컴파일러에 따라 다양한 방법이 있으며, 특히 루프를 컴파일 할 때 등이 있습니다. 이들은 하나의 컴파일러를 다른 컴파일러와 다름. 예를 들어 실행 파일에 CRT 라이브러리가 필요한 경우 MSVC++로 컴파일되었는지 확인하십시오. – Aan