Obsah:

Hacknite si garážové brány: 5 krokov
Hacknite si garážové brány: 5 krokov

Video: Hacknite si garážové brány: 5 krokov

Video: Hacknite si garážové brány: 5 krokov
Video: Страшные истории. Странные правила ТСЖ. Ночью он забрался в наш дом. Ужасы 2024, Júl
Anonim
Hacknite si garážové brány
Hacknite si garážové brány
Hacknite si garážové brány
Hacknite si garážové brány
Hacknite si garážové brány
Hacknite si garážové brány

Kto by nikdy nesníval o tom, že pôjde domov len s telefónnou aplikáciou alebo bude môcť počúvať a kopírovať dátové električky? Som rád, že sa s vami môžem podeliť o to, čo som si uvedomil a ako som postupoval. Začal som s týmto projektom po druhom zabudnutí kľúčov …

Kódovanie, typ modulácie, frekvencia nosiča, informácie o pripojení bluetooth a údaje, ktoré ukážem na príklade, samozrejme nie sú originály, radšej nemám návštevníkov;-).

Táto aplikácia sa týka akéhokoľvek objektu, ktorý je schopný prijímať digitálne informácie elektromagnetickými vlnami (garážová brána, auto, niektoré žalúzie …). Celý systém sa skladá z objektu prepojeného bluetooth s telefónom, pričom tento objekt je schopný odosielať rovnaké rámce ako diaľkové ovládanie spojené s tým, čo chceme hacknúť. Tento objekt som umiestnil do svojej garáže a môžem sa k nemu pripojiť zvonku.

Krok 1: Vybavenie

Vybavenie
Vybavenie
Vybavenie
Vybavenie

Použité jazyky: C ++, MATLAB, Strojopis, C, html.

Základné znalosti z digitálnej elektroniky a telekomunikácií/spracovania signálu.

Cena: menej ako 35 dolárov.

Hardvérové požiadavky:

- NooELEC NESDR: na zaznamenávanie údajov. Tento veľmi lacný modul vykonáva digitálnu demoduláciu, a preto má vysokú prenosnosť. Tento model je kompatibilný s MATLAB. (18,95 dolárov)

www.nooelec.com/store/sdr/sdr-receivers/nes…

- Wemos Lolin32 lite: tento esp32 je lacný mikrokontrolér vybavený rozhraním Wifi a Bluetooth. Wifi v tejto aplikácii používať nebudeme, ale to je do značnej miery mysliteľné. (4,74 dolára)

wiki.wemos.cc/products:lolin32:lolin32_lit…

- CDSENET cc1101: tento rádiový vysielač nám ponúka extrémnu flexibilitu, od zvolenej nosnej frekvencie až po typ modulácie. (2,63 dolára)

www.aliexpress.com/item/2PC-Lot-E07-868MS1…

- Drôty, hlavičky, zváracie zariadenia, 3,7 V lipo batéria pre autonómiu, prípadne osciloskop a/alebo logický analyzátor pre ladenie a mimochodom, smartphone …

Požiadavky na softvér:

- MATLAB/Simulink: na zachytávanie údajov. Je možné použiť aj iný bezplatný alternatívny softvér, ako napríklad Audacity na vizualizáciu údajov. (licencia)

fr.mathworks.com/products.html?s_tid=gn_ps

- esp-idf toolchain: bude použitý na programovanie esp32. Dá sa použiť aj Arduino ide, ale neumožňuje takú voľnosť ako to, čo použijeme. (zadarmo)

esp-idf.readthedocs.io/en/latest/get-starte…

- TI SmartRF Studio: to nám pomôže konfigurovať registre cc1101 podľa našich špecifikácií. (zadarmo)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ionic: na vytvorenie aplikácie. Môžete si vybrať vytváranie natívnych aplikácií, ale Ionic nám umožňuje prevádzkovať našu aplikáciu na zariadeniach Android aj IOS s jediným kódom. Výkon sa v našom prípade nehľadá. (zadarmo)

