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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
LibAFL — 고급 퍼징 라이브러리 - Rust로 퍼저를 조립하세요! 코어와 머신 간에 확장됩니다. Windows, Android, MacOS, Linux, no_std 등을 지원합니다. | Kitploit
도구/GitHubGitHub/aflplusplus/libafl
Penetration Testing FrameworksDynamic Analysis (Sandboxing)Exploit FrameworksVulnerability AnalysisFuzzingBinary AnalysisPapers & ResearchLearning & Education
GitHubaflplusplus/libafl

LibAFL

고급 퍼징 라이브러리 - Rust로 퍼저를 조립하세요! 코어와 머신 간에 확장됩니다. Windows, Android, MacOS, Linux, no_std 등을 지원합니다.

저장소 보기
2.6k47812일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

LibAFL, 퍼저 라이브러리

LibAFL logo

고급 퍼징 라이브러리 - 자신의 퍼저를 조합하고 Rust를 사용하여 기능을 확장하세요.

LibAFL은 Rust로 작성된 재사용 가능한 퍼저 조각들의 모음으로, 기성 퍼저의 많은 장점을 제공하면서도 완전히 사용자 정의할 수 있습니다. 현재 주요 기능은 다음과 같습니다:

  • 빠름: 컴파일 시간에 최대한 많은 작업을 수행하여 런타임 오버헤드를 최소화합니다. 사용자는 휴대폰에서 frida 모드(모든 코어 사용)로 초당 120,000회 실행에 도달합니다.
  • 확장 가능: 줄여서 LLMP라고 하는 저수준 메시지 전달을 통해 LibAFL이 코어 간에 거의 선형적으로 확장되고 TCP를 통해 여러 머신으로 확장될 수 있습니다.
  • 적응 가능: LibAFL의 각 부분을 교체할 수 있습니다. 예를 들어 BytesInput은 잠재적인 입력 형태 중 하나일 뿐입니다. 구조화된 퍼징을 위해 AST 기반 입력 등을 자유롭게 추가할 수 있습니다.
  • 다중 플랫폼: LibAFL은 Windows, macOS, iOS, Linux, Android 등에서 실행됩니다. LibAFL은 no_std 모드로 빌드하여 임베디드 장치나 하이퍼바이저와 같은 난해한 대상에 주입할 수 있습니다.
  • 자체 대상 가져오기: Frida-Mode와 같은 바이너리 전용 모드와 소스 기반 계측을 위한 여러 컴파일 패스를 지원합니다. 물론 사용자 정의 계측 백엔드를 쉽게 추가할 수 있습니다.

핵심 개념

LibAFL은 빠르고, 다중 플랫폼이며, no_std 호환이 가능하고 코어와 머신 간에 확장됩니다. 사용자 정의 퍼저를 위한 구성 요소를 제공하는 메인 크레이트 libafl, 대상 계측에 사용할 수 있는 공통 코드를 포함하는 라이브러리 libafl_targets, 그리고 컴파일러 래핑 기능을 제공하는 라이브러리 libafl_cc를 제공합니다. 널리 사용되는 계측 프레임워크와의 통합을 지원합니다. 현재 지원되는 백엔드는 다음과 같습니다:

  • SanitizerCoverage, in libafl_targets
  • Frida, in libafl_frida
  • QEMU 사용자 모드 및 시스템 모드(에뮬레이션을 위한 후크 포함), in libafl_qemu
  • TinyInst, elbiazo의 libafl_tinyinst

빌드 및 설치

의존성 설치

  • Rust 개발 언어
    • 예를 들어 Linux 배포판 패키지를 사용하지 않도록 강력히 권장합니다. 이는 구버전일 가능성이 높기 때문입니다. 대신 Rust를 직접 설치하세요. 설치 지침은 여기에서 확인할 수 있습니다.

    • 최소 지원 Rust 버전이 정의되어 있습니다. 현재 필요한 버전은 LibAFL의 Cargo.toml에서 확인할 수 있습니다:

      설치된 Rust 버전이 Cargo.toml에 나열된 버전보다 오래된 경우, 최신 안정 툴체인으로 업데이트하세요:

      root@kitploit:~
      rustup update stable
      
  • LLVM 도구
    • LLVM 도구(clang, clang++ 포함)가 필요합니다(LLVM 15.0.0 이상 LLVM 18.1.3 이하). Debian/Ubuntu를 사용하는 경우, 여기에서 패키지를 설치할 것을 다시 한번 강력히 권장합니다.
  • Just:
    • 우리는 just를 사용하여 fuzzers/ 디렉토리의 퍼저를 빌드합니다. 설치 지침은 Just Programmer's Manual에서 확인할 수 있습니다.

LibAFL 저장소를 다음 명령어로 클론하세요

root@kitploit:~
git clone https://github.com/AFLplusplus/LibAFL

다음 명령어로 라이브러리를 빌드하세요

root@kitploit:~
cargo build --release

다음 명령어로 API 문서를 빌드하세요

root@kitploit:~
cargo doc

다음 명령어로 LibAFL 책(작성 중!)을 보세요 (mdbook 필요)

root@kitploit:~
cd docs && mdbook serve

시작하기

모든 예제 퍼저를 ./fuzzers에 모아두었습니다. 해당 문서(및 소스)를 꼭 읽어보세요. 이것이 자연스러운 시작 방법입니다!

root@kitploit:~
just run

퍼저 디렉토리에 Justfile 파일이 있는 한 다음 명령어로 각 예제 퍼저를 실행할 수 있습니다. 가장 잘 테스트된 퍼저는 ./fuzzers/inprocess/libfuzzer_libpng로, libpng harness를 위해 LibAFL을 사용하는 멀티코어 libfuzzer 방식 퍼저입니다.

리소스

  • 설치 가이드
  • 온라인 API 문서
  • LibAFL 책(작성 중) 온라인 또는 저장소에서
  • 저희 연구 논문
  • 핵심 개념을 설명하는 저희의 RC3 발표
  • 일부 예제 퍼저를 구축하는 방법에 대한 (약간은 구식이지만 그리 많지는 않은) 단계별 논의가 포함된 저희의 Fuzzcon Europe 발표
  • epi의 Fuzzing101 솔루션 및 블로그 게시물 시리즈
  • RickdeJager의 바이너리 전용 퍼징 라이브러리 libaf_qemu에 관한 블로그 게시물, Hacking TMNF - Fuzzing the game server.
  • Jordan Whitehead의 LibAFL 입문 워크숍

기여자

LibAFL은 다음 사람들이 작성하고 유지 관리합니다:

  • Andrea Fioraldi [email protected]
  • Dominik Maier [email protected]
  • s1341 [email protected]
  • Dongjia Zhang [email protected]
  • Addison Crump [email protected]
  • Romain Malmain [email protected]

기여하기

기여 지침은 **CONTRIBUTING.md**를 확인해주세요.

디버깅

퍼저가 예상대로 작동하지 않나요? DEBUGGING.md를 읽어 문제를 디버깅하는 방법을 이해하세요.

인용

학술 연구에 LibAFL을 사용하신다면, 다음 논문을 인용해 주세요:

root@kitploit:~
@inproceedings{libafl,
 author       = {Andrea Fioraldi and Dominik Maier and Dongjia Zhang and Davide Balzarotti},
 title        = {{LibAFL: A Framework to Build Modular and Reusable Fuzzers}},
 booktitle    = {Proceedings of the 29th ACM conference on Computer and communications security (CCS)},
 series       = {CCS '22},
 year         = {2022},
 month        = {November},
 location     = {Los Angeles, U.S.A.},
 publisher    = {ACM},
}

라이선스

귀하의 선택에 따라 Apache License, Version 2.0 또는 MIT license 중 하나에 따라 라이선스가 부여됩니다.
명시적으로 달리 명시하지 않는 한, Apache-2.0 라이선스에 정의된 대로 귀하가 이 크레이트에 포함시키기 위해 의도적으로 제출한 모든 기여는 추가 약관이나 조건 없이 위와 같이 이중 라이선스가 부여됩니다.
도구 다운로드