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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
woody-woodpacker — ELF 바이너리 패커로, 코드 섹션을 암호화하고 64비트 Linux 실행 파일에 런타임 복호화 스텁을 주입하여 코드 인젝션 및 바이너리 조작 기술을 시연합니다. | Kitploit
도구/GitLabGitLab/aurh1l-42-projects/woody-woodpacker
Encryption/Decryption ToolsReverse EngineeringBinary AnalysisLearning & EducationBinary Exploitation
GitLabaurh1l-42-projects/woody-woodpacker

woody-woodpacker

ELF 바이너리 패커로, 코드 섹션을 암호화하고 64비트 Linux 실행 파일에 런타임 복호화 스텁을 주입하여 코드 인젝션 및 바이너리 조작 기술을 시연합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
8개월 전아직 검토되지 않음

Woody-Woodpacker

42 Project C ELF

64비트 ELF 실행 파일을 위한 바이너리 패커를 구현하는 42 학교 프로젝트입니다. 이 패커는 실행 파일의 코드 섹션을 암호화하고, 런타임에 실행되는 복호화 루틴을 주입합니다.

🎯 개요

Woody-Woodpacker는 64비트 ELF 바이너리를 입력받아 woody라는 새로운 암호화된 버전을 생성하는 프로그램입니다. 실행 시 woody 바이너리는:

  1. 런타임에 자체 복호화를 수행합니다.
  2. 주입 성공 증거로 stdout에 "....WOODY...."를 출력합니다.
  3. 원래 바이너리의 동작을 그대로 정상 실행합니다.

이 프로젝트는 다음을 탐구합니다:

  • 바이너리 파일 형식(ELF 구조)
  • 코드 주입 기술
  • 암호화/복호화 알고리즘
  • C 언어 저수준 프로그래밍
  • 리버스 엔지니어링 개념

⚙️ 작동 방식

패킹 과정

root@kitploit:~
원본 바이너리 → [Woody-Woodpacker] → 암호화된 바이너리 (woody)
  1. ELF 헤더 파싱 - ELF 파일 구조를 읽고 분석합니다.
  2. 코드 섹션 찾기 - 암호화할 세그먼트/섹션을 식별합니다.
  3. 코드 암호화 - 코드에 암호화 알고리즘을 적용합니다.
  4. 복호화 스텁 주입 - 바이너리에 복호화 루틴을 추가합니다.
  5. 진입점 수정 - 실행 흐름을 복호화 스텁으로 리디렉션합니다.
  6. 새 바이너리 쓰기 - woody 실행 파일을 생성합니다.

실행 과정

root@kitploit:~
./woody → 코드 복호화 → "....WOODY...." 출력 → 원래 프로그램 실행

🔧 사전 요구사항

  • GCC 또는 Clang 컴파일러
  • Make
  • Linux 운영체제(ELF 바이너리 지원 필요)
  • 다음에 대한 기본적인 이해:
    • C 프로그래밍
    • ELF 파일 형식
    • 어셈블리 언어(x86-64)

🚀 설치

root@kitploit:~
# 저장소 클론
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker

# 프로젝트 컴파일
make

# woody_woodpacker 실행 파일 준비 완료
./woody_woodpacker

💻 사용법

기본 사용법

root@kitploit:~
./woody_woodpacker <binary_file>

현재 디렉토리에 woody라는 새 파일을 생성합니다.

예제

root@kitploit:~
# 바이너리 패킹
./woody_woodpacker /bin/ls

# 패킹된 바이너리 실행
./woody
# 출력: ....WOODY....
# [이후 일반 ls 출력]

확인

root@kitploit:~
# 원본 바이너리와 패킹된 바이너리 동작 비교
/bin/ls -la
./woody -la

# ("....WOODY...." 이후) 둘 다 동일한 출력을 내야 합니다.

🔍 기술 세부사항

ELF 파일 구조

패커는 다음 ELF 구성 요소를 조작합니다:

  • ELF 헤더 - 메타데이터를 포함하는 주 파일 헤더
  • 프로그램 헤더 - 로딩을 위한 세그먼트 정보
  • 섹션 헤더 - 링킹을 위한 섹션 정보
  • 코드 세그먼트 - 실행 코드가 포함된 .text 섹션

암호화 알고리즘

이 프로젝트는 일반적으로 다음과 같은 간단한 암호화 방식을 사용합니다:

  • RC4 - 스트림 암호

주입 기법

세그먼트 패딩 감염 (Silvio Cesare 방식):

  1. 프로그램 헤더에서 세그먼트 크기를 증가시킴
  2. 패딩 영역에 복호화 스텁을 주입
  3. 진입점을 수정하여 스텁으로 점프
  4. 스텁이 코드를 복호화하고 원래 진입점으로 점프

메모리 레이아웃

root@kitploit:~
┌─────────────────────────┐
│   ELF 헤더              │
├─────────────────────────┤
│   프로그램 헤더         │
├─────────────────────────┤
│   복호화 스텁           │ ← 주입된 코드
├─────────────────────────┤
│   암호화된 .text        │ ← 원래 코드 (암호화됨)
├─────────────────────────┤
│   기타 섹션             │
├─────────────────────────┤
│   섹션 헤더             │
└─────────────────────────┘

📝 라이선스

이 프로젝트는 42 학교 커리큘럼의 일부이며 교육 목적으로만 사용됩니다.

⚠️ 면책 조항

이 도구는 42 학교 커리큘럼의 일환으로 교육 목적으로 제작되었습니다. 소유권이 있거나 수정 권한이 있는 바이너리에 대해서만 책임감 있게 사용하십시오. 저자는 이 소프트웨어의 오용에 대해 책임을 지지 않습니다.

도구 다운로드