ionicframework.com/

- Váš obľúbený nápad …

Krok 2: Špehovanie diaľkového ovládača

Špehovanie diaľkového ovládača
Špehovanie diaľkového ovládača
Špehovanie diaľkového ovládača
Špehovanie diaľkového ovládača
Špehovanie diaľkového ovládača
Špehovanie diaľkového ovládača

Začneme pozorovaním údajov, ktoré produkujú príkazy diaľkového ovládača. Na tento účel použijeme dongle rtl-sdr a anténu:

fr.mathworks.com/hardware-support/rtl-sdr….

Po kliknutí na tento odkaz nájdete balíček MATLAB a bezplatnú knihu, ktorá vysvetľuje všetky ceny a ich vysvetlenia. Aby sme to zhrnuli, čo sa nás týka, tranzitné údaje sú vo forme signálu IQ: fázové údaje „I“v kombinácii s kvadratúrnymi údajmi „Q“. Táto metóda uľahčuje telekomunikácie. Nás bude zaujímať iba fázový príjem signálu. Teraz budeme zhromažďovať fyzické a digitálne informácie o diaľkovom ovládači. Ak k nemu nájdete nejakú dokumentáciu, bude to jednoduchšie. Žiadne som nenašiel. Aby sme mohli signál dočasne pozorovať, musíme najskôr vedieť, akú nosnú frekvenciu vysielaný signál. Použijeme príklad poskytnutý v dokumentácii k balíku „Spektrálna analýza s rádiom RTL-SDR“, aby sme presne vedeli, pri akej frekvencii pozorujeme špičkový výkon pri odosielaní príkazu. V mojom prípade je to 868,22 MHz. „Štandardné“frekvencie pre tento druh aplikácií sú okolo 868 MHz.

S týmito indikáciami budeme schopní napísať kód MATLAB na obnovu údajov. Tento je priložený k fotografii a komentovaný. Výsledok nám umožňuje nájsť typ modulácie: načítaním nespracovaných informácií a zobrazením výsledku bezprostredne po obnovení skutočnej časti signálu môžeme vydedukovať, že ide o otázku ASK / OOK modulácia. Skutočne pozorujeme, že frekvencia je nemenná, signál má však iba dve amplitúdy: nulu a fixnú hodnotu. Zvyšok kódu nám umožňuje obnoviť obálku prijatého signálu, aby bolo čitateľnejšie ho poznať. Po zobrazení môžeme určiť moduláciu základného pásma: toto je manchesterské kódovanie (pozri priloženú fotografiu). Môžeme tiež odvodiť prenosovú rýchlosť (symboly za sekundu). Keď sú všetky tieto informácie zhromaždené, môžeme poznať dátový rámec. V mojom prípade sú nájdené bajty: 249, 39, 75, 178, 45, 200 a opakované viackrát, aby bol príkaz dobre prijatý. Našťastie sa kód nevracia, dátový rámec je vždy rovnaký.

Krok 3: Odošlite rovnaké dátové rámce

Odoslať rovnaké dátové rámce
Odoslať rovnaké dátové rámce
Odoslať rovnaké dátové rámce
Odoslať rovnaké dátové rámce
Odoslať rovnaké dátové rámce
Odoslať rovnaké dátové rámce

Texas Instruments cc1101 je taký flexibilný, že stále dosiahnete svoj cieľ, aj keď nastavenia, ktoré ste našli v predchádzajúcom kroku, sú úplne odlišné od mojich. V dokumentácii, strana 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf), skutočne uvidíte, že umožňuje vykonávať moduláciu NRZ, Manchester, FSK, ASK/OOK a dosiahnuť frekvencie okolo 433 MHz alebo 868 MHz a mnoho ďalších vecí. Odporúčame vám prečítať si dokumentáciu, aby ste sa s týmto modulom zoznámili.

Na tomto odkaze nájdete ako príklad prácu Loborisa týkajúcu sa konštrukcie funkcií pomocou tohto modulu:

