
Toolkit di assembler puro Python per creare shellcode, patchare dinamicamente binari e strumentare immagini firmware per debug e fuzzing su architetture ARM, PPC, RISC-V e IA-32.
Flopz è un toolkit assembler scritto in puro Python. Usalo per:
Se desideri vedere implementata un'altra architettura, sentiti libero di contattarci in qualsiasi momento - ci piace farlo!
Invece di limitarsi a convertire stringhe assembly in byte, Flopz mira a rendere più facile il patching interattivo e la strumentazione del firmware. Per questo, fornisce un'API a basso livello di istruzioni e registri che consente di costruire shellcode, moduli e funzioni direttamente in Python, senza dover gestire stringhe di sintassi assembly.
Nei test di sicurezza embedded, non esistono due dispositivi uguali: per questo motivo, offriamo un approccio orientato agli oggetti per definire target personalizzati, in modo che quanti più componenti possibile possano essere riutilizzati tra progetti che coinvolgono dispositivi e architetture di processori diversi.
Poiché Flopz è stato scritto da zero in puro Python, potrebbe non supportare tutte le architetture come altri strumenti (ad esempio quelli basati su Clang/LLVM). Tuttavia, il nostro obiettivo è coprire esattamente quelle architetture che interessano gli esperti di sicurezza embedded e che potrebbero non essere coperte da altri strumenti. Inoltre, estendere Flopz è reso meno complesso grazie a un set manutenuto di test unitari e documentazione del codice.
Flopz è pensato per lavorare insieme ad altri strumenti. In particolare, esiste una estensione per Ghidra che aiuta a strumentare il firmware direttamente in Ghidra.
La documentazione fornita rende facile lavorare con Flopz e utilizzare la sua interfaccia nei tuoi progetti.