Проект Fusil це програма Fuzzing. В даний час, це характерний для програм командних ліній Linux, але код призначений для використання з будь-яким типом проекту (віддалений процес, підроблені сервера HTTP, пуху мережевий сокет, і т.д.). Проект Fusil заснована на системі замість монолітної архітектури мульти-агента.
Fusil проект з відкритим вихідним написано в Python під ліцензією GNU GPL.
Спробуйте фузея
Перейти в батьківський каталог фузея і почати Fuzzing проект XTERM:
фузея --project проекту / xterm.py
Вихід результат:
$ Кд фузея
$ Фузея -p проект / xterm.py
[Сесія # 1] Початок сеансу
[Процес Xterm] Тайм-аут! (1.0 секунди)
(...)
[# Сесія 8] Початок сеансу
*** *** Glibc виявлено / USR / бен / Xterm: подвійний безкоштовно або корупція (пред!): 0x080ad2b8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7b957cd]
(...)
[Процес годинник] Процес убитий сигналу SIGIOT
[# Сесія 8] оцінка Сесія: 100,0%
[Додаток] Успіх сесії # 8
Що нового У цьому випуску:
- Python 3 підтримка
- фузея-пітон:
- поліпшити функцію перерахування всіх модулів Python: використовувати sys.builtin_module_names і pkgutil.iter_modules ()
- чорний список декількох модулів, класи і функції
Що нового у версії 1.3.2:
- replay.py: встановити sys.path, щоб полегшити Використання фузея без установки
- Виправлена фузея-Gettext: ігнорувати помилки Strace в locateMO ()
- фузея-пітон:
- сховати Python попередження
- listAllModules () включає BUILTIN модулі
- Нова опція --only-с, щоб перевірити тільки модулі, написані на C
- витік виправлення пам'яті: вивантаження випробування модулів
- виправити getFunctions (): використання також isclass () для визначення класів
- граничний процес Відключити Fusil максимальний обсяг пам'яті
Що нового у версії 1.3.1:
- фузея-пітон: автоматичного виявлення всіх модулів замість статичний список модулів, зловити будь-який виняток при завантаженні модуля, тільки розмивають державні функції (використання модуля .__ все __)
- FileWatch: ігнорувати повторювані частини на сесії перейменування
- Видалити сесія частини дублювати найменування (наприклад, & Quot ;. Розсіл-помилок помилку & Quot; = & GT; & Quot; picke помилок і Quot;)
- replay.py: чи не перенаправити стандартний ввід в / DEV / нуль, якщо --ptrace використовується
- Процесор зонд: встановлено максимальний строк від 3 до 10 секунд (і перейменувати сеанс на успіх)
Що нового у версії 1.3:
- Створити фузея-каркасної
- Видалити кодування з WriteCode: використовуйте вбудована відкритий () замість codecs.open (), тому що файли, створені Open () набагато швидше
- Оптимізація FileWatch: чи не перекомпілювати моделі на кожній сесії
- фузея тепер залежить від пітона-ptrace 0,6
- Не використовуйте close_fds аргумент subprocess.Popen () на ОС Windows
- Конфігурація Fix диктора: normal_calm_load, normal_calm_sleep, slow_calm_load, ключі slow_calm_sleep глобальні параметри поплавка, що не ціле
- FileWatch використовує шаблон, щоб перейменувати сеанс
Що нового у версії 1.2.1:
- Fix калічити агентом Image Магічного fuzzer
- Fix AttachProcessPID () зонд: зупинити датчик на виході процесу
Що нового у версії 1.2:
видимих змін
- Система
- Fusil тепер вимагає Python 2.5
- Документація: написати індекс (index.rst) і керівництво користувача (usage.rst)
- Повтор сценарій: скопіювати HOME середовище для GDB і зловити Setuid () помилка
- фузея-Firefox: підтримка форматів більше (BMP, GIF, ICO, PNG, SVG), створити --test параметр командного рядка, написати сторінку HTML в файл index.html
- фузея-пітон: написати помилки в стандартний потік помилок (замість стандартний висновок), щоб уникнути помилки Unicode (особливо з python3)
- FileWatch: перейменувати сесію & Quot; long_output & Quot; якщо програма пише більш max_nbline ліній
- фузея-пітон: чорний список posix.fork (), щоб уникнути помилкових спрацьовувань
- Якщо процес буде убитий за сигналом, перейменувати сеанс, використовуючи ім'я сигналу (вже працював, якщо відладчик був відключений)
- зміни розробника:
- MangleAgent підтримує декілька вхідних файлів
- Створити DummyMangle: агент з MangleFile API, але не чіпай вміст файлу для перевірки fuzzer
- Мережа: закрити () метод NetworkClient і використання ServerClient вимикання (SHUT_RDWR)
- NetworkServer використовує відставання 5 клієнтів для socket.listen () (замість 1)
- Виправлення:
- Fix Directory.rmtree () і відтворення сценарій Python 3.0
- Fix ServerClient.sendBytes (): використання socket.send () результат, щоб отримати такі дані зміщення
Що нового у версії 1.0 Final:
- Цей реліз додає VLC і zzuf Фузер, повтор. ру сценарій з великою кількістю опцій (наприклад, --valgrind), і варіант --force-небезпечно (наприклад, --unsafe але без підтвердження).
- Це завжди використовує нульове пристрій в якості стандартного вводу для дочірніх процесів, щоб уникнути блокування fuzzer якщо процес читає стандартний ввід.
- створено ідентифікатор процесу написано в журналах.
Що нового у версії 1.0 Beta 3:
- сесія перейменувати за допомогою статусу процес виходу ( Код виходу або сигнал). Відображається хід виконання.
- Загальна кількість процесів обмежена (для захисту від вилки бомб) і дампа допускається.
- Помилки, введені перемикання користувачів було зафіксовано.
- Сумісність з Python 3000 і FreeBSD була покращена.
Вимоги
- Python
- GCC
Коментар не знайдено