github.com/loboris/ESP32_CC1101/tree/maste…

Napíšeme náš kód pre náš esp32 pomocou reťazca nástrojov esp-idf (pozri odkazy na prvý krok). Súbory odkazu môžete pridať do podadresára komponentov vášho projektu. Na správnu konfiguráciu nášho cc1101 budeme musieť opraviť jeho registre. Spoločnosť Texas Instruments nám poskytuje softvér, ktorý nám dáva hodnotu registrov podľa našej konfigurácie: SmartRF Studio.

Pokiaľ ide o mňa, softvéru naznačujem, že si želám manchesterské kódovanie, že moja nosná frekvencia je 868,22 MHz, že môj typ modulácie je ASK / OOK … Nechal som vás zadať vaše parametre. V prípade, že kódovanie vášho základného pásma nie je k dispozícii, môžete zvážiť kódovanie NRZ správnym zvýšením prenosovej rýchlosti a prispôsobením údajov.

Akonáhle ste definovali svoje hodnoty, máte niekoľko možností týkajúcich sa použitia modulu: môžete používať funkcie, ktoré som s vami prepojil, alebo to, čo som urobil, len sa inšpirovať týmto kódom, aby ste všetko nakonfigurovali brutálnym spôsobom (pozri priložené fotografie) a používajte iba to, čo potrebujeme.

Keďže čip cc1101 komunikuje prostredníctvom SPI, v odkaze na ukážkový kód nájdete hlavičkový súbor „spi_master_lobo.h“, ktorý obsahuje jednoduchšie funkcie na používanie SPI, ako keby ste ho museli používať iba s reťazcom nástrojov. Pripájam sa k vám na fotografii schémy komunikácie CC1101 v SPI, fotografia prevzatá zo strany 30 technického listu CC1101. Štyrmi uvedenými vodičmi sú: CS (Chip Select, alebo SS: Slave Select, alebo tu CSn), CLK (alebo SCLK, hodiny, ktoré poskytuje master), MISO (alebo SO, Master In Slave Out) a MOSI (alebo SI, Master Out Slave In). V našom prípade je master ESP32 a slave CC1101. Komunikácia sa začína, keď je pin CS nízky, vo všeobecnosti.

Nezabudnite v možnostiach kompilátora menuconfig povoliť výnimky C ++ na kompiláciu.

Krok 4: Pripojte sa k systému

Pripojte sa k systému
Pripojte sa k systému
Pripojte sa k systému
Pripojte sa k systému
Pripojte sa k systému
Pripojte sa k systému

Ak váš kód funguje, urobili ste nevyhnutné. V tejto časti sa zameriame na to, ako vytvoriť telefónnu aplikáciu pripojenú k systému. Najzaujímavejším riešením je pripojenie pomocou bluetooth, pretože umožňuje použitie protokolu s nízkym výkonom: Bluetooth Low Energy (BLE). Profil hierarchie je znázornený na priloženom výkrese: príkaz prečítame a napíšeme do charakteristiky služby. A samozrejme, náš esp32 a náš smartphone sú vybavené bluetooth.

Tento krok je rozdelený na dve časti: časť esp32 a časť aplikácie. Priložená fotografia ukazuje a vysvetľuje hlavné časti kódov.

Svoje UUID môžete vygenerovať pomocou tohto odkazu:

www.uuidgenerator.net/

Toto sú identifikátory, ktoré budú poskytovať prístup k službám a funkciám nášho profilu BLE.

Pokiaľ ide o kód BLE esp32, Kolban odviedol skvelú prácu a zaistil kompatibilitu všetkých týchto funkcií na vysokej úrovni C ++:

github.com/nkolban/esp32-snippets/tree/mas…

Tieto súbory môžete vložiť do podadresára komponenty. V opačnom prípade budete potrebovať viac času na pochopenie toho, ako používať BLE s reťazcom nástrojov esp-idf.

