Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Melkor_ELF_Fuzzer — Melkor é um fuzzer de formato de arquivo ELF muito intuitivo e fácil de usar para encontrar bugs funcionais e de segurança em parsers de ELF. | Kitploit
Ferramentas/GitHubGitHub/ioactive/melkor_elf_fuzzer
Análise de VulnerabilidadesFuzzingAnálise de Binários
GitHubioactive/melkor_elf_fuzzer

Melkor_ELF_Fuzzer

Melkor é um fuzzer de formato de arquivo ELF muito intuitivo e fácil de usar para encontrar bugs funcionais e de segurança em parsers de ELF.

Ver Repositório
15451há 2 anosRevisado pelo Kitploit

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

--------------------------------~ | -- DESCRIÇÃO -- | --------------------------------~

Melkor - Um Fuzzer do Formato de Arquivo ELF

Melkor, um personagem fictício do legendarium da Terra-média de J. R. R. Tolkien, foi o primeiro Senhor do Escuro e mestre de Sauron. Ele é mencionado brevemente em O Senhor dos Anéis e é conhecido por:

"... Melkor havia capturado vários ELFOS antes de os Valar o atacarem, e ele os torturou e corrompeu, gerando os primeiros Orcs." (http://en.wikipedia.org/wiki/Morgoth)

"... Melkor era astuto e mais cheio de malícia do que nunca. Vendo a felicidade dos ELFOS e lembrando que foi por causa deles que ele foi derrubado, Melkor desejou acima de tudo corrompê-los." (http://lotr.wikia.com/wiki/Melkor)

"Orcs... Isso tem sido assim desde o dia em que foram gerados por Melkor a partir de ELFOS corrompidos, torturados e mutilados, que também podem ter sido forçados a cruzar com outras abominações antinaturais no domínio dos Poderes das Trevas." (http://lotr.wikia.com/wiki/Orcs)

Para homenagear seu nome, este código pega um ELF, corrompe-o e cria tantos Orcs quanto você quiser.

Melkor é um fuzzer híbrido (baseado em mutação e baseado em geração). Ele muta os dados existentes em uma amostra de ELF fornecida para criar orcs (ELFs malformados); no entanto, ele não altera valores aleatoriamente (fuzzing cego); em vez disso, ele faz fuzzing de determinados metadados com valores semiválidos por meio de regras de fuzzing (base de conhecimento). Escrito em C, o Melkor é um fuzzer muito intuitivo e fácil de usar para encontrar bugs funcionais (e de segurança) em parsers de ELF.

As regras de fuzzing foram projetadas tendo como base as seguintes entradas:

  • Violações da especificação ELF
    • TIS ELF Specification 1.2 (maio de 1995)
    • ELF-64 Object File Format 1.5 (maio de 1998)
  • Ideias e considerações diversas
  • Padrões de parsing em software ELF

Você encontrará as regras de fuzzing em detalhes e alguns outros esquemas no diretório docs/.

--------------------------------~ | -- REQUISITOS -- | --------------------------------~

  • make
  • gcc

--------------------------------~ | -- COMPILAÇÃO & USO -- | --------------------------------~ A compilação é muito simples, basta digitar: $make

A compilação criará o arquivo 'melkor', que é o próprio fuzzer, e alguns outros arquivos ELF dentro da pasta templates/, incluindo arquivos ELF normais, como um executável ELF normal, algumas bibliotecas compartilhadas, um ELF estático (executável autônomo) e alguns outros.

Ao executar o melkor, uma lista de opções será exibida e você perceberá que ele é muito intuitivo e fácil de usar. Tudo o que você precisa fornecer é o nome de um ELF a ser usado como template, que pode ser qualquer um dos que estão no diretório templates/.

Dependendo do tipo de software que você deseja testar, você precisa escolher quais metadados fuzzar. Por exemplo, se quiser testar um carregador de SO, talvez você queira fuzzar apenas a Tabela de Cabeçalhos de Programa (-P) e/ou a Seção Dinâmica (-D). Por outro lado, talvez você queira fuzzar a Tabela de Cabeçalhos de Seção e o Cabeçalho ELF para testar um mecanismo de antivírus ou um depurador. Fuzzar as Tabelas de Símbolos (-s) e/ou as Tabelas de Realocações (-R) em arquivos realocáveis (.o) ou bibliotecas compartilhadas (.so) para testar compiladores e/ou linkers. As Tabelas de Strings também podem ser fuzzadas (-Z). Cabe a você decidir o quanto deseja corromper um ELF }:-)

Depois que os orcs forem criados dentro do diretório orcs_*/, é hora de testá-los com a ajuda do test_fuzzed.sh, onde você pode simplesmente especificar o nome da pasta com os orcs a serem executados (teste de carregador de SO) ou adicionar um parâmetro extra para especificar qual programa (e seus parâmetros) você gostaria de testar contra cada ELF malformado dentro da pasta de orcs. Este script tem a opção de fuzzar algumas variáveis de ambiente (também definidas como regras de fuzzing). Exibir logs com #dmesg após executar o script pode ser útil para identificar qual programa/biblioteca travou e onde essa falha ocorreu. Alguns exemplos são mostrados executando o script sem parâmetros.

Se você quiser testar os ELFs malformados (orcs) automaticamente em ambiente Windows, está incluído um script em lote (win_test_fuzzed.bat) com quase a mesma funcionalidade do script para *NIX.

Feliz Fuzzing!

--------------------------------~ | -- DIRETÓRIOS -- | --------------------------------~

  • docs/ Contém a documentação relacionada, como a lista detalhada de regras de fuzzing, bem como a lista de dependências de metadados ELF.

  • templates/ Contém alguns arquivos ELF compilados ao mesmo tempo que o melkor e que podem ser usados para alimentá-lo: foo.c -> foo.o (objeto ELF)-> foo (executável ELF) foo.c -> foo_static (executável ELF estático) libfoo.c -> libfoo.so (objeto compartilhado ELF) e alguns outros. Digite "$make templ" para ver em detalhes quais outros templates ELF são criados.

  • orcs_*/ Conterá os arquivos ELF malformados (baseados no arquivo de template fornecido) criados após o processo de fuzzing.

  • src/ Código-fonte do Melkor.

--------------------------------~ | -- BUGS -- | --------------------------------~

Por favor, leia BUGS.txt

--------------------------------~ | -- CONTATO -- | --------------------------------~

Nome: Alejandro Hernandez H. [nitr0us] Twitter: http://twitter.com/nitr0usmx E-mail: nitrousenador [at] gmail [dot] com Site: http://www.brainoverflow.org Blog: http://chatsubo-labs.blogspot.com

--------------------------------~ | -- EM MEMÓRIA -- | --------------------------------~

Este projeto é dedicado à memória de um dos meus melhores amigos, Aaron Alba.

--------------------------------~ | -- LICENÇA -- | --------------------------------~

Melkor - Um Fuzzer do Formato de Arquivo ELF Copyright (C) 2014 Alejandro Hernandez H. (nitr0us)

Este programa é um software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU, conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior.

Este programa é distribuído na esperança de que seja útil, mas SEM NENHUMA GARANTIA; sem sequer a garantia implícita de COMERCIABILIDADE ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a Licença Pública Geral GNU para obter mais detalhes.

Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Se não, veja http://www.gnu.org/licenses/.

Baixar ferramenta