Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ida-efiutils — IDA Pro용 스크립트 모음으로, EFI 바이너리 리버스 엔지니어링을 지원합니다. | Kitploit
도구/GitHubGitHub/snare/ida-efiutils
Embedded Systems SecurityReverse EngineeringHardware & IoT SecurityBinary AnalysisFirmware Analysis
GitHubsnare/ida-efiutils

ida-efiutils

IDA Pro용 스크립트 모음으로, EFI 바이너리 리버스 엔지니어링을 지원합니다.

저장소 보기
309667년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

IDA Pro용 EFI 스크립트

EFI 실행 파일의 리버스 엔지니어링을 돕기 위한 몇 가지 IDA 스크립트입니다.

이 패키지에는 다음 파일이 포함되어 있습니다:

  1. efiutils.py - 몇 가지 헬퍼 함수가 포함된 IDAPython 모듈

  2. efiguids.py - EFI 프로토콜용 알려진 GUID 모음

  3. efiguids_ami.py - AMI BIOS에서 사용되는 프로토콜용 알려진 GUID 모음

  4. behemoth.h - EFI용 타입 및 구조체 정의 모음이 포함된 대형 헤더

  5. structs.idc - 일부 구조체 정의가 포함된 IDC 스크립트(behemoth.h로 대체됨)

  6. te_image.bt - TE 바이너리 이미지용 010 Editor 템플릿

  7. te_loader.py - TE 바이너리 이미지용 IDA Pro 로더 스크립트

IDA 스크립팅은 이번이 처음이라, 혹시 이미 있는 것을 다시 만들었거나 어리석은 짓을 했다면 너그럽게 봐주시고 알려주시기 바랍니다.

함수

주요 유용한 함수는 아래에 설명되어 있습니다. 다른 함수에 대한 자세한 내용은 코드와 docstring을 참조하세요.

rename_tables()

바이너리의 첫 번째 엔트리 포인트를 찾아 엔트리 포인트 함수에 전달된 매개변수를 추적하고, 핵심 EFI 테이블이 저장된 전역 변수의 이름을 바꾸려고 시도합니다. 다음 이름 변경 작업이 수행됩니다:

  1. ImageHandle이 저장되는 전역 변수는 gImageHandle로 이름이 바뀝니다.

  2. SystemTable이 저장되는 전역 변수는 gSystemTable로 이름이 바뀝니다.

  3. SystemTable->BootServices가 저장되는 전역 변수는 gBootServices로 이름이 바뀝니다.

  4. SystemTable->RuntimeServices가 저장되는 전역 변수는 gRuntimeServices로 이름이 바뀝니다.

대부분의 실행 파일은 엔트리 포인트 또는 엔트리 포인트에서 호출되는 함수에서 테이블 참조를 복사하므로, 호출 명령은 한 단계 깊이까지만 추적됩니다. 필요한 경우 MAX_STACK_DEPTH를 변경하세요.

update_structs()

위에서 이름이 바뀐 테이블에 대한 크로스 레퍼런스를 찾아 해당 구조체의 구조체 오프셋이 되도록 이름을 업데이트합니다. rename_tables()가 실패한 경우 이 기능이 제대로 작동하려면 위와 같이 수동으로 이름을 변경해야 합니다.

예를 들어:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

다음과 같이 바뀝니다:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

데이터 세그먼트에서 GUID를 찾아 이름을 바꿉니다. TianoCore 소스에서 470개의 프로토콜 GUID가 추출되었으며, 독점적인 Apple(및 기타 벤더) GUID는 발견되는 대로 추가됩니다.

go()

위의 모든 작업을 수행하는 편의 메서드입니다.

사용법

  1. IDA Pro에서 EFI 바이너리를 로드합니다.

  2. 필요한 데이터 구조체를 정의하려면 behemoth.h를 가져옵니다.

  3. 로컬 타입의 구조체를 IDB에 추가합니다.

  4. efiutils.py를 실행하여 python의 경로에 추가합니다(또는 다른 방법으로 수행).

  5. 코드/docstring을 살펴보되, 아마도 다음과 같이 하면 됩니다:

    root@kitploit:~
     import efiutils; efiutils.go()
    

te_loader.py TE 이미지 로더를 사용하려면 다른 로더와 마찬가지로 설치하세요. OS X에서는 idaq.app/Contents/MacOS/loaders/의 loaders 폴더 안에 복사하거나 심볼릭 링크를 만들어 설치합니다.

도구 다운로드