V súhrne toho, čo uvidíte v kóde, vytvoríme server, službu a charakteristiku s priradenými UUID a pridáme predefinovanú triedu spätného volania s pridruženou metódou pri zápise: keď dostaneme „O“znak, pošleme príkaz cc1101 na zápis.

Nezabudnite samozrejme povoliť Bluetooth v konfigurácii komponentov v Menuconfig.

Pokiaľ ide o časť aplikácie, použijeme Framework Ionic. Ďalšie informácie o tom nájdete v odkaze uvedenom v prvom kroku a ďalšie podrobnosti o tom, ako používať BLE s Ionic:

ionicframework.com/docs/native/ble/

A príklady, ktoré napísal don:

github.com/don/ionic-ble-examples/tree/mas…

Môžete napríklad upraviť príklad „Pripojiť“. Zariadenie skenujeme na prvej stránke a na druhú stránku sa dostaneme, ak vyberieme naše zariadenie. Potom sa dostaneme do rozhrania, kde môžete pridať tlačidlo pomocou metódy uvedenej na fotografii: vyšle náš príkaz „O“s príslušnými UUID. Môžete tiež do konštruktéra prvej stránky pridať metódu „povoliť“a požiadať o aktiváciu bluetooth na začiatku aplikácie.

Dôrazne vám odporúčame preskúmať webovú stránku Ionic a objaviť všetky komponenty (tlačidlá, upozornenia, začiarkavacie políčka …) na vylepšenie vašej aplikácie:

ionicframework.com/docs/components/#overvi…

Krok 5: Optimalizujte spotrebu energie

Optimalizujte spotrebu energie
Optimalizujte spotrebu energie
Optimalizujte spotrebu energie
Optimalizujte spotrebu energie

Začali sme pracovať na nízkej spotrebe, tak sa poďme prepracovať.

Reťazec nástrojov esp-idf nám umožňuje použiť konfiguračné grafické rozhranie, konfiguráciu ponuky: spotrebu parametra esp32 môže znížiť mnoho parametrov. Po prvé, pretože nepotrebujeme Wifi, môžeme ho vypnúť v konfigurácii komponentu. V tom istom priečinku vo FreeRTOS môžete vybrať „Spustiť FreeRTOS iba na prvom jadre. Potom v prípade systému ESP môžete znížiť frekvenciu procesora na 80 MHz. Všetky funkcie stále pracujú pri tejto rýchlosti. Nakoniec môžete začiarknite políčko „Povoliť koprocesor s extrémne nízkym výkonom (ULP). Táto konfigurácia spôsobuje, že spotreba prúdu sa pohybuje od približne stovky mA do približne tridsiatich mA. Toto je ešte priveľa…

ESP32 zvládne hlboký spánok. Je zapnuté iba nízkoenergetické jadro a čaká na prebudenie.

Bližšie informácie nájdete na tomto odkaze nižšie:

esp-idf.readthedocs.io/en/latest/api-refere…

V poslednej dostupnej verzii reťazca nástrojov esp-idf (3.0) sú bohužiaľ dostupné iba prebudenia podľa časovačov a porúch GPIO. Našťastie nám Espressif sľubuje BLE prebudenie sa v ďalšej verzii (3.1).

CC1101 môžete tiež uviesť do režimu spánku tým, že v SPI pošlete príslušný príkaz na vypnutie zariadenia (pozri údajový list cc1101, príkaz SPWD, strana 51). Na prepnutie zariadenia do režimu spánku alebo na jeho prebudenie môžete položiť kolík Chip Select na kolíkoch SPI nižšie (potom viac informácií v technickom liste).

Tieto posledné konfigurácie by mali umožniť, aby spotreba systému klesla pod miliampér …

Nakoniec, aby systém vydržal čo najdlhšie bez nabíjania alebo dokonca dosiahol mesiac autonómie, vyberte si batériu 3,7 V s maximom miliperov za hodinu. Meraním spotreby energie vášho systému so zobrazením generátora alebo ampérmetra zapojených do série pred + pólom vášho systému môžete odhadnúť čas, ktorý váš systém vydrží!

Odporúča: