โครงการ Fusil เป็นโปรแกรม fuzzing ปัจจุบันก็เฉพาะกับโปรแกรมบรรทัดคำสั่ง Linux แต่รหัสที่ถูกออกแบบมาเพื่อใช้กับโครงการประเภทใด ๆ (กระบวนการระยะไกลเซิร์ฟเวอร์ HTTP ปลอมซ็อกเก็ตเครือข่ายฝอย ฯลฯ ) โครงการ Fusil จะขึ้นอยู่กับหลายระบบตัวแทนแทนสถาปัตยกรรมเสาหิน
Fusil เป็นโครงการ opensource เขียนในหลามภายใต้ใบอนุญาต GNU GPL
ลอง Fusil
ไปที่ไดเรกทอรีแม่ Fusil และเริ่มต้นโครงการ fuzzing xterm:
Fusil --project โครงการ / xterm.py
ผลการส่งออก:
$ cd Fusil
$ Fusil โครงการ -p / xterm.py
[เซสชั่น # 1] เริ่มเซสชั่น
[กระบวนการ xterm] หมดเวลา! (1.0 วินาที)
(... )
[เซสชั่นที่ 8] เริ่มเซสชั่น
*** *** glibc ตรวจพบ / usr / bin / xterm: คู่ฟรีหรือการทุจริต (ก): 0x080ad2b8 ***
======= ติดตามย้อนหลัง: =========
/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 เพื่อทดสอบโมดูลเพียงเขียนใน C
- แก้ไขการรั่วไหลของหน่วยความจำ: ยกเลิกการโหลดโมดูลทดสอบ
- แก้ไข getFunctions (): ใช้ยัง isclass () เพื่อตรวจสอบการเรียน
- ขั้นตอนการปิดการใช้งาน Fusil ขีด จำกัด ของหน่วยความจำสูงสุด
มีอะไรใหม่ ในรุ่น 1.3.1:
- Fusil-หลาม: Autodiscover โมดูลทั้งหมดแทนการใช้ รายการคงที่ของโมดูลจับข้อยกเว้นใด ๆ เมื่อโหลดโมดูลเพียงฝอยฟังก์ชั่นของประชาชน (ใช้โมดูล .__ ทุก __)
- FileWatch: ไม่สนใจส่วนที่ซ้ำกันในเซสชั่นการเปลี่ยนชื่อ
- ลบส่วนชื่อเซสชั่นที่ซ้ำกัน (เช่น & quot;. ดองข้อผิดพลาดข้อผิดพลาด & quot; = & gt; & quot; picke ข้อผิดพลาด & quot;)
- replay.py: ไม่ต้องเปลี่ยนเส้นทาง stdin / dev / null ถ้า --ptrace จะใช้
- สอบสวน CPU: กำหนดระยะเวลาสูงสุด 3-10 วินาที (และเปลี่ยนชื่อเซสชั่นกับความสำเร็จ)
มีอะไรใหม่ ในรุ่น 1.3:
- สร้าง Fusil-ขลิบด้าย
- ลบ charset จาก WriteCode: ใช้ builtin เปิด () แทน codecs.open () เพราะไฟล์ที่สร้างขึ้นโดยเปิด () มีความรวดเร็วยิ่งขึ้น
- เพิ่มประสิทธิภาพ FileWatch: ไม่ต้องคอมไพล์รูปแบบในแต่ละเซสชั่น
- Fusil ตอนนี้ขึ้นอยู่กับหลาม ptrace 0.6
- อย่าใช้ close_fds ข้อโต้แย้งของ subprocess.Popen () บน Windows
- อ่านการตั้งค่าแก้ไข: normal_calm_load, normal_calm_sleep, slow_calm_load คีย์ slow_calm_sleep ตัวเลือกทั่วโลกมีลอยไม่จำนวนเต็ม
- FileWatch ใช้รูปแบบการเปลี่ยนชื่อเซสชั่น
มีอะไรใหม่ ในรุ่น 1.2.1:
- แก้ไขตัวแทนฉีกภาพของเวทมนตร์ fuzzer
- แก้ไข AttachProcessPID () สอบสวน: หยุดกระบวนการสอบสวนที่ออก
มีอะไรใหม่ ในรุ่น 1.2:
- ผู้ใช้สามารถมองเห็นการเปลี่ยนแปลง:
- Fusil ตอนนี้ต้องหลาม 2.5
- เอกสาร: เขียนดัชนี (index.rst) และคู่มือผู้ใช้ (usage.rst)
- สคริปต์ Replay: คัดลอกสภาพแวดล้อมที่บ้านสำหรับ GDB และจับ setuid () ข้อผิดพลาด
- Fusil-ของ Firefox: การสนับสนุนมากขึ้นในรูปแบบไฟล์ (BMP, GIF, ICO, PNG, SVG) สร้างตัวเลือก --test บรรทัดคำสั่งเขียนหน้า HTML เป็นไฟล์ index.html
- Fusil-หลาม: เขียนข้อผิดพลาดในการ stderr (แทน stdout) เพื่อหลีกเลี่ยงข้อผิดพลาดยูนิโค้ด (โดยเฉพาะอย่างยิ่งกับ Python3)
- FileWatch: เปลี่ยนชื่อเซสชั่นที่มี & quot; long_output & quot; ถ้าโปรแกรมเขียนมากกว่าสาย max_nbline
- Fusil-หลาม: บัญชีดำ posix.fork () เพื่อหลีกเลี่ยงการผิดพลาด
- หากกระบวนการถูกฆ่าตายโดยสัญญาณเปลี่ยนชื่อเซสชั่นการใช้ชื่อสัญญาณ (ทำงานอยู่แล้วถ้าดีบักถูกปิดใช้งาน)
- การเปลี่ยนแปลงผู้พัฒนา:
- MangleAgent สนับสนุนไฟล์ใส่หลาย
- สร้าง DummyMangle: ตัวแทนที่มี MangleFile API แต่ไม่ได้สัมผัสเนื้อหาของแฟ้มที่จะทดสอบ fuzzer
- เครือข่าย: ปิด () วิธีการ NetworkClient และปิดการใช้งาน ServerClient (SHUT_RDWR)
- NetworkServer ใช้ค้างของลูกค้า 5 สำหรับ socket.listen () (แทน 1)
- Bugfixes:
- แก้ไข Directory.rmtree () และสคริปต์ replay สำหรับ Python 3.0
- ServerClient.sendBytes แก้ไข (): ใช้ socket.send () ผลที่จะได้รับข้อมูลต่อไปชดเชย
มีอะไรใหม่ ในรุ่น 1.0 รอบชิงชนะเลิศ:
- ข่าวประชาสัมพันธ์ฉบับนี้เพิ่ม VLC และ fuzzers zzuf, รีเพลย์ สคริปต์ PY มีตัวเลือกมากมาย (เช่น --valgrind) และเป็นตัวเลือกที่ --force-ที่ไม่ปลอดภัย (เช่น --unsafe แต่ไม่ยืนยัน).
- มันก็จะใช้อุปกรณ์ที่เป็น null stdin สำหรับกระบวนการที่เด็กเพื่อหลีกเลี่ยงการปิดกั้น fuzzer ถ้ากระบวนการอ่าน stdin.
- ระบุกระบวนการสร้างที่เขียนไว้ในบันทึก.
มีอะไรใหม่ ในรุ่น 1.0 Beta 3:
- เซสชั่นเปลี่ยนสถานะออกโดยใช้กระบวนการ ( รหัสทางออกหรือสัญญาณ) ความคืบหน้าการดำเนินการจะปรากฏ.
- จำนวนรวมของกระบวนการจะถูก จำกัด (เพื่อป้องกันการระเบิดส้อม) และถ่ายโอนข้อมูลหลักที่ได้รับอนุญาต.
- บักนำมาใช้โดยการสลับผู้ใช้ได้รับการแก้ไข.
- ความเข้ากันได้กับงูหลาม 3000 และได้รับการปรับปรุง FreeBSD.
ต้องการ
- งูใหญ่
- GCC
ความคิดเห็นที่ไม่พบ