
IDA 플러그인으로, 배치 분석, GUID 데이터베이스, 서비스 사용 통계를 통해 (U)EFI 바이너리 리버스 엔지니어링을 강화하여 펌웨어 보안 연구를 지원합니다.
__.
_ __/_ /| |
| ) | ) | |
| \ | \ | |
/ / _ / ||
/ /
_________ . ____ . . _____
/ / _ || ______ ______ | |/ _| ____ ||/ _
_ \ / / / |/ // / | < / | \ / __
/ \ /| |_ \ _ \ | | | | \ || | \ /
/ / /_/ |/ > > |____| _| /||| _ >
/ / / / / /
EFI Swiss Knife (U)EFI 리버싱을 개선하기 위한 IDA 플러그인
Copyright (C) 2016, 2017 Pedro Vilaça (fG!) - [email protected] - https://reverse.put.as
이것은 (U)EFI 바이너리 리버싱을 지원하는 IDA 플러그인입니다. Snare의 원작을 기반으로 합니다 - https://github.com/snare/ida-efiutils 저는 Python을 싫어하기 때문에 제가 원하는 몇 가지 추가 기능을 포함하여 C로 새로 작성했습니다.
IDA 6.9/6.95 Mac OS X 버전으로 테스트되었습니다.
OS X용으로 컴파일하려면 Makefile 또는 XCode 프로젝트를 사용하세요.
XCode 프로젝트를 편집하고 SDK 경로를 설정해야 합니다. (기본값은 /Applications/IDA Pro 6.95/idasdk695입니다)
config.h를 편집하고 로그 및 데이터베이스 경로를 수정해야 합니다.
EFISwissKnife.pmc64를 /Applications/IDA Pro 6.95/idaq.app/Contents/MacOS/plugins/에 복사하세요.
기본적으로 64비트 버전의 IDA용 플러그인만 컴파일됩니다. 32비트 버전용 플러그인을 원한다면 Xcode 프로젝트를 편집하고 EA64=1을 0으로 변경해야 합니다.
IDA에서 호출하려면 Shift+F2를 누른 후 다음을 실행하세요:
이 플러그인은 EFI 바이너리를 대량 분석하고 서비스 사용에 대한 통계를 수집하려는 경우 배치 모드를 지원합니다.
efi_guids.h에 있는 GUID를 업데이트하는 것이 좋습니다.
이 코드는 Mac OS X EFI 바이너리를 대상으로 합니다. 다른 플랫폼의 UEFI 바이너리에서도 문제없이 또는 약간의 수정과 업데이트만으로 작동해야 합니다.
PE 바이너리만 지원되며, TE 바이너리는 아직 지원되지 않습니다.
그게 전부입니다! 즐기세요 :-)
fG!
v1.0 - 초기 버전
IDA 버그: 또 다른 버그는 PLUGIN_UNL 플래그와 관련이 있습니다. 이 플래그는 "'run' 호출 직후 플러그인을 언로드"하는 데 사용됩니다. 이 옵션이 설정되면 Windows 버전이 충돌합니다. Mac 버전은 문제없이 작동하는 것 같습니다.