Pharos 정적 이진 분석 프레임 워크는 Carnegie Mellon University의 소프트웨어 엔지니어링 연구소의 프로젝트입니다. 이 프레임 워크는 이진 프로그램의 자동화 된 분석을 용이하게하도록 설계되었습니다. Lawrence Livermore National Laboratory에서 개발 한 Rose Compiler Infrastructure를 사용하여 분해, 제어 흐름 분석, 교육 시맨틱 등을 사용합니다. 이 소프트웨어는 BSD 라이센스에 따라 해제됩니다.
현재 분포는 이전 버전에 대한 상당한 업데이트이며 Ooanalyzer 도구, 실험 경로 분석 코드, 파티셔너 개선, 멀티 스레딩 및 기타 많은 작은 기능을 포함한 다양한 기능을 추가합니다.
Pharos 프레임 워크는 연구 프로젝트이며 코드는 활발한 개발을 진행하고 있습니다. 모든 목적에 대한 피트니스 보증은 제공되지 않습니다. 이 릴리스는 빌드 지침, 단위 테스트 및 일부 문서를 제공하지만 많은 작업이 수행되어야합니다. 우리는 몇 가지 선택된 빌드 구성을 테스트했지만 소스 코드의 휴대 성을 적극적으로 테스트하지는 않았습니다. 자세한 내용은 설치 지침을 참조하십시오.
이 코드를 출시하기위한 주요 목표는 우리의 연구에 투명성을 제공하고 다른 바이너리 정적 분석 연구원들과의 대화를 자극하는 것이므로,이 작업에 대한 질문이있는 Cory Cohen [email protected]에 문의하십시오. 적시에 응답 할 수는 없지만 최선을 다하겠습니다.
Apianalyzer는 지정된 데이터 및 제어 관계와 함께 일련의 API 호출을 찾는 도구입니다. 이 기능은 파일 열기, 쓰기 및 폐쇄와 같은 일반적인 운영 체제 상호 작용 패러다임을 감지하는 데 사용됩니다.
Ooanalyzer는 객체 지향적 구조물의 분석 및 복구를위한 도구입니다. 이 도구는 2018 년 컴퓨터 및 통신 보안에 관한 ACM 컨퍼런스에 게시 된 "컴파일 된 실행 파일에서 C ++ 클래스 및 메소드를 복구하기 위해 로직 프로그래밍 사용"이라는 제목의 논문의 주제입니다. 이 도구의 이전 구현은 "objdigger"로 명명되었지만 객체 속성을 복구하기 위해 Prolog 규칙을 사용하여 실질적인 재 설계를 반영하도록 이름이 바뀌 었습니다. 이 도구의 현재 버전은 Microsoft Visual C ++에서 컴파일 된 32 비트 X86 실행 파일의 분석 만 지원합니다. 매우 큰 실행 파이브에서 Ooanalyzer를 실행하는 방법에 대한 자세한 내용은이 노트를 참조하십시오.
Pharos 배포는 Ooanalayzer가 GHIDRA 리버스 엔지니어링 도구 세트로 내보낸 OO 정보를 가져온 플러그인을 포함하는 데 사용되었습니다. 그 기능을 지금 그리고 앞으로 얻으려면 ooanalayzer 플러그인에서 제공 한 기능이 포함 된 Kaiju Ghidra 플러그인을 설치하십시오.
Callanalyzer는 이진 프로그램에서 정적 매개 변수를 API 호출에보고하는 도구입니다. 프로그램의 코드에 대한 유용한 분석을 제공하지만 현재 호출 규칙, 매개 변수 분석 및 유형 감지 기능의 시연입니다.
FN2YARA는 실행 가능한 프로그램에서 기능을 일치시키기위한 YARA 서명을 생성하는 도구입니다. 상당수의 기능을 공유하는 프로그램은 공통적으로 행동을 가질 수 있습니다.
FN2HASH는 실행 가능한 프로그램에서 기능에 대한 다양한 해시 및 기타 설명 속성을 생성하기위한 도구입니다. FN2YARA와 마찬가지로 이진 유사성 분석을 지원하거나 기계 학습 알고리즘의 기능을 제공하는 데 사용할 수 있습니다.
Dumpmasm은 Pharos 프레임 워크를 사용하여 다른 도구와 동일한 스타일로 실행 파일에서 분해 할 수있는 목록을 덤프하는 도구입니다. 적극적으로 유지되지 않았으며 대신 http://rosecompiler.org/rose_html_reference/rosetools.html을 대신 Rose의 표준 재귀 유효 기립식 사용을 고려해야합니다.