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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
goblin — impish, Rust로 작성된 크로스 플랫폼 바이너리 파싱 크레이트 | Kitploit
도구/GitHubGitHub/m4b/goblin
Reverse EngineeringFuzzingBinary Analysis
GitHubm4b/goblin

goblin

impish, Rust로 작성된 크로스 플랫폼 바이너리 파싱 크레이트

저장소 보기
1.5k200691개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

libgoblin

Actions crates.io version

올바른 말을 하세요

문서

https://docs.rs/goblin/

변경 로그

사용법

Goblin은 rustc 1.85.0 (Rust 2024 에디션)이 필요합니다.

Cargo.toml에 추가하세요

[dependencies]
goblin = "0.10"

기능

  • 멋진 크레이트 이름
  • 제로-카피, 크로스-플랫폼, 엔디안 인식, ELF64/32 구현 - 와우!
  • 제로-카피, 크로스-플랫폼, 엔디안 인식, 32/64비트 Mach-o 파서 - 대단해!
  • PE 32/64비트 파서 - 빙!
  • Unix 및 BSD 스타일 아카이브 파서 (후자는 [@willglynn] 덕분) - 만세!
  • 많은 cfg 옵션 - 머리가 핑 돌고 소스 읽다가 화날 거예요!
  • 퍼징됨 - "기쁘게도 goblin이 1억 번의 퍼징 실행, 시드 1~100에 대해 각 100만 번 실행을 견뎠습니다." - [@sanxiyn]
  • 테스트

libgoblin은 바이너리 파싱, 로딩, 분석을 위한 원스톱 솔루션을 목표로 합니다.

사용 사례

libgoblin은 주로 다음과 같은 중요한 사용 사례를 지원합니다:

  1. 코어, std-프리 #[repr(C)] 구조체, 작은 컴파일 시간, 32/64 (또는 둘 다) 자유롭게.

  2. 타입 퍼닝. 한 타입에 함수를 정의하면 32비트 또는 64비트 변형에서 작동하도록 - 실제로 아무것도 변경하지 않고, 매크로도 없습니다! 기본 예제는 examples/automagic.rs를 참조하세요.

  3. std 모드. Pread와 Pwrite를 통한 읽기/쓰기 구현, 파일 읽기, 편의 할당, 추가 메서드 등을 제공합니다. 이는 할당이 가능하고 디스크에서 바이너리를 읽고자 하는 클라이언트를 위한 것입니다.

  4. Endian_fd. 정말 끔찍한 이름이죠 😆 이것은 panopticon이나 falcon과 같은 바이너리 분석에서 외부 엔디언의 바이너리를 읽어야 하거나, 크로스 플랫폼 외부 아키텍처 binutils를 구축하는 기반으로 사용됩니다. 예를 들어 cargo-sym과 bingrep이 간단한 예시이며, 가능성은 무한합니다.

이 크레이트로 할 수 있는 몇 가지 예시입니다 (구현을 도와서 완성할 수도 있습니다):

  1. 컴파일러를 작성하고 이를 사용하여 바이너리 생성 (모든 원시 C 구조체는 Pwrite에서 파생됨).
  2. 다양한 바이너리 형식을 로드, 파싱, 분석하는 바이너리 분석 도구를 작성하세요, 예: panopticon 또는 falcon.
  3. 반-기능적 동적 링커를 작성하세요.
  4. 커널을 작성하고 no_std cfg를 사용하여 바이너리를 로드하세요. 즉, 기본적으로 구조체와 상수 정의(C 헤더와 같음)만 있을 뿐 - fd도, 출력도, std도 없습니다.
  5. bin2json 도구를 작성하세요, 바이너리 형식이 JSON에 있으면 안 될 이유가 있나요?

Cfgs

libgoblin은 대규모로 구성 가능하도록 설계되었습니다. 현재 플래그는 다음과 같습니다:

  • elf64 - 64비트 ELF 바이너리, repr(C) 구조체 정의
  • elf32 - 32비트 ELF 바이너리, repr(C) 구조체 정의
  • mach64 - 64비트 mach-o repr(C) 구조체 정의
  • mach32 - 32비트 mach-o repr(C) 구조체 정의
  • pe32 - 32비트 PE repr(C) 구조체 정의
  • pe64 - 64비트 PE repr(C) 구조체 정의
  • te - Terse Executable (TE) repr(C) 구조체 정의
  • archive - Unix 아카이브 파서
  • endian_fd - 바이너리의 엔디언에 따라 파싱
  • std - no_std 환경을 허용

관리자

  1. PE: [@kkent030315]
  2. Elf: [@m4b], 지원 가능
  3. Mach-o: [@m4b], 지원 가능

관리자는 해당 백엔드에 대한 첫 번째 연락 리뷰어입니다. 이전 기여, 활동, 기본 지식, 그리고 우호적이고 사교적인 행동을 기준으로 선정됩니다 :D

현재 저([@m4b])만 모든 PR에 대한 병합 권한이 있습니다. 미래에는 해당 백엔드의 관리자도 병합 권한을 가질 가능성이 높습니다.

마지막으로, 저는 여전히 모든 PR에 대해 간략한 리뷰를 할 가능성이 높지만, 대부분/전적으로 해당 백엔드의 관리자에게 맡길 것입니다.

그리고 항상 Bill과 Ted의 지혜를 기억하세요: "서로에게 훌륭하게 행동하세요!"

기여자

모두 감사합니다 ❤️ !

사전순으로:

  • [@000lbh]
  • [@2vg]
  • [@5225225]
  • [@alessandrod]
  • [@amanieu]
  • [@anfedotoff]
  • [@apalm]
  • [@baloo]
  • [@BinFlip]
  • [@burjui]
  • [@CalebFenton]
  • [@chf0x]
  • [@connorkuehl]
  • [@dancrossnyc]
  • [@DreydenGys]
  • [@dureuill]
  • [@Evian-Zhang]
  • [@ExPixel]
  • [@flanfly]
  • [@glandium]
  • [@glslang]
  • [@Gelbpunkt]
  • [@gunbux]
  • [@h33p]
  • [@hannahfluch]
  • [@Hexorg]
  • [@ibabushkin]
  • [@ideeockus]
  • [@ivlzme]
  • [@jackcmay]
  • [@jan-auer]
  • [@Javagedes]
  • [@jessehui]
  • [@jdub]
  • [@Jhynjhiruu]
  • [@johannst]
  • [@JohnScience]
  • [@joschock]
  • [@jrmuizel]
  • [@jsgf]
  • [@Jvlegod]
  • [@keith]
  • [@kjempelodott]
  • [@kkent030315]
  • [@ko1n]
  • [@le-jzr]
  • [@Lichtso]
  • [@lion128]
  • [@lissyx]
  • [@llogiq]
  • [@lumag]
  • [@lzutao]
  • [@lzybkr]
  • [@m-hilgendorf]
  • [@makubacki]
  • [@mmaekr]
  • [@m4b]
  • [@messense]
  • [@mitsuhiko]
  • [@mkroening]
  • [@mre]
  • [@Mrmaxmeier]
  • [n01e0]
  • [nathaniel-daniel]
  • [@nick96]
  • [@nico-abram]
  • [@npmccallum]
  • [@pchickey]
  • [@philipc]
  • [@PJB3005]
  • [@prettyroseslover]
  • [@Pzixel]
  • [@quake]
  • [@raindev]
  • [@RaitoBezarius]
  • [@ReturnRei]
  • [@rocallahan]
  • [@sanxiyn]
  • [@SAY-5]
  • [@skdltmxn]
  • [@sollyucko]
  • [@supervacuus]
  • [@Swatinem]
  • [@SweetVishnya]
  • [@SquareMan]
  • [@tathanhdinh]
  • [@Techno-coder]
  • [@tiann]
  • [@ticki]
  • [@Timmmm]
  • [@Tiwalun]
  • [@track-5]
  • [@tux3]
  • [@wickerwacka]
  • [@willglynn]
  • [@woodruffw]
  • [@wyxloading]
  • [@xcoldhandsx]
  • [@x0rb3l]
  • [@x64k]
도구 다운로드