Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pyFlipper — Flipper Zero Python CLI रैपर | Kitploit
उपकरण/GitHubGitHub/wh00hw/pyflipper
ब्लूटूथ सुरक्षाIoT सुरक्षाआरएफआईडी/एनएफसी उपकरणवायरलेस सुरक्षाहार्डवेयर हैकिंगपेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्कहार्डवेयर और IoT सुरक्षारेड टीमिंग
GitHubwh00hw/pyflipper

pyFlipper

Flipper Zero Python CLI रैपर

4384981 महीना पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

PyFlipper

Flipper Zero Python CLI आवरण

लेख

  • एक रेस्तरां को कैसे हैक करें

कार्य और विशेषताएँ:

  • Flipper सीरियल CLI आवरण
  • वेबसॉकेट क्लाइंट इंटरफ़ेस
  • सादा TCP इंटरफ़ेस

नया क्या है (फर्मवेयर 1.x अनुकूलता)

यह रिलीज़ आवरण को वर्तमान Flipper Zero CLI के अनुरूप लाती है (वास्तविक हार्डवेयर, फर्मवेयर unlshd-089e पर मान्य):

  • नया info मॉड्यूल: flipper.info.device_info() / power_info() / power_debug_info() (आधुनिक info device / info power कमांड).
  • power info → info power: flipper.power.info() काम करता रहता है और अब आंतरिक रूप से info power पढ़ता है। flipper.power.otg_on()/otg_off() जोड़ा गया।
  • date: flipper.date.datetime() का उपयोग करें; वर्तमान आउटपुट प्रारूप के लिए पार्सिंग ठीक की गई।
  • स्टोरेज: आकार KB और KiB दोनों के रूप में पार्स किए जाते हैं, read() अब पूर्ण बहु-पंक्ति फ़ाइल सामग्री लौटाता है, और exFAT / खाली-लेबल कार्ड सही ढंग से पार्स होते हैं (फिक्स #21).
  • इन्फ्रारेड: प्रोटोकॉल सूची फर्मवेयर से लाइव पढ़ी जाती है, इसलिए NECext, Kaseikyo, RCA, Pioneer, … स्वचालित रूप से समर्थित हैं (फिक्स #15). नया flipper.ir.protocols().
  • debug → sysctl debug, subghz tx/rx को आवश्यक device आर्गुमेंट मिला, bt hci_info अपरिवर्तित।
  • NFC पुनर्लिखित वर्तमान इंटरैक्टिव उप-शेल (scan, dump, emulate, field, apdu, raw, mfu) के लिए, प्रति-UID Mifare Classic कुंजी कैश सहायकों (import_nfc_keys, write_key_cache) के साथ।
  • एकीकृत सीरियल लेयर (सीरियल / वेबसॉकेट / TCP) वर्तमान शेल के लिए ANSI-एस्केप हैंडलिंग के साथ, साथ ही एक हार्डवेयर-मुक्त परीक्षण सूट।
  • स्टॉक फर्मवेयर से हटाया गया (कस्टम फर्मवेयर के लिए रखा गया जो अभी भी उन्हें शिप करते हैं): ps (→ top), music_player, nfc detect.

सेटअप निर्देश:

root@kitploit:~
$ pip install pyflipper

परीक्षण किया गया:

  • Python 3.8.10 Linux 5.4.0 x86_64 पर
  • Python 3.9.10 Windows 10 पर
  • Python 3.10.5 Android 12 पर (Termux + OTGSerial2WebSocket NO ROOT REQUIRED)
  • Python 3.12 Linux पर (फर्मवेयर unlshd-089e)

उपयोग/उदाहरण

कनेक्शन

root@kitploit:~
from pyflipper import PyFlipper

# Local serial port
flipper = PyFlipper(com="/dev/ttyACM0")

# OR

# Remote serial2websocket server
flipper = PyFlipper(ws="ws://192.168.1.5:1337")

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

पावर

root@kitploit:~
# Info (on current firmware this reads `info power` under the hood)
info = flipper.power.info()

# Poweroff
flipper.power.off()

# Reboot
flipper.power.reboot()

# Reboot in DFU mode
flipper.power.reboot2dfu()

# Toggle the 5V OTG pin on the GPIO header
flipper.power.otg_on()
flipper.power.otg_off()

अपडेट/बैकअप

root@kitploit:~
# Install update from .fuf file
flipper.update.install(fuf_file="/ext/update.fuf")

# Backup Flipper to .tar file
flipper.update.backup(dest_tar_file="/ext/backup.tar")

# Restore Flipper from backup .tar file
flipper.update.restore(bak_tar_file="/ext/backup.tar")

लोडर

root@kitploit:~
# List installed apps
apps = flipper.loader.list()

# Open app
flipper.loader.open(app_name="Clock")

Flipper जानकारी

root@kitploit:~
# Get flipper date (datetime object)
date = flipper.date.datetime()

# Get flipper timestamp
timestamp = flipper.date.timestamp()

# Get device info dict (current firmware `info device`, dot-separated keys)
device_info = flipper.info.device_info()

# Get power info dict (current firmware `info power`)
power_info = flipper.info.power_info()

# Extended power/gauge debug info
power_debug = flipper.info.power_debug_info()

# Legacy `device_info` command (underscore-separated keys, still supported)
legacy_info = flipper.device_info.info()

# Get heap info dict
heap = flipper.free.info()

# Get free_blocks string
free_blocks = flipper.free.blocks()

# Get bluetooth info
bt_info = flipper.bt.info()

फर्मवेयर अनुकूलता. यह लाइब्रेरी अब वर्तमान Flipper Zero CLI (फर्मवेयर 1.x, Unleashed unlshd-089e के विरुद्ध सत्यापित) को लक्षित करती है। कुछ लीगेसी कमांड को आधिकारिक फर्मवेयर से हटा दिया गया है और इसलिए अब उपलब्ध नहीं हैं: ps (इंटरैक्टिव top द्वारा प्रतिस्थापित), music_player, और nfc detect (NFC अब एक इंटरैक्टिव उप-शेल है)। power info info power में स्थानांतरित हो गया, debug sysctl debug में स्थानांतरित हो गया, और storage अब आकार KiB में रिपोर्ट करता है — ये सभी ऊपर दिए गए आवरणों द्वारा पारदर्शी रूप से संभाले जाते हैं।

स्टोरेज

फाइलसिस्टम जानकारी

root@kitploit:~
# Get the storage filesystem info
ext_info = flipper.storage.info(fs="/ext")

एक्सप्लोरर

root@kitploit:~
# Get the storage /ext dict
ext_list = flipper.storage.list(path="/ext")

# Get the storage /ext tree dict
ext_tree = flipper.storage.tree(path="/ext")

# Get file info
file_info = flipper.storage.stat(file="/ext/foo/bar.txt")

# Make directory
flipper.storage.mkdir(new_dir="/ext/foo")

फ़ाइलें

root@kitploit:~
# Read file
plain_text = flipper.storage.read(file="/ext/foo/bar.txt")

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

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

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

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

# Write file in one chunk
file = "/ext/bar.txt"

text = """There are many variations of passages of Lorem Ipsum available, 
but the majority have suffered alteration in some form, by injected humour, 
or randomised words which don't look even slightly believable. 
If you are going to use a passage of Lorem Ipsum, 
you need to be sure there isn't anything embarrassing hidden in the middle of text. 
"""

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

# Write file using a listener
file = "/ext/foo.txt"

text_one = """There are many variations of passages of Lorem Ipsum available, 
but the majority have suffered alteration in some form, by injected humour, 
or randomised words which don't look even slightly believable. 
If you are going to use a passage of Lorem Ipsum, 
you need to be sure there isn't anything embarrassing hidden in the middle of text. 
"""

flipper.storage.write.start(file)

time.sleep(2)

flipper.storage.write.send(text_one)

text_two = """All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as 
necessary, making this the first true generator on the Internet.
 It uses a dictionary of over 200 Latin words, combined with a handful of 
 model sentence structures, to generate Lorem Ipsum which looks reasonable. 
The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
"""
flipper.storage.write.send(text_two)

time.sleep(3)

# Don't forget to stop
flipper.storage.write.stop()

LED/बैकलाइट

root@kitploit:~
# Set generic led on (r,b,g,bl)
flipper.led.set(led='r', value=255)

# Set blue led off
flipper.led.blue(value=0)

# Set green led value
flipper.led.green(value=175)

# Set backlight on
flipper.led.backlight_on()

# Set backlight off
flipper.led.backlight_off()

# Turn off led
flipper.led.off()

वाइब्रो

root@kitploit:~
# Set vibro True or False
flipper.vibro.set(True)

# Set vibro on
flipper.vibro.on()

# Set vibro off
flipper.vibro.off()

GPIO

root@kitploit:~
# Set gpio mode: 0 - input, 1 - output
flipper.gpio.mode(pin_name=PIN_NAME, value=1)

# Set gpio pin value: 0 - off, 1 - on
flipper.gpio.set(pin_name=PIN_NAME, value=1)

# Read gpio pin value
flipper.gpio.read(pin_name=PIN_NAME)

MusicPlayer

⚠️ आधिकारिक फर्मवेयर से हटा दिया गया। music_player CLI कमांड को स्टॉक फर्मवेयर से हटा दिया गया है (ऐप अब एक अलग .fap है)। ये कॉल उन कस्टम फर्मवेयर पर अभी भी काम करती हैं जो कमांड को रखते हैं (जैसे Unleashed / RogueMaster बिल्ड जो इसे शिप करते हैं); स्टॉक फर्मवेयर पर वे "command not found" उत्तर लौटाते हैं।

root@kitploit:~
# Play song in RTTTL format
rttl_song = "Littleroot Town - Pokemon:d=4,o=5,b=100:8c5,8f5,8g5,4a5,8p,8g5,8a5,8g5,8a5,8a#5,8p,4c6,8d6,8a5,8g5,8a5,8c#6,4d6,4e6,4d6,8a5,8g5,8f5,8e5,8f5,8a5,4d6,8d5,8e5,2f5,8c6,8a#5,8a#5,8a5,2f5,8d6,8a5,8a5,8g5,2f5,8p,8f5,8d5,8f5,8e5,4e5,8f5,8g5"

# Play in loop
flipper.music_player.play(rtttl_code=rttl_song)

# Stop loop
flipper.music_player.stop()

# Play for 20 seconds
flipper.music_player.play(rtttl_code=rttl_song, duration=20)

# Beep
flipper.music_player.beep()

# Beep for 5 seconds
flipper.music_player.beep(duration=5)

NFC

वर्तमान फर्मवेयर पर NFC एक इंटरैक्टिव उप-शेल (scanner, dump, emulate, field, apdu, raw, mfu) है। यह आवरण उप-शेल में प्रवेश करता है, एक कमांड चलाता है और फिर से बाहर निकलता है, इसलिए प्रत्येक विधि एक सामान्य ब्लॉकिंग कॉल है। detect() को scan() के उपनाम के रूप में रखा गया है।

root@kitploit:~
# Detect the tag type -> {'protocols': ['Mifare Classic'], 'raw': '...'} or None
tag = flipper.nfc.scan(timeout=5)

# Turn the NFC field on for a few seconds
flipper.nfc.field(timeout=3)

# Send an APDU (ISO14443-4 / ISO15693-3); protocol auto-detected if omitted
resp = flipper.nfc.apdu(["00A4 04 00", "A0 00"], protocol="14_4a")

# Send raw bytes with CRC appended
flipper.nfc.raw("93 20", protocol="14a", crc=True)

# Mifare Ultralight helpers
info = flipper.nfc.mfu_info()
block4 = flipper.nfc.mfu_read_block(4)
flipper.nfc.mfu_write_block(4, "00 01 02 03")

# Emulate a saved .nfc file
flipper.nfc.emulate(file="/ext/nfc/mycard.nfc", timeout=10)

CLI के माध्यम से Mifare Classic डंप करना

CLI dump नहीं चलाता है एक डिक्शनरी अटैक: यह कुंजियों को प्रति-UID कैश से पढ़ता है /ext/nfc/.cache/<UID>.keys (GUI द्वारा सफल रीड के बाद लिखी गई फ़ाइल)। यदि वह कैश गायब है, तो dump "failed to read" लौटाता है। आप इसे मौजूदा Flipper .nfc डंप से (पुनः) बना सकते हैं — कुंजियाँ प्रत्येक सेक्टर ट्रेलर से ली गई हैं:

root@kitploit:~
# Load keys from a native .nfc dump into the per-UID key cache
uid, cache_path = flipper.nfc.import_nfc_keys("/path/to/card.nfc")

# Now the CLI dump can read the card (protocol tokens: mfc, mfu, 14_4a, ...)
flipper.nfc.dump(protocol="mfc", file="/ext/nfc/card_dump.nfc")

RFID

root@kitploit:~
# Synchronous default timeout 5 seconds

# Read RFID
rfid = flipper.rfid.read()

# Emulate RFID
emulated = flipper.rfid.emulate(key_type="EM4100", key_data="5500824806")

# Write RFID
written = flipper.rfid.write(key_type="EM4100", key_data="5500824806")

SubGhz

root@kitploit:~
# Transmit hex_key N times (default count=10, device=0 -> CC1101_INT, 1 -> CC1101_EXT)
flipper.subghz.tx(hex_key="DEADBEEF", frequency=433920000, count=5, device=0)

# Receive (default frequency=433920000 device=0 raw=False timeout=5 seconds)
received = flipper.subghz.rx(frequency=433920000, device=0, raw=True, timeout=10)

# Replay recorded transmission
flipper.subghz.tx_from_file("/ext/subghz/foo.sub")

# Decode raw .sub file
decoded = flipper.subghz.decode_raw(sub_file="/ext/subghz/foo.sub")

इन्फ्रारेड

root@kitploit:~
# List the protocols supported by the connected firmware (read live from `ir` help)
protocols = flipper.ir.protocols()

# Transmit hex_address and hex_command selecting a protocol
flipper.ir.tx(protocol="Samsung32", hex_address="C000FFEE", hex_command="DEADBEEF")

# NECext is now supported (protocol list is read from the firmware, not hardcoded)
flipper.ir.tx(protocol="NECext", hex_address="EF00", hex_command="FD02")

# Raw Transmit samples
flipper.ir.tx_raw(frequency=38000, duty_cycle=0.33, samples=[1337, 8888, 3000, 5555])

# Synchronous default timeout 5 seconds
# Receive tx
r = flipper.ir.rx(timeout=10)

IKEY

root@kitploit:~
# Read (default timeout 5 seconds)
ikey = flipper.ikey.read()

# Write (default timeout 5 seconds)
flipper.ikey.write(key_type="Dallas", key_data="DEADBEEFCOOOFFEE")

# Emulate (default timeout 5 seconds)
flipper.ikey.emulate(key_type="Dallas", key_data="DEADBEEFCOOOFFEE")

लॉग

root@kitploit:~
# Attach event logger (default timeout 10 seconds)
logs = flipper.log.attach()

डीबग

root@kitploit:~
# Activate debug mode (issues `sysctl debug 1` on current firmware)
flipper.debug.on()

# Deactivate debug mode
flipper.debug.off()

वनवायर

root@kitploit:~
# Search
response = flipper.onewire.search()

I2C

root@kitploit:~
# Get
response = flipper.i2c.get()

इनपुट

root@kitploit:~
# Input dump
dump = flipper.input.dump()

# Send input
flipper.input.send("up", "press")

परीक्षण

सूट दो भागों में विभाजित है:

  • हार्डवेयर-मुक्त परीक्षण (test_serial_wrapper.py, test_commands.py) कहीं भी चलते हैं — वे लाइब्रेरी को एक सिम्युलेटेड सीरियल पोर्ट (tests/fake_serial.py) के विरुद्ध चलाते हैं जो Flipper CLI फ्रेमिंग को पुन: उत्पन्न करता है, इसलिए किसी डिवाइस की आवश्यकता नहीं है। ये CI में चलते हैं।
  • हार्डवेयर इंटीग्रेशन परीक्षण (test_hardware.py) एक वास्तविक Flipper से बात करते हैं और जब कोई डिवाइस कनेक्ट नहीं होता है तो स्वचालित रूप से छोड़ दिए जाते हैं। किसी विशिष्ट पोर्ट को निर्धारित करने के लिए FLIPPER_COM=/dev/ttyACM0 सेट करें।
root@kitploit:~
# Everything (hardware tests self-skip if no Flipper is attached)
python -m unittest discover -s tests -p "test_*.py" -v

# Only the hardware-free tests
python -m unittest tests.test_serial_wrapper tests.test_commands -v

अनुकूलन

बेझिझक किसी भी तरह से योगदान दें

  • कतार थ्रेड ऑर्केस्ट्रेटर
  • सभी CLI फ़ंक्शन लागू करें
  • एसिंक SubGhz चैट

लाइसेंस

MIT

मुझे एक पिंट खरीदें

ZEC: zs13zdde4mu5rj5yjm2kt6al5yxz2qjjjgxau9zaxs6np9ldxj65cepfyw55qvfp9v8cvd725f7tz7

ETH: 0xef3cF1Eb85382EdEEE10A2df2b348866a35C6A54

BTC: 15umRZXBzgUacwLVgpLPoa2gv7MyoTrKat

संपर्क

  • Discord: white_rabbit#4124
  • Twitter: @nic_whr
  • GPG: 0x94EDEADC
टूल डाउनलोड करें