projeto Fusil é um programa de fuzzing. Atualmente, ele é específico para programas de linha de comando do Linux, mas o código é projetado para ser usado com qualquer tipo de projeto (processo remoto, um servidor HTTP falso, soquete de rede fuzz, etc.). Fusil projecto baseia-se num sistema multi-agente, em vez de uma arquitectura monolítica.
Fusil é um projeto de código aberto escrito em Python sob a licença GNU GPL.
Tente fusil
Ir ao diretório pai fusil e começar projecto xterm fuzzing:
fusil --project projecto / xterm.py
Resultado de saída:
$ Cd fusil
Projeto -p $ fusil / xterm.py
[Sessão # 1] Iniciar sessão
[Processo xterm] Timeout! (1,0 segundo)
(...)
[Sessão # 8] Iniciar sessão
*** Glibc detectado *** / usr / bin / xterm: double livre ou corrupção (prev!): 0x080ad2b8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7b957cd]
(...)
[Processo de relógio] Processo morto por SIGIOT sinal
[Sessão # 8] pontuação Sessão: 100,0%
[Aplicação] Sucesso com sessão # 8
O que é novo nesta versão:
- Python 3 apoio
- fusil-python:
- melhorar a função lista todos os módulos Python: usar sys.builtin_module_names e pkgutil.iter_modules ()
- lista negra mais módulos, classes e funções
O que é novo na versão 1.3.2:
- replay.py: set sys.path para aliviar o uso de Fusil sem instalá-lo
- Fix fusil-gettext: ignorar erros strace em locateMO ()
- fusil-python:
- advertências hide Python
- listAllModules () inclui módulos embutidas
- nova opção --only-c para testar apenas os módulos escritos em C
- fuga de memória correção: módulos de descarregamento testado
- getFunctions fix (): Use também isclass () para detectar as classes
- limite máximo de memória processo Disable Fusil
O que é novo na versão 1.3.1:
- fusil-python: autodiscover todos os módulos em vez de usar uma lista estática de módulos, capturar qualquer exceção ao carregar um módulo, única fuzz funções públicas (módulo utilização .__ todos __)
- fileWATCH: ignorar partes duplicadas em renomear sessão
- Retire as peças nome da sessão duplicar (por exemplo, & quot;. Pickle-error-erro & quot; = & gt; & quot; picke-erro & quot;)
- replay.py: não redirecionar stdin para / dev / null se --ptrace é usado
- sonda CPU: definir a duração máx a partir de 3 a 10 segundos (e mudar o nome da sessão em caso de sucesso)
O que é novo na versão 1.3:
- Criar fusil-gimp
- Remover charset de WriteCode: usar builtin open () em vez codecs.open () porque arquivos criados pelo Open () são muito mais rápidos
- Optimize fileWATCH: não recompilar padrões em cada sessão
- fusil agora depende de python-ptrace 0,6
- Não use close_fds argumento de subprocess.Popen () no Windows
- leitor configuração Fix: normal_calm_load, normal_calm_sleep, slow_calm_load, chaves slow_calm_sleep opções globais são float, não integer
- fileWATCH usa o padrão para renomear a sessão
O que é novo na versão 1.2.1:
- Corrija agente mangle do Magick fuzzer Imagem
- Corrija AttachProcessPID () sonda: parar a sonda no processo de saída
O que é novo na versão 1.2:
mudanças visíveis
- Usuário:
- Fusil agora requer Python 2.5
- Documentação: escrever um índice (index.rst) e um guia do usuário (usage.rst)
- roteiro Replay: copiar ambiente HOME para GDB e pegar setuid () erro
- fusil-firefox: suporta mais formatos de arquivo (bmp, gif, ICO, PNG, SVG), criar --test opção de linha de comando, escreva a página HTML em arquivo index.html
- fusil-python: escrever erros para stderr (em vez de stdout) para evitar erros de unicode (especialmente com Python3)
- fileWATCH: renomear a sessão com & quot; long_output & quot; se o programa escreveu mais de linhas max_nbline
- fusil-python: posix.fork lista negra () para evitar falsos positivos
- Se o processo for morto por um sinal, renomear a sessão usando o nome do sinal (já trabalhou se o depurador foi desativado)
- mudanças Desenvolvedor:
- MangleAgent suporta vários arquivos de entrada
- Criar DummyMangle: agente com MangleFile API mas não toque o conteúdo do arquivo para testar o difusor
- Rede: close () método de NetworkClient e utilização ServerClient shutdown (SHUT_RDWR)
- NetworkServer usa um atraso de cinco clientes para socket.listen () (em vez de 1)
- Bugfixes:
- Corrija Directory.rmtree () e roteiro de replay para Python 3.0
- ServerClient.sendBytes Fix (): uso socket.send () resultado para obter compensar os próximos dados
O que é novo na versão 1.0 final:
- Esta versão adiciona vlc e fuzzers zzuf, um replay. roteiro py com muitas opções (por exemplo --valgrind), e uma opção --force-inseguro (como --unsafe mas sem a confirmação).
- Ele sempre usa um dispositivo nulo como stdin para processos filhos para evitar o bloqueio do difusor se o processo lê stdin.
- O identificador de processo criado está escrito nos registros.
O que é novo na versão 1.0 Beta 3:
- A sessão é renomeado usando o status de saída do processo ( código de saída ou sinal). Progresso da execução é exibida.
- O número total de processos é limitado (para proteger contra bombas fork) e um dump de memória é permitido.
- Bugs introduzidas pela troca de usuários foram corrigidos.
- A compatibilidade com Python 3000 e FreeBSD foi melhorada.
Requisitos :
- Python
- GCC
Comentários não encontrado