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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
e9patch — 강력한 정적 바이너리 재작성 도구 | Kitploit
도구/GitHubGitHub/gjduck/e9patch
Reverse EngineeringFuzzingBinary AnalysisBinary Exploitation
GitHubgjduck/e9patch

e9patch

강력한 정적 바이너리 재작성 도구

저장소 보기
1.1k70472개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

  E9Patch - 강력한 정적 바이너리 재작성 도구

E9Patch는 x86_64 Linux ELF 바이너리를 위한 강력한 정적 바이너리 재작성 도구입니다. E9Patch는 다음과 같은 특징을 가집니다:

  • 확장 가능: E9Patch는 웹 브라우저(>100MB 크기)를 포함한 크고 복잡한 바이너리를 안정적으로 재작성할 수 있습니다.
  • 호환성: 재작성된 바이너리는 원본을 대체하여 사용할 수 있으며, 추가 종속성이 없습니다.
  • 빠름: E9Patch는 대부분의 바이너리를 몇 초 안에 재작성할 수 있습니다.
  • 낮은 오버헤드: 성능과 메모리 모두에서 오버헤드가 낮습니다.
  • 프로그래밍 가능: E9Patch는 다른 프로젝트에 쉽게 통합될 수 있도록 설계되었습니다. 자세한 내용은 E9Tool 사용자 가이드 및 E9Patch 프로그래머 가이드를 참조하십시오.

정적 바이너리 재작성은 입력 바이너리(ELF 실행 파일 또는 공유 객체)를 받아 패치/수정이 적용된 출력 바이너리를 생성합니다. 패치된 바이너리는 원본을 대체하여 사용할 수 있습니다.

릴리스

사전 빌드된 E9Patch 바이너리는 여기에서 다운로드할 수 있습니다:

  • https://github.com/GJDuck/e9patch/releases

빌드

E9Patch를 빌드하는 것은 매우 쉽습니다: build.sh 스크립트를 실행하기만 하면 됩니다.

그러면 두 가지 도구가 자동으로 빌드됩니다:

  1. e9patch: 바이너리 재작성 백엔드
  2. e9tool: E9Patch용 선형 디스어셈블리 프론트엔드

사용 예시

E9Patch는 E9Tool 프론트엔드를 통해 사용할 수 있습니다.

예를 들어, xterm의 모든 xor 명령어에 명령어 출력 계측을 추가하려면 다음 명령을 사용할 수 있습니다:

root@kitploit:~
    $ ./e9tool -M 'asm=/xor.*/' -P print xterm

이렇게 하면 수정된 버전의 xterm이 생성되어 a.out 파일에 기록됩니다.

수정된 xterm은 정상적으로 실행되지만, 실행된 각 xor 명령어의 어셈블리 문자열을 stderr로 출력합니다:

root@kitploit:~
    $ ./a.out
    xorl %ebp, %ebp
    xorl %ebx, %ebx
    xorl %eax, %eax
    xorl %edx, %edx
    xorl %edi, %edi
    ...

지원되는 옵션 및 모드의 전체 목록을 보려면:

root@kitploit:~
    $ ./e9tool --help

프로젝트

E9Patch를 사용하는 다른 프로젝트는 다음과 같습니다:

  • RedFat: 저지방 포인터 기반 바이너리 하드닝 시스템.
  • E9AFL: 바이너리에 AFL 계측 자동 삽입.
  • E9Syscall: libc.so의 정적 바이너리 재작성을 이용한 시스템 호출 차단.
  • Hopper: 라이브러리를 위한 자동 퍼징 테스트 케이스 생성.
  • EnvFuzz: 프로그램 환경 퍼징.
  • RFF: 동시성 테스트를 위한 그레이박스 퍼징.
  • AutoTrace: 간단한 소스 라인 기반 추적.

문서

E9Patch는 다른 프로젝트에 통합 가능하도록 설계된 저수준 도구입니다. 자세한 내용은 다음 문서를 참조하십시오:

  • E9Patch 프로그래머 가이드
  • E9Tool 사용자 가이드

버그

버그는 다음 위치에 보고할 수 있습니다:

  • https://github.com/GJDuck/e9patch/issues

버전

현재 버전의 E9Patch는 PLDI'2020 논문에서 평가된 원래 프로토타입에 비해 크게 개선되었습니다. 구체적으로:

  • 현재 버전은 여러 가지 새로운 최적화를 구현하며, 때로는 2배까지 훨씬 빠른 바이너리를 생성할 수 있습니다. 새로운 최적화를 활성화하려면 E9Tool에 -O2 옵션을 전달하십시오.
  • 물리적 페이지 그룹화 공간 최적화의 구현도 개선되었습니다.
  • 패치 적용 범위도 약간 개선되었습니다.
  • 많은 새로운 기능이 구현되었습니다(문서 참조).

라이선스

이 소프트웨어는 GNU Public License(GPL) 버전 3에 따라 배포됩니다.

일부 특정 파일은 MIT 라이선스로 배포됩니다(파일 서문 확인).

출판

자세한 내용은 PLDI'2020 논문을 참조하십시오:

  • Gregory J. Duck, Xiang Gao, Abhik Roychoudhury, 제어 흐름 복구 없는 바이너리 재작성, 프로그래밍 언어 설계 및 구현 (PLDI), 2020.
  • YouTube의 PLDI'2020 발표

다음과 같이 논문을 인용해 주십시오:

root@kitploit:~
    @inproceedings{e9patch,
        author = {Duck, Gregory J. and Gao, Xiang and Roychoudhury, Abhik},
        title = {Binary rewriting without control flow recovery},
        year = {2020},
        publisher = {Association for Computing Machinery},
        url = {https://doi.org/10.1145/3385412.3385972},
        doi = {10.1145/3385412.3385972},
        booktitle = {Programming Language Design and Implementation (PLDI)}
    }

감사의 말

이 연구는 국립연구재단(NRF) 싱가포르의 국가 사이버보안 R&D(NCR) 프로그램에 따른 신뢰할 수 있는 소프트웨어 시스템 국립 우수 센터의 부분적 지원을 받았습니다.

도구 다운로드