Proiectul Fusil este un program fuzzing. În prezent, este specific programelor de linie de comandă Linux, dar codul este proiectat pentru a fi folosit cu orice tip de proiect (proces de la distanță, server HTTP fals, puf priza de rețea, etc.). Proiectul Fusil se bazează pe un sistem multi-agent în locul unei arhitecturi monolit.
Fusil este un proiect open source scris în Python sub licenta GNU GPL.
Încercați Fusil
Du-te la directorul părinte Fusil și începe proiect xterm fuzzing:
Fusil --project proiect / xterm.py
Rezultatul de ieșire:
$ Cd Fusil
Proiectul -p $ Fusil / xterm.py
[Sesiune # 1] Începe sesiune
[Proces xterm] Timeout! (1.0 secunde)
(...)
[Sesiune # 8] Începe sesiune
*** Glibc detectat *** / usr / bin / xterm: dublu liberă sau corupție (precedentă!): 0x080ad2b8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7b957cd]
(...)
[Procesul de ceas] Procesul omorât prin semnal SIGIOT
[Sesiune # 8] scor Sesiunea: 100,0%
[Cerere] Succes cu sesiunea # 8
Ce este nou în această versiune:
- Python 3 de sprijin
- Fusil-python:
- imbunatatirea functiei listarea toate modulele Python: folosiți sys.builtin_module_names si pkgutil.iter_modules ()
- lista neagra multe module, clase și funcții
Ce este nou în versiunea 1.3.2:
- replay.py: set sys.path pentru a ușura folosirea Fusil fără a instala aceasta li>
- Fix Fusil-gettext: ignora erorile strace în locateMO ()
- Fusil-python:
- avertismente ascunde Python
- listAllModules () include module builtin comanda
- noua optiune --only-c pentru a testa numai module scrise în C
- scurgere de memorie fix: module descărcare testat
- getFunctions fixe (): utilizare isclass asemenea () pentru a detecta clase
- limita proces Disable Fusil memorie maximă
Ce este nou în versiunea 1.3.1:
- Fusil-python: autodiscover toate modulele loc de a folosi o listă statică de module, prinde orice excepție atunci când încărcarea unui modul, numai puf funcțiilor publice (modul de utilizare .__ __ toate)
- FileWatch: ignora piese duplicat pe Redenumire sesiune
- Eliminare părți nume de sesiune duplicat (de exemplu, & quot;. Zeama eroare eroare & quot; = & gt; & quot; picke eroare & quot;)
- replay.py: Nu redirecționa stdin la / dev / null daca --ptrace este folosit
- sondă CPU: set durata de maxim 3-10 doi (și redenumi sesiunea de succesul)
Ce este nou în versiunea 1.3:
- Creare Fusil-gimp
- Eliminați charset din WriteCode: folosiți interna deschis () în loc codecs.open (), deoarece fișierele create de open () sunt mult mai rapide
- Optimizare FileWatch: Nu recompila modele la fiecare sesiune
- Fusil depinde acum de python-ptrace 0,6
- Nu utilizați argument close_fds de subprocess.Popen () pe Windows
- cititor de configurare Fix: opțiuni globale normal_calm_load, normal_calm_sleep, slow_calm_load, chei slow_calm_sleep sunt float, nu integer
- FileWatch folosește modelul a redenumi sesiunea
Ce este nou în versiunea 1.2.1:
- Fix agent mangle a imaginii Fuzzer Magick
- Fix AttachProcessPID () sondă: opri sonda la procesul de ieșire
Ce este nou în versiunea 1.2:
- User schimbări vizibile:
- Fusil necesită acum Python 2.5
- Documentație: scrie un index (index.rst) și un ghid de utilizare (usage.rst)
- script Replay: copie HOME mediu pentru GDB și captura setuid () Eroare
- Fusil-firefox: sprijini mai multe formate de fișiere (BMP, GIF, ICO, PNG, SVG), crearea --test opțiune de linie de comandă, scrie pagina HTML în fișierul index.html
- Fusil-python: scrie erori la stderr (în loc de stdout) pentru a evita erori unicode (în special cu Python3)
- FileWatch: redenumi sesiunea cu & quot; long_output & quot; în cazul în care programul a scris mai mult de linii max_nbline
- Fusil-python: posix.fork lista neagră () pentru a evita fals pozitive
- Dacă procesul este ucis de un semnal, redenumi sesiunea folosind numele de semnal (deja a lucrat dacă debugger a fost dezactivat)
- schimbări Developer:
- MangleAgent acceptă mai multe fișiere de intrare
- Creare DummyMangle: agent cu MangleFile API, dar nu atinge conținutul fișierului pentru a testa Fuzzer
- Network: aproape (metoda de NetworkClient și utilizare ServerClient shutdown (SHUT_RDWR))
- NetworkServer folosește un restante de 5 clienti pentru socket.listen () (în loc de 1)
- Remedieri de erori:
- Fix Directory.rmtree () și script reluarea pentru Python 3.0
- ServerClient.sendBytes Fix (): utilizarea socket.send () rezultat pentru a obține următoarele date compensate
Ce este nou în versiunea 1.0 Final:
- Această versiune adaugă VLC și fuzzers zzuf, o reluare. script py cu mai multe optiuni (ex --valgrind), și o opțiune de---force nesigur (cum ar fi, dar fără --unsafe confirmarea).
- Se folosește întotdeauna un dispozitiv null ca stdin pentru procesele copil, pentru a evita blocarea Fuzzer dacă procesul citește stdin.
- Identificatorul de proces a creat este scris in jurnalele.
Ce este nou în versiunea 1.0 Beta 3:
- Sesiunea este redenumit folosind starea de proces de iesire ( Codul de ieșire sau semnal). Se afișează progresul execuție.
- Numărul total de procese este limitată (pentru a proteja impotriva bombelor furculiță) și un depozit de bază este permisă.
- Bugs introduse de comutare de utilizator au fost fixate.
- Compatibilitatea cu Python 3000 si FreeBSD a fost îmbunătățită.
Cerințe :
- Python
- GCC
Comentariile nu a fost găsit