Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
KeyPatchX — KeyPatch Enhanced — Keystone Engine 기반의 심볼 인식 x86/x64 어셈블리 패치를 위한 IDA Pro 플러그인. 자동 IDA 심볼 해석, RIP 상대 인코딩, _↔. 이름 보정 기능을 갖춘 Keypatch의 포크. | Kitploit
도구/GitHubGitHub/gmh5225/keypatchx
Static AnalysisExploitationReverse EngineeringDebuggersUtilities & FrameworksBinary AnalysisBinary Exploitation
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — Keystone Engine 기반의 심볼 인식 x86/x64 어셈블리 패치를 위한 IDA Pro 플러그인. 자동 IDA 심볼 해석, RIP 상대 인코딩, _↔. 이름 보정 기능을 갖춘 Keypatch의 포크.

저장소 보기
927개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

KeyPatch Enhanced — IDA Pro 심볼 인식 어셈블리 플러그인

Keypatch(Nguyen Anh Quynh & Thanh Nguyen 제작)를 기반으로 Euarno가 수정한 강화 포크입니다.

핵심 개선 사항: x86/x64 어셈블리에서 IDA 심볼 이름을 직접 사용할 수 있으며, 플러그인이 자동으로 주소를 해석하고 올바른 RIP-relative / rel32 인코딩을 생성합니다.


추가된 기능

1. 심볼 이름을 직접 사용한 어셈블

Keypatch 대화 상자에서 심볼 이름이 포함된 명령어를 직접 입력할 수 있으며, 주소와 오프셋을 수동으로 계산할 필요가 없습니다:

call rc4_crypt          ; rel32 상대 오프셋 자동 계산
jmp  main               ; 위와 동일
lea  rcx, enc_0         ; x64: lea rcx, [rip + disp32] 자동 생성
lea  rax, Format         ; 위와 동일

2. IDA 이름 자동 보정 (_ ↔ .)

IDA는 때때로 데이터베이스의 .을 _로 표시합니다(예: enc.0이 enc_0으로 표시). 플러그인은 자동으로 _ → . 변형을 시도하여 조회하므로 IDA 내부 저장 형식을 신경 쓸 필요가 없습니다.

3. 지원하는 명령어 유형

유형예시처리 방식
CALL / JMP / Jcccall func_name심볼 → 절대 주소, Keystone이 rel32 계산
LEA(단독 심볼)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA(복합 피연산자)lea rcx, [rbp+0x120+Str]심볼만 주소 값으로 치환하고 표현식 구조는 유지
MOV offsetmov rax, offset symbolx64: lea rax, [rip + disp32]로 변환
범위를 벗어나면 mov rax, imm64 사용
메모리 접근 [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone이 자동 인코딩
즉시값 심볼push symbol심볼 → 0xADDR

4. 강화된 오류 메시지

어셈블 실패 시 출력 창에 다음이 표시됩니다:

Keypatch: Keystone error: Invalid operand (KS_ERR_ASM_INVALIDOPERAND)
Keypatch:   input asm  : lea rcx, [rip + 0x176E3]
Keypatch:   fixed asm  : LEA RCX, [RIP + 0x176E3]
Keypatch:   address    : 0x140001966

설치

사전 요구 사항

  • IDA Pro 7.0+
  • Keystone Engine Python 바인딩
pip install keystone-engine

플러그인 설치

keypatch.py를 IDA 플러그인 디렉터리에 복사합니다:

시스템경로
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ 또는 <IDA 설치 디렉터리>\plugins\
macOS~/.idapro/plugins/ 또는 <IDA 설치 디렉터리>/plugins/
Linux~/.idapro/plugins/ 또는 <IDA 설치 디렉터리>/plugins/

IDA를 재시작하면 됩니다.


사용 방법

Patcher 열기

  • 메뉴: Edit → Keypatch → Patcher
  • 단축키: Ctrl + Alt + K
  • 우클릭 메뉴: Keypatch → Patcher

기본 워크플로

  1. IDA 디스어셈블리 창에서 커서를 대상 주소로 이동
  2. Ctrl + Alt + K를 눌러 Patcher 열기
  3. Assembly 칸에 명령어 입력(IDA 심볼 이름 사용 가능)
  4. Encoding 칸에서 인코딩이 올바른지 확인
  5. Patch를 클릭하여 수정 적용

예시: 함수 호출 Hook

0x140001966 위치에서 rc4_crypt로 점프하는 명령어를 patch한다고 가정합니다:

Assembly: call rc4_crypt

플러그인이 rc4_crypt의 주소를 자동으로 해석하고 rel32 오프셋을 계산하여 올바른 E8 xx xx xx xx 인코딩을 생성합니다.

예시: 데이터 주소 로드

Assembly: lea rcx, enc_0

플러그인이 자동으로:

  1. enc_0(내부 이름은 enc.0일 수 있음) 해석 → 주소 0x140013050
  2. RIP-relative 오프셋 계산 disp32 = 0x140013050 - (0x140001966 + 7)
  3. lea rcx, [rip + 0x176E3] 생성
  4. Keystone에 전달하여 기계어로 인코딩

범위 채우기 (Fill Range)

  1. 디스어셈블리 창에서 주소 범위를 선택
  2. Ctrl + Alt + K를 눌러 Fill Range 열기
  3. 명령어(예: nop)를 입력하면 전체 범위에 자동으로 채워짐

실행 취소

  • 메뉴: Edit → Keypatch → Undo last patching

주의 사항

  • RIP-relative 범위 제한: lea와 [symbol]의 RIP-relative 주소 지정 범위는 ±2GB입니다. 심볼이 범위를 벗어나면 플러그인이 오류를 표시합니다.
  • x64 즉시값 제한: x64에서 push symbol을 사용할 경우 심볼 주소가 0x7FFFFFFF 이하여야 합니다(imm32 부호 확장). 그렇지 않으면 경고가 발생합니다. lea reg, symbol + push reg로 변경하는 것을 권장합니다.
  • 세미콜론 다중 문장: lea rcx, sym; call func 형태의 다중 문장 심볼 해석은 현재 지원하지 않습니다. 한 줄씩 patch하십시오.

원본 프로젝트

  • 원작자: Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • 원본 프로젝트: keystone-engine/keypatch
  • 원본 라이선스: GPL v2
  • 프로젝트 홈페이지: http://keystone-engine.org/keypatch
  • Keystone Engine: http://www.keystone-engine.org

수정자

  • Euarno — IDA 심볼 자동 해석 기능, _ ↔ . 이름 보정, x64 RIP-relative 인코딩 지원, 강화된 오류 출력

라이선스

본 수정 버전은 MIT 라이선스로 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.

원본 Keypatch 코드의 저작권은 원작자에게 있으며, GPL v2에 따라 배포됩니다.

도구 다운로드