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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ropium — 자동화된 ROP 체인 빌더로, 시맨틱 쿼리를 사용하여 바이너리에서 가젯을 추출하고 분석하며, X86/X64 아키텍처를 지원하고 Python API 및 CLI를 제공합니다. | Kitploit
도구/GitHubGitHub/boyan-milanov/ropium
Exploit FrameworksReverse EngineeringShellcodePayload DevelopmentBinary Exploitation
GitHubboyan-milanov/ropium

ropium

자동화된 ROP 체인 빌더로, 시맨틱 쿼리를 사용하여 바이너리에서 가젯을 추출하고 분석하며, X86/X64 아키텍처를 지원하고 Python API 및 CLI를 제공합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유




소개

ROPium (구 ROPGenerator)은 ROP 익스플로잇을 쉽게 만들어주는 라이브러리/도구입니다. 바이너리에서 가젯을 자동으로 추출 및 분석하고, 의미론적 쿼리로 ROP 체인을 찾을 수 있습니다. ROPium은 X86 및 X64 아키텍처를 지원하며, 곧 ARM도 지원할 예정입니다.

주요 기능:

  • 간편함: 부드러운 명령줄 인터페이스로 ROPium을 바로 사용할 수 있습니다.
  • Python API: 파이썬 API 덕분에 스크립트에 ROPium을 쉽게 통합할 수 있습니다.
  • 자동 체이닝: ROPium이 가젯을 자동으로 결합하여 복잡한 ROP 체인을 만듭니다.
  • 고급 기능: ROPium은 다양한 ABI의 함수 호출, 시스템 콜 등을 지원합니다.
  • 의미론적 쿼리: ROPium 쿼리는 빠르고 편리하게 작성할 수 있습니다 : rax=rbx+8, [rdi+0x20]=rax, rsi=[rbx+16], 0x08040212(1, 2, rax), [0xdeadbeaf] = "/bin/sh\x00", sys_execve(0xdeadbeef, 0, 0), sys_0x1(0), ...

목차

  • 소개
  • 설치
  • 시작하기
    • CLI 도구
    • Python API
  • Docker
  • 연락처
  • 라이선스
  • 특별 감사

설치

먼저 Capstone 디스어셈블리 프레임워크를 설치하세요:

root@kitploit:~
  sudo apt-get install libcapstone-dev

또한 최신 ROPgadget 릴리스가 필요합니다:

root@kitploit:~
  git clone https://github.com/JonathanSalwan/ROPgadget && cd ROPgadget
  python setup.py install --user 

CLI 도구를 사용하려면 prompt_toolkit을 설치하세요:

root@kitploit:~
  pip3 install prompt_toolkit

마지막으로 ROPium을 설치하세요:

root@kitploit:~
  git clone https://github.com/Boyan-MILANOV/ropium && cd ropium
  make
  make test
  sudo make install 

시작하기

CLI 도구

명령줄 인터페이스 래퍼 덕분에 ROPium을 대화형으로 사용하여 ROP 체인을 빠르게 구축할 수 있습니다:

Python API

ROP 체인을 스크립트에 직접 통합해야 하나요? 좋은 소식입니다, ROPium에는 파이썬 API가 있습니다!

바이너리를 로드하고 ROP 체인 찾기:

root@kitploit:~
from ropium import *
rop = ROPium(ARCH.X64)
rop.load('/lib/x86_64-linux-gnu/libc-2.27.so')

chain = rop.compile('rbx = [rax + 0x20]')

ROP 체인을 다양한 형식으로 덤프하기:

root@kitploit:~
>>> print( chain.dump() )

0x000000000009a851 (sub rax, 0x10; ret)
0x0000000000130018 (mov rax, qword ptr [rax + 0x30]; ret)
0x0000000000052240 (push rax; pop rbx; ret)

>>> print(chain.dump('python'))

from struct import pack
off = 0x0
p = ''
p += pack('<Q', 0x000000000009a851+off) # sub rax, 0x10; ret
p += pack('<Q', 0x0000000000130018+off) # mov rax, qword ptr [rax + 0x30]; ret
p += pack('<Q', 0x0000000000052240+off) # push rax; pop rbx; ret

>>> print(chain.dump('raw'))

b'Q\xa8\t\x00\x00\x00\x00\x00\x18\x00\x13\x00\x00\x00\x00\x00@"\x05\x00\x00\x00\x00\x00'

ROP 체인에 제약 조건 설정하기:

root@kitploit:~
# ROP 체인에 나타나면 안 되는 바이트
rop.bad_bytes = [0x00, 0x0a, 0x0b]

# ROP 체인에 의해 변경되면 안 되는 레지스터
rop.keep_regs = ['rsi', 'rdx']

# ROP 체인이 유효하지 않은 주소를 가리킬 수 있는 레지스터를 역참조하는 것을 활성화/금지
# 안전 모드는 기본적으로 'True'입니다
rop.safe_mem = False

# 함수 호출 시 사용할 ABI 지정
rop.abi = ABI.X86_CDECL

# 시스템 콜 시 대상 시스템 지정
rop.os = OS.LINUX

Docker

필요하다면 Docker 컨테이너에서 ROPium을 실행할 수 있습니다. 컨테이너는 Dockerfile로부터 다음과 같이 생성할 수 있습니다:

root@kitploit:~
# Docker 이미지를 생성합니다 (시간이 걸릴 수 있습니다!)
docker build . --tag ropium

# 대화형 모드로 이미지를 실행하고, 분석할 파일을 바인드 마운트합니다
docker run --rm -it -v /FULL/HOST/PATH/FILE:/tmp/FILE:ro ropium

(ropium)> load -a X86 /tmp/FILE

실제 이미지는 Debian Stretch 기반에 Python 3.7.3이 설치된 약 200MB입니다.

연락처

Boyan MILANOV - boyan.milanov (at) hotmail (dot) fr

라이선스

ROPium은 MIT 라이선스로 제공됩니다.

특별 감사

기여자:

  • Docker 컨테이너 지원: migounette, clslgrnc

ROPium은 다음 훌륭한 프로젝트들을 사용합니다:

  • capstone : 디스어셈블리 프레임워크
  • ROPgadget : 가젯 추출기
  • prompt-toolkit : Python CLI 인터페이스 라이브러리
도구 다운로드