이 저장소에는 FireEye Labs FLARE(Advanced Reverse Engineering) 팀에서 사용하는 IDA Pro 스크립트 및 플러그인 모음이 포함되어 있습니다.
설치하려면 이 저장소에 있는 플러그인 디렉터리의 내용을 %PROGRAMFILES%IDAplugins 폴더에 복사하세요.
여기에 있는 python 디렉터리를 %PROGRAMFILES%IDApython 폴더에 복사하거나 PYTHONPATH 환경 변수를 수정하여 디렉터리를 포함할 수 있습니다.
shellcode_hashes_search_plugin.py IDA 플러그인은 https://www.mandiant.com/blog/precalculated-string-hashes-reverse-engineering-shellcode/에 설명된 해시 검색을 구현합니다.
shellcode_hashes 디렉토리에는 제공된 데이터베이스와 함께 shellcode_hash_search.py 스크립트에 대한 데이터베이스를 생성하는 데 사용되는 스크립트가 포함되어 있습니다.
struct_typer_plugin.py 플러그인은 여기에 설명된 구조체 타이핑을 구현합니다: https://www.mandiant.com/blog/applying-function-types-structure-fields-ida/
stackstrings_plugin.py는 여기에 설명된 수동으로 생성된 문자열의 복구를 구현합니다: http://www.fireeye.com/blog/threat-research/2014/08/flare-ida-pro-script-series-automatic-recovery-of- 생성된 문자열-in-malware.html
IDA Pro용 이 스크립트는 XML 파일의 MSDN 정보를 데이터베이스에 추가합니다. 이 플러그인에 대한 정보는 https://www.fireeye.com/blog/threat-research/2014/09/flare-ida-pro-script-series-msdn-annotations-ida-pro-for-malware에서 확인할 수 있습니다. -분석.html
다음 기능이 포함되어 있습니다:
핵심요약: IDA에서 annotate_IDB_MSDN.py 를 실행하세요.
모든 파일(IDAPython 스크립트, XML 파서, MSDN 정보 XML 파일 등)은 IDA Pro에서 액세스할 수 있는 동일한 디렉터리에 있어야 합니다. IDA에서는 파일 - 스크립트 파일... (ALT + F7)을 사용하여 annotate_IDB_MSDN.py 를 엽니다. 확인을 클릭한 후 양식을 사용하여 설정을 변경하고 IDB 파일에 주석을 달 수 있습니다.
스크립트를 한 번 실행한 후 보기 - 최근 스크립트 (ALT + F9)도 사용할 수 있습니다.
이 플러그인을 사용하면 여기에 설명된 대로 간접 호출에 대한 함수 유형을 지정하거나 선택할 수 있습니다: https://www.fireeye.com/blog/threat-research/2015/04/flare_ida_pro_script.html
이 스크립트를 사용하면 기존 IDB 데이터베이스에서 함수 패턴을 쉽게 생성한 다음 FLIRT 서명으로 변환하여 새 파일에서 유사한 기능을 식별하는 데 도움을 줄 수 있습니다. 자세한 내용은 https://www.fireeye.com/blog/threat-research/2015/01/flare_ida_pro_script.html에서 확인할 수 있습니다.
이 유틸리티는 프로그램 내에서 사용되는 함수에 대한 정적 인수를 식별하는 데 도움이 될 수 있습니다. 이는 문자열 디코더 함수에 대한 인수를 추출하는 데 가장 일반적으로 사용됩니다. 사용 예는 다음에서 확인할 수 있습니다.
추가 정보가 포함된 블로그 게시물은 다음에서 확인할 수 있습니다.
https://www.fireeye.com/blog/threat-research/2015/11/flare_ida_pro_script.html
이 스크립트는 대상 Mach-O 실행 파일의 Objective-C 런타임 관련 섹션에 정의된 대로 선택기 참조와 해당 구현 간의 상호 참조를 생성합니다. 또한 구현 기능을 대신 가리키도록 선택기 참조 포인터를 패치합니다. 이를 통해 구현과 코드 전체에서 선택기가 참조되는 위치 사이의 원활한 전환이 가능해 Objective-C 코드 분석이 더 쉬워집니다. 어떤 메소드가 어떤 클래스에서 호출되고 있는지 명확하게 나타내기 위해 유용한 Objective-C 코드 주석이 objc_msgSend 변형에 대한 각 호출에 추가되었습니다.
ironstrings.py
는 코드 에뮬레이션을 사용하여 악성 코드에서 구성된 문자열(스택스트링)을 복구하는 IDAPython 스크립트입니다. 스크립트의 README에서 자세한 내용을 확인하세요.
code_grafter.py
는 IDA 데이터베이스에 코드를 접목하여 다양한 가져온 기능을 구현하고 Bochs(또는 이러한 특수 처리를 구현하지 않는 기타 에뮬레이션 도구)에서 언패커 또는 디코더를 완전히 실행할 수 있는 가능성을 높이는 IDAPython 스크립트입니다. 기능). 이렇게 하면 에뮬레이트된 실행이 VirtualAlloc
또는 lstrlenA
와 같은 기능에 도달할 때 오류가 발생하는 것을 방지할 수 있습니다.