Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
LibAFL — Biblioteca Avançada de Fuzzing - Monte seu Fuzzer em Rust! Escala em núcleos e máquinas. Para Windows, Android, MacOS, Linux, no_std, ... | Kitploit
Ferramentas/GitHubGitHub/aflplusplus/libafl
Frameworks de Testes de PenetraçãoAnálise Dinâmica (Sandboxing)Frameworks de ExploraçãoAnálise de VulnerabilidadesFuzzingAnálise de BináriosPapers e PesquisaAprendizado e EducaçãoTop em Fuzzing nº10
2.6k47860há 1 diaRevisado pelo Kitploit
GitHub
aflplusplus/libafl

LibAFL

Biblioteca Avançada de Fuzzing - Monte seu Fuzzer em Rust! Escala em núcleos e máquinas. Para Windows, Android, MacOS, Linux, no_std, ...

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
# `LibAFL`, a biblioteca de fuzzing

 <img align="right" src="https://raw.githubusercontent.com/AFLplusplus/Website/main/static/libafl_logo.svg" alt="LibAFL logo" width="250" heigh="250">

Biblioteca Avançada de Fuzzing - Monte seus próprios fuzzers e estenda seus recursos usando Rust.

`LibAFL` é uma coleção de peças reutilizáveis de fuzzers, escrita em Rust, que fornece muitos dos benefícios de um fuzzer pronto para uso, sendo completamente personalizável.
Algumas funcionalidades de destaque atualmente incluem:

- `rápido`: Fazemos tudo que podemos em tempo de compilação, mantendo a sobrecarga em tempo de execução mínima. Usuários atingem 120k execuções/seg em modo frida em um telefone (usando todos os núcleos).
- `escalável`: `Low Level Message Passing`, `LLMP` para abreviar, permite que `LibAFL` escale quase linearmente entre núcleos, e via TCP para várias máquinas.
- `adaptável`: Você pode substituir cada parte do `LibAFL`. Por exemplo, `BytesInput` é apenas uma forma potencial de entrada:
sinta-se à vontade para adicionar uma entrada baseada em AST para fuzzing estruturado, e mais.
- `multiplataforma`: `LibAFL` roda em *Windows*, *macOS*, *iOS*, *Linux* e *Android*, e mais. `LibAFL` pode ser construído em modo `no_std` para injetar `LibAFL` em alvos obscuros como dispositivos embarcados e hipervisores.
- `traga seu próprio alvo`: Suportamos modos somente binário, como Frida-Mode, bem como múltiplas passagens de compilação para instrumentação baseada em código-fonte. Claro que é fácil adicionar backends de instrumentação personalizados.

## Conceitos principais

`LibAFL` é rápido, multiplataforma, compatível com `no_std` e escala entre núcleos e máquinas. Ele oferece um crate principal que fornece blocos de construção para fuzzers personalizados, [libafl](https://github.com/aflplusplus/libafl/blob/main/crates/libafl), uma biblioteca contendo código comum que pode ser usado para instrumentação de alvos, [libafl_targets](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_targets), e uma biblioteca que fornece facilidades para envolver compiladores, [libafl_cc](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_cc). Ele oferece integrações com frameworks de instrumentação populares. No momento, os backends suportados são:

- `SanitizerCoverage`, em [libafl_targets](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_targets)
- `Frida`, em [libafl_frida](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_frida)
- `QEMU` modo usuário e modo sistema, incluindo hooks para emulação, em [libafl_qemu](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_qemu)
- `TinyInst`, em [libafl_tinyinst](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_tinyinst) por [elbiazo](https://github.com/elbiazo)

## Construindo e instalando

#### Instale as Dependências

- **A linguagem de desenvolvimento Rust**
  - Recomendamos fortemente *não* usar, por exemplo, o pacote da sua distribuição Linux, pois provavelmente está desatualizado. Portanto, instale o Rust diretamente, instruções podem ser encontradas [aqui](https://www.rust-lang.org/tools/install).
  - A versão mínima suportada do Rust está definida. Você pode sempre verificar a versão atualmente requerida no [Cargo.toml](https://github.com/AFLplusplus/LibAFL/blob/main/crates/libafl/Cargo.toml) do LibAFL:

    Se a sua versão instalada do Rust for mais antiga que a listada no Cargo.toml, atualize para o toolchain estável mais recente:

    ```bash
    rustup update stable
    ```
- **Ferramentas LLVM**
  - As ferramentas LLVM (incluindo clang, clang++) são necessárias (mais recentes que LLVM 15.0.0 até LLVM 18.1.3). Se você está usando Debian/Ubuntu, novamente, recomendamos fortemente que instale o pacote a partir [daqui](https://apt.llvm.org/)
- Just:
  - Usamos [just](https://github.com/casey/just) para construir os fuzzers no diretório `fuzzers/`. Você pode encontrar instruções para instalá-lo no seu ambiente [no Manual do Programador Just](https://just.systems/man/en/packages.html).

#### Clone o repositório `LibAFL` com

```sh
git clone https://github.com/AFLplusplus/LibAFL
```

#### Construa a biblioteca usando

```sh
cargo build --release
```

#### Construa a documentação da API com

```sh
cargo doc
```

#### Navegue pelo livro `LibAFL` (em andamento!) com (requer [mdbook](https://rust-lang.github.io/mdBook/index.html))

```sh
cd docs && mdbook serve
```

## Primeiros passos

Coletamos todos os fuzzers de exemplo em [`./fuzzers`](https://github.com/aflplusplus/libafl/blob/main/fuzzers).
Certifique-se de ler a documentação (e o código fonte), esta é *a maneira natural de começar!*

```sh
just run
```

Você pode executar cada fuzzer de exemplo com o seguinte comando, desde que o diretório do fuzzer tenha um arquivo `Justfile`. O fuzzer mais bem testado é [`./fuzzers/inprocess/libfuzzer_libpng`](https://github.com/aflplusplus/libafl/blob/main/fuzzers/inprocess/libfuzzer_libpng), um fuzzer multicore semelhante ao libfuzzer usando `LibAFL` para um harness libpng.

### Recursos

- [Guia de instalação](https://github.com/aflplusplus/libafl/blob/main/docs/src/getting_started/setup.md)
- [Documentação da API online](https://docs.rs/libafl/)
- O livro `LibAFL` (em andamento) [online](https://aflplus.plus/libafl-book) ou no [repositório](https://github.com/aflplusplus/libafl/blob/main/docs/src)
- Nosso [artigo](https://www.s3.eurecom.fr/docs/ccs22_fioraldi.pdf) de pesquisa
- Nossa [palestra](http://www.youtube.com/watch?v=3RWkT1Q5IV0 "Fuzzers Like LEGO") no RC3 explicando os conceitos principais
- Nossa [palestra](https://www.youtube.com/watch?v=PWB8GIhFAaI "LibAFL: The Advanced Fuzzing Library") no Fuzzcon Europe com uma discussão passo a passo (um pouco, mas não muito desatualizada) sobre como construir alguns fuzzers de exemplo
- As [soluções](https://github.com/epi052/fuzzing-101-solutions) do Fuzzing101 & série de [postagens no blog](https://epi052.gitlab.io/notes-to-self/blog/2021-11-01-fuzzing-101-with-libafl/) por [epi](https://github.com/epi052)
- Postagem no blog sobre fuzzing somente binário lib `libaf_qemu`, [Hacking TMNF - Fuzzing the game server](https://blog.bricked.tech/posts/tmnf/part1/), por [RickdeJager](https://github.com/RickdeJager).
- [Um Workshop Introdutório sobre LibAFL](https://www.atredis.com/blog/2023/12/4/a-libafl-introductory-workshop), por [Jordan Whitehead](https://github.com/jordan9001)

## Contribuidores

`LibAFL` é escrito e mantido por

- [Andrea Fioraldi](https://twitter.com/andreafioraldi) <[email protected]>
- [Dominik Maier](https://bsky.app/profile/dmnk.bsky.social) <[email protected]>
- [s1341](https://twitter.com/srubenst1341) <[email protected]>
- [Dongjia Zhang](https://github.com/tokatoka) <[email protected]>
- [Addison Crump](https://github.com/addisoncrump) <[email protected]>
- [Romain Malmain](https://github.com/rmalmain) <[email protected]>

## Contribuindo

Por favor, consulte **[CONTRIBUTING.md](https://github.com/aflplusplus/libafl/blob/main/CONTRIBUTING.md)** para as diretrizes de contribuição.

## Depuração

Seu fuzzer não funciona como esperado? Tente ler [DEBUGGING.md](https://github.com/aflplusplus/libafl/blob/main/docs/src/DEBUGGING.md) para entender como depurar seus problemas.

## Citar

Se você usar `LibAFL` para seu trabalho acadêmico, cite o seguinte artigo:

```bibtex
@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},
}
```

## Licença

<sup>
Licenciado sob a <a href="https://github.com/aflplusplus/libafl/blob/main/LICENSE-APACHE">Licença Apache, Versão 2.0</a> ou a <a href="https://github.com/aflplusplus/libafl/blob/main/LICENSE-MIT">licença MIT</a>, à sua escolha.
</sup>

<br>

<sub>
A menos que você declare explicitamente o contrário, qualquer contribuição intencionalmente submetida para inclusão neste crate por você, conforme definido na licença Apache-2.0, será licenciada duplamente como acima, sem quaisquer termos ou condições adicionais.
</sub>
Baixar ferramenta