Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pyFlipper — Wrapper de línea de comandos en Python para Flipper Zero | Kitploit
Herramientas/GitHubGitHub/wh00hw/pyflipper
Seguridad BluetoothSeguridad IoTHerramientas RFID/NFCSeguridad InalámbricaHacking de HardwarePruebas de PenetraciónUtilidades y FrameworksSeguridad de Hardware e IoTRed Teaming
GitHubwh00hw/pyflipper

pyFlipper

Wrapper de línea de comandos en Python para Flipper Zero

4384922hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

PyFlipper

Envoltorio CLI de Python para Flipper Zero

Artículos

  • Cómo hackear un restaurante

Funciones y características:

  • Envoltorio CLI serie para Flipper
  • Interfaz de cliente WebSocket
  • Interfaz TCP simple

Novedades (compatibilidad con firmware 1.x)

Esta versión actualiza el envoltorio para alinearse con la CLI actual del Flipper Zero (validado en hardware real, firmware unlshd-089e):

  • Nuevo módulo info: flipper.info.device_info() / power_info() / power_debug_info() (los comandos modernos info device / info power).
  • power info → info power: flipper.power.info() sigue funcionando y ahora lee info power internamente. Se agregaron flipper.power.otg_on()/otg_off().
  • date: use flipper.date.datetime(); se corrigió el análisis para el formato de salida actual.
  • Almacenamiento: los tamaños se analizan tanto en KB como en KiB, read() ahora devuelve el contenido completo del archivo con múltiples líneas, y las tarjetas exFAT / sin etiqueta se analizan correctamente (corrige #21).
  • Infrarrojos: la lista de protocolos se lee en vivo desde el firmware, por lo que NECext, Kaseikyo, RCA, Pioneer, … son compatibles automáticamente (corrige #15). Nueva función flipper.ir.protocols().
  • debug → sysctl debug, subghz tx/rx obtuvo el argumento device requerido, bt hci_info sin cambios.
  • NFC reescrito para el sub-shell interactivo actual (scan, dump, emulate, field, apdu, raw, mfu) con ayudas de caché de claves Mifare Classic por UID (import_nfc_keys, write_key_cache).
  • Capa serie unificada (serial / websocket / TCP) con manejo de secuencias de escape ANSI para el shell actual, más un conjunto de pruebas sin necesidad de hardware.
  • Eliminado del firmware oficial (se mantiene para firmwares personalizados que aún lo incluyen): ps (→ top), music_player, nfc detect.

Instrucciones de configuración:

$ pip install pyflipper

Probado en:

  • Python 3.8.10 en Linux 5.4.0 x86_64
  • Python 3.9.10 en Windows 10
  • Python 3.10.5 en Android 12 (Termux + OTGSerial2WebSocket SIN ROOT REQUERIDO)
  • Python 3.12 en Linux (firmware unlshd-089e)

Uso/Ejemplos

Conexión

from pyflipper import PyFlipper

# Puerto serie local
flipper = PyFlipper(com="/dev/ttyACM0")

# O

# Servidor remoto serial2websocket
flipper = PyFlipper(ws="ws://192.168.1.5:1337")

# TCP
flipper = PyFlipper(tcp='192.168.89.222:22170')

Energía

# Información (en el firmware actual esto lee `info power` internamente)
info = flipper.power.info()

# Apagar
flipper.power.off()

# Reiniciar
flipper.power.reboot()

# Reiniciar en modo DFU
flipper.power.reboot2dfu()

# Activar/desactivar el pin OTG de 5V en el encabezado GPIO
flipper.power.otg_on()
flipper.power.otg_off()

Actualización/Copia de seguridad

# Instalar actualización desde archivo .fuf
flipper.update.install(fuf_file="/ext/update.fuf")

# Hacer copia de seguridad del Flipper en archivo .tar
flipper.update.backup(dest_tar_file="/ext/backup.tar")

# Restaurar Flipper desde archivo .tar de copia de seguridad
flipper.update.restore(bak_tar_file="/ext/backup.tar")

Cargador

# Listar aplicaciones instaladas
apps = flipper.loader.list()

# Abrir aplicación
flipper.loader.open(app_name="Clock")

Información del Flipper

# Obtener fecha del flipper (objeto datetime)
date = flipper.date.datetime()

# Obtener timestamp del flipper
timestamp = flipper.date.timestamp()

# Obtener diccionario de información del dispositivo (firmware actual `info device`, claves separadas por punto)
device_info = flipper.info.device_info()

# Obtener diccionario de información de energía (firmware actual `info power`)
power_info = flipper.info.power_info()

# Información extendida de depuración de energía/medidor
power_debug = flipper.info.power_debug_info()

# Comando `device_info` heredado (claves separadas por guión bajo, aún compatible)
legacy_info = flipper.device_info.info()

# Obtener diccionario de información del heap
heap = flipper.free.info()

# Obtener cadena free_blocks
free_blocks = flipper.free.blocks()

# Obtener información de Bluetooth
bt_info = flipper.bt.info()

Compatibilidad con firmware. Esta biblioteca ahora apunta a la CLI actual del Flipper Zero (firmware 1.x, verificado contra Unleashed unlshd-089e). Algunos comandos heredados fueron eliminados del firmware oficial y por lo tanto ya no están disponibles: ps (reemplazado por el top interactivo), music_player y nfc detect (NFC ahora es un sub-shell interactivo). power info se movió a info power, debug se movió a sysctl debug, y storage ahora reporta tamaños en KiB — todo manejado de forma transparente por los envoltorios anteriores.

Almacenamiento

Información del sistema de archivos

# Obtener información del sistema de archivos de almacenamiento
ext_info = flipper.storage.info(fs="/ext")

Explorador

# Obtener el diccionario de /ext del almacenamiento
ext_list = flipper.storage.list(path="/ext")

# Obtener el diccionario del árbol de /ext del almacenamiento
ext_tree = flipper.storage.tree(path="/ext")

# Obtener información de un archivo
file_info = flipper.storage.stat(file="/ext/foo/bar.txt")

# Crear directorio
flipper.storage.mkdir(new_dir="/ext/foo")

Archivos

# Leer archivo
plain_text = flipper.storage.read(file="/ext/foo/bar.txt")

# Eliminar archivo
flipper.storage.remove(file="/ext/foo/bar.txt")

# Copiar archivo
flipper.storage.copy(src="/ext/foo/source.txt", dest="/ext/bar/destination.txt")

# Renombrar archivo
flipper.storage.rename(file="/ext/foo/bar.txt", new_file="/ext/foo/rab.txt")

# Hash MD5 de archivo
md5_hash = flipper.storage.md5(file="/ext/foo/bar.txt")

# Escribir archivo en un solo bloque
file = "/ext/bar.txt"

text = """Hay muchas variaciones de pasajes de Lorem Ipsum disponibles,
pero la mayoría han sufrido alteraciones de alguna forma, ya sea por humor inyectado,
o palabras aleatorias que no parecen ni siquiera ligeramente creíbles.
Si va a usar un pasaje de Lorem Ipsum,
debe asegurarse de que no haya nada vergonzoso escondido en medio del texto.
"""

flipper.storage.write.file(path=file, text=text)

# Escribir archivo usando un listener
file = "/ext/foo.txt"

text_one = """Hay muchas variaciones de pasajes de Lorem Ipsum disponibles,
pero la mayoría han sufrido alteraciones de alguna forma, ya sea por humor inyectado,
o palabras aleatorias que no parecen ni siquiera ligeramente creíbles.
Si va a usar un pasaje de Lorem Ipsum,
debe asegurarse de que no haya nada vergonzoso escondido en medio del texto.
"""

flipper.storage.write.start(file)

time.sleep(2)

flipper.storage.write.send(text_one)

text_two = """Todos los generadores de Lorem Ipsum en Internet tienden a repetir fragmentos predefinidos según sea necesario,
lo que lo convierte en el primer generador verdadero en Internet.
Utiliza un diccionario de más de 200 palabras latinas, combinado con un puñado de
estructuras de oraciones modelo, para generar Lorem Ipsum que parece razonable.
El Lorem Ipsum generado por lo tanto está siempre libre de repeticiones, humor inyectado o palabras no características, etc.
"""
flipper.storage.write.send(text_two)

time.sleep(3)

# No olvide detener
flipper.storage.write.stop()

LED/Retroiluminación

# Establecer led genérico (r,b,g,bl)
flipper.led.set(led='r', value=255)

# Apagar led azul
flipper.led.blue(value=0)

# Establecer valor de led verde
flipper.led.green(value=175)
Descargar herramienta