פרויקט Fusil היא תכנית fuzzing. נכון לעכשיו, זה ספציפי לתוכניות שורת הפקודה של לינוקס, אבל הקוד נועד לשימוש עם כל סוג פרויקט (תהליך מרחוק, שרת HTTP מזויף, שקע רשת פלומה, וכו '). פרויקט Fusil מבוסס על מערכת סוכן רב במקום ארכיטקטורת מונוליטי.
Fusil הוא פרויקט קוד פתוח שנכתב בפייתון רישיון GNU GPL.
fusil לנסות
עבור לספריית אב fusil ולהתחיל פרויקט xterm fuzzing:
הפרויקט / xterm.py --project fusil
תוצאת פלט:
fusil CD $
פרויקט -p fusil $ / xterm.py
[# פגישת 1] התחל פגישה
פסק זמן [xterm תהליך]! (1.0 שנייה)
(...)
[# פגישת 8] התחל פגישה
*** Glibc מזוהה *** / usr / bin / xterm: כפול חינם או שחיתות (אחרון!): 0x080ad2b8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7b957cd]
(...)
[תהליך שעון] תהליך נהרג על ידי SIGIOT אות
ציון מושב [פגישה # 8]: 100.0%
[בקשה] הצלחה עם פגישה # 8
מה חדש בהודעה זו:!
- פייתון 3 תמיכה
- fusil-פיתון:
- לשפר את התפקוד המפרט את כל המודולים פייתון: להשתמש sys.builtin_module_names וpkgutil.iter_modules ()
- רשימה שחורת מודולים נוספים, שיעורים ואירועים
מה חדש בגרסת 1.3.2:
- replay.py: sys.path להגדיר כדי להקל השימוש בFusil מבלי להתקין אותו
- תקן fusil-gettext: מתעלם משגיאות strace בlocateMO ()
- fusil-פיתון:
- אזהרות פייתון להסתיר
- listAllModules () כולל מודולים builtin
- האפשרות חדשה --only-ג לבדוק מודולים רק נכתבו ב- C
- דליפת זיכרון תיקון: מודולים לפרוק נבדק
- getFunctions תיקון (): שימוש גם isclass () כדי לזהות כיתות
- מגבלת זיכרון מרבי תהליך השבת Fusil
מה חדש בגרסת 1.3.1:
- fusil-פיתון: גילוי אוטומטי את כל המודולים במקום להשתמש ב רשימה סטטית של מודולים, לתפוס כל חריגה בעת טעינת מודול, רק פלומת פונקציות ציבוריות (מודול השימוש .__ כל __)
- FileWatch: להתעלם חלקים כפולים על שינוי שם פגישה
- הסרת חלקים שם פגישה לשכפל (למשל & quot;. חמוץ-שגיאות שגיאה & quot; = & gt; & quot; picke-שגיאה & quot;)
- replay.py: לא להפנות stdin / dev / null אם --ptrace משמש
- בדיקה מעבד: להגדיר משך מקסימום 3-10 שניות (ולשנות את שם הפגישה בהצלחה)
מה חדש בגרסה 1.3:
- צור fusil-GIMP
מה חדש בגרסת 1.2.1:
- תקן סוכן מכבשים של fuzzer Magick התמונה
- תקן AttachProcessPID בדיקה (): להפסיק את הבדיקה ביציאה תהליך
מה חדש בגרסה 1.2:
שינויים נראים לעין
- משתמש:
- Fusil דורש כעת פייתון 2.5
- תיעוד: לכתוב מדד (index.rst) ומדריך למשתמש (usage.rst)
- סקריפט Replay: להעתיק סביבת הבית לGDB ולתפוס setuid () שגיאה
- fusil-פיירפוקס: תומכים יותר פורמטים של קבצים (BMP, GIF, ICO, PNG, SVG), ליצור אפשרות שורת פקודת --test, לכתוב דף HTML לתוך קובץ index.html
- fusil-פיתון: לכתוב שגיאות לstderr (במקום stdout) כדי להימנע משגיאת Unicode (במיוחד עם Python3)
- FileWatch: לשנות את שם הפגישה עם & quot; long_output & quot; אם התכנית כתבה יותר מ קווי max_nbline
- fusil-פיתון: posix.fork רשימה שחורה (), כדי למנוע חיובי כוזב
- אם התהליך הוא נהרג על ידי אות, לשנות את שם פגישת שימוש בשם האות (כבר עבד אם הבאגים היו נכים)
- שינויי מפתחים:
- MangleAgent תומך בקבצי קלט מרובים
- צור DummyMangle: סוכן עם API MangleFile אבל לא לגעת תוכן קובץ כדי לבדוק את fuzzer
- רשת: קרוב () שיטה של NetworkClient וכיבוי שימוש ServerClient (SHUT_RDWR)
- NetworkServer משתמש צבר של 5 לקוחות לsocket.listen () (מקום 1)
- תיקוני באגים:
- תקן Directory.rmtree () ותסריט חוזר לפייתון 3.0
- ServerClient.sendBytes תקן (): socket.send שימוש () תוצאה כדי לקבל את הנתונים הבאים לקזז
מה חדש בגרסת 1.0 סופית:
- גרסה זו מוסיפה VLC וfuzzers zzuf, שידור חוזר. תסריט, פירו עם אפשרויות רבות (למשל --valgrind), ואפשרות --force-בטוח (כמו --unsafe אך ללא אישור).
מה חדש בגרסת 1.0 Beta 3:
- הפגישה באמצעות שם מעמד יציאת תהליך ( קוד יציאה או אות). התקדמות ביצוע מוצגת.
דרישות :
- פייתון
- GCC
תגובות לא נמצא