Агуулгын хүснэгт:

Гаражийнхаа хаалгыг хакердах: 5 алхам
Гаражийнхаа хаалгыг хакердах: 5 алхам

Видео: Гаражийнхаа хаалгыг хакердах: 5 алхам

Видео: Гаражийнхаа хаалгыг хакердах: 5 алхам
Видео: Правосудие здесь ► 1 Прохождение Batman: Arkham City 2024, Долдугаар сарын
Anonim
Гаражийнхаа хаалгыг хакердах
Гаражийнхаа хаалгыг хакердах
Гаражийнхаа хаалгыг хакердах
Гаражийнхаа хаалгыг хакердах
Гаражийнхаа хаалгыг хакердах
Гаражийнхаа хаалгыг хакердах

Зөвхөн утасны аппликэйшн ашиглан гэртээ харих, эсвэл драйв трамвай сонсож, хуулбарлахыг хэн мөрөөдөж байгаагүй вэ? Би ойлгосон зүйлээ, хэрхэн яаж явснаа хуваалцах болсондоо баяртай байна. Хоёр дахь удаагаа түлхүүрээ мартсаны дараа би энэ төслийг эхлүүлсэн …

Мэдээжийн хэрэг, кодчилол, модуляцийн төрөл, тээвэрлэгчийн давтамж, bluetooth холболтын мэдээлэл, жишээ болгон харуулах гэж буй өгөгдөл нь эх хувь биш, би зочлогчидгүй байхыг илүүд үздэг;-).

Энэхүү програм нь цахилгаан соронзон долгион (гаражийн хаалга, машин, зарим хаалт …) ашиглан тоон мэдээлэл хүлээн авах чадвартай аливаа объектод хамаарна. Бүхэл бүтэн систем нь утсаар bluetooth -ээр холбогдсон объектоос бүрдэх бөгөөд энэ объект нь бидний хакердахыг хүссэн зүйлтэй холбоотой алсын удирдлагатай ижил хүрээ илгээх боломжтой юм. Би энэ объектыг гараждаа байрлуулсан бөгөөд гаднаас нь холбож болно.

Алхам 1: Тоног төхөөрөмж

Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж

Ашигласан хэл: C ++, MATLAB, Typescript, C, html.

Дижитал электроник, харилцаа холбоо/дохио боловсруулах талаархи үндсэн мэдлэг.

Зардал: 35 доллараас бага.

Тоног төхөөрөмжийн шаардлага:

- NooELEC NESDR: өгөгдлийг авахад зориулагдсан. Энэхүү маш хямд модуль нь дижитал демодуляцийг гүйцэтгэдэг тул зөөвөрлөх чадвар өндөр байдаг. Энэ загвар нь MATLAB -тэй нийцдэг. ($ 18.95)

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

- Wemos Lolin32 lite: Энэхүү esp32 бол Wifi болон Bluetooth -ээр тоноглогдсон хямд микроконтроллер юм. Бид энэ аппликешнд Wifi ашиглахгүй, гэхдээ энэ нь ихэвчлэн боломжтой юм. (4.74 доллар)

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

- CDSENET cc1101: энэхүү радио дамжуулагч нь сонгосон зөөгч давтамжаас модуляцийн төрөл хүртэл маш уян хатан байдлыг өгдөг. (2.63 доллар)

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

- Утас, толгой, гагнуурын төхөөрөмж, бие даасан байдалд зориулагдсан 3.7V lipo зай, магадгүй осциллограф,/эсвэл дибаг хийх логик анализатор, мөн ухаалаг гар утас …

Програм хангамжийн шаардлага:

- MATLAB/Simulink: өгөгдлийг авахад зориулагдсан. Өгөгдлийг дүрслэн харуулах Audacity гэх мэт бусад үнэгүй програмуудыг ашиглаж болно. (Тусгай зөвшөөрөл)

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

- esp-idf toolchain: үүнийг esp32 програмчлахад ашиглах болно. Arduino ide -ийг бас ашиглаж болно, гэхдээ энэ нь бидний ашиглах шиг эрх чөлөөг зөвшөөрдөггүй. (үнэгүй)

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

- TI SmartRF Studio: энэ нь cc1101 регистрийг манай техникийн дагуу тохируулахад тусална. (үнэгүй)

www.ti.com/tool/SMARTRFTM-STUDIO

- Ионик: програмыг бүтээхэд зориулагдсан. Та уугуул аппликейшн бүтээх сонголтоо хийх боломжтой боловч Ионик нь програмаа зөвхөн кодоор Андройд болон IOS төхөөрөмж дээр ажиллуулах боломжийг бидэнд олгодог. Манай тохиолдолд гүйцэтгэлийг хайхгүй. (үнэгүй)

ionicframework.com/

- Таны хамгийн дуртай санаа …

Алхам 2: Алсын удирдлагыг тагнах

Алсын удирдлагыг тагнах
Алсын удирдлагыг тагнах
Алсын удирдлагыг тагнах
Алсын удирдлагыг тагнах
Алсын удирдлагыг тагнах
Алсын удирдлагыг тагнах

Бид алсын удирдлагын командын гаргаж буй өгөгдлийг ажиглаж эхэлнэ. Үүнийг хийхийн тулд бид rtl-sdr dongle болон антеныг ашиглах болно.

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

Энэ линкээр орсноор та MATLAB багц болон бүх урьдчилсан мэдээг тайлбарласан тайлбарласан үнэгүй номыг олох болно. Бидэнд юу хамаатай болохыг тоймлохын тулд дамжин өнгөрөх өгөгдөл нь IQ дохионы хэлбэртэй байна: "I" фазын өгөгдөл, "Q" квадрат өгөгдөлтэй хослуулсан. Энэ арга нь харилцаа холбоог хөнгөвчилдөг. Бид зөвхөн дохиог үе шаттайгаар авах сонирхолтой байх болно. Бид одоо алсын удирдлага дээрх физик болон тоон мэдээллийг цуглуулах болно. Би ерөөсөө олсонгүй. Дохиог түр зуур ажиглахын тулд эхлээд ялгарч буй дохионы давтамж зөөгч гэж юу болохыг мэдэх ёстой. Бид "RTL-SDR радиогоор спектрийн шинжилгээ хийх" багцын баримт бичигт өгсөн жишээг ашиглан командыг илгээхдээ хамгийн их хүчийг ямар давтамжтайгаар ажиглаж байгааг мэдэх болно. Миний хувьд энэ нь 868.22 МГц юм. Ийм төрлийн хэрэглээний "стандарт" давтамж нь 868 МГц орчим байдаг.

Эдгээр заалтуудын тусламжтайгаар бид өгөгдлийг сэргээх MATLAB кодыг бичих боломжтой болно. Үүнийг зураг дээр хавсаргаж, тайлбарласан болно. Үр дүн нь модуляцийн төрлийг олох боломжийг олгодог: түүхий мэдээллийг олж авах, дохионы жинхэнэ хэсгийг олж авсны дараа үр дүнг харуулах замаар бид үүнийг ASK / OOK гэж дүгнэж болно. модуляци. Үнэн хэрэгтээ, давтамж нь өөрчлөгддөггүй боловч дохио нь зөвхөн хоёр далайцтай байдаг: тэг ба тогтмол. Кодын үлдсэн хэсэг нь хүлээн авсан дохионы дугтуйг сэргээх боломжийг олгодог бөгөөд энэ нь уян хатан байдлыг мэдэхийн тулд уншихад хялбар болгодог. Дэлгэцийг харуулсны дараа бид үндсэн зурвасын модуляцийг тодорхойлж чадна: энэ бол Манчестерийн кодчилол юм (хавсаргасан зургийг үзнэ үү). Бид бас дамжуулалтын хурдыг (секундэд тэмдэгт) гаргаж болно. Энэ бүх мэдээллийг цуглуулснаар бид өгөгдлийн хүрээг мэдэх боломжтой болно. Миний хувьд олдсон байтууд нь: 249, 39, 75, 178, 45, 200 бөгөөд тушаалыг сайн хүлээж авахын тулд олон удаа давтсан болно. Аз болоход, код нь эргэлддэггүй, өгөгдлийн хүрээ үргэлж ижил байдаг.

Алхам 3: Ижил өгөгдлийн хүрээг илгээнэ үү

Ижил өгөгдлийн хүрээг илгээнэ үү
Ижил өгөгдлийн хүрээг илгээнэ үү
Ижил өгөгдлийн хүрээг илгээнэ үү
Ижил өгөгдлийн хүрээг илгээнэ үү
Ижил өгөгдлийн хүрээг илгээнэ үү
Ижил өгөгдлийн хүрээг илгээнэ үү

Texas Instruments cc1101 нь маш уян хатан тул өмнөх алхам дээр олсон тохиргоо нь минийхээс огт өөр байсан ч гэсэн та зорилгодоо хүрэх болно. Үнэн хэрэгтээ энэ нь NRZ, Манчестер, FSK, ASK/OOK модуляцийг гүйцэтгэх боломжийг олгодог болохыг 2 -р хуудас (https://www.ti.com/lit/ds/symlink/cc1101.pdf) дээрээс харах болно. 433 МГц эсвэл 868 МГц орчим давтамж болон бусад олон зүйл. Энэхүү модультай танилцахын тулд баримт бичгийг уншихыг танд зөвлөж байна.

Энэ холбоос дээр та энэ модулийг ашиглан функц бүтээх талаар Лоборисын хийсэн ажлын жишээг олох болно.

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

Бид esp32 кодоо esp-idf toolchain ашиглан бичих гэж байна (эхний алхамын холбоосыг үзнэ үү). Та өөрийн төслийн бүрэлдэхүүн хэсгүүдийн холбоос дахь файлуудыг нэмж болно. Cc1101 -ийг зөв тохируулахын тулд бид түүний бүртгэлийг засах шаардлагатай болно. Texas Instruments нь бидний тохиргооны дагуу бүртгэлийн үнэ цэнийг өгдөг програм хангамжийг бидэнд өгдөг: SmartRF Studio.

Миний тухайд би програм хангамжид Манчестерийн кодчилолыг хүсч байгаагаа, миний дамжуулагчийн давтамж 868.22 МГц, миний модуляцийн төрөл ASK / OOK болохыг хэлье … Би танд параметрүүдийг оруулахыг зөвшөөрч байна. Хэрэв таны үндсэн зурвасын кодчилол байхгүй бол та дамжуулалтын хурдыг зохих ёсоор нэмэгдүүлэх, өгөгдлийг тохируулах замаар NRZ кодчилол хийх боломжтой.

Та өөрийн үнэ цэнийг тодорхойлсны дараа модулийг ашиглахтай холбоотой хэд хэдэн сонголттой болно: та бүх зүйлийг илүү нарийвчлалтай тохируулахын тулд миний холбосон функцуудыг эсвэл миний хийсэн зүйлийг ашиглаж болно, зөвхөн энэ кодоос санаа аваарай. харгис арга (хавсаргасан зургуудыг үзнэ үү), зөвхөн бидэнд хэрэгтэй зүйлийг ашиглаарай.

Cc1101 чип нь SPI -ээр дамждаг тул та жишээг кодын холбоос дээрээс "spi_master_lobo.h" толгой файлыг олж авах бөгөөд үүнийг зөвхөн багажны сүлжээнд ашиглахаас илүү SPI ашиглахад илүү хялбар функцуудыг агуулсан болно. Би танд SPI дэх CC1101 холбооны схем, CC1101 мэдээллийн хуудасны 30 -р хуудаснаас авсан зураг дээр нэгдэж байна. Дөрвөн утас нь CS (Chip Select, эсвэл SS: Slave Select, эсвэл энд CSn), CLK (эсвэл SCLK, Clock, мастерын өгсөн), MISO (эсвэл SO, Master In Slave Out) болон MOSI (эсвэл SI, Master Out Slave In). Манай тохиолдолд мастер нь ESP32, боол нь CC1101 юм. Ерөнхийдөө CS зүү бага байх үед харилцаа холбоо эхэлдэг.

Цэсийн тохиргооны хөрвүүлэгчийн тохиргоонд хөрвүүлэх C ++ үл хамаарах зүйлийг идэвхжүүлэхээ бүү мартаарай.

Алхам 4: Системд холбогдоно уу

Системд холбогдох
Системд холбогдох
Системд холбогдох
Системд холбогдох
Системд холбогдох
Системд холбогдох

Хэрэв таны код ажиллаж байгаа бол та үндсэн зүйлийг хийсэн болно. Энэ хэсэгт бид системд холбогдсон утасны програмыг хэрхэн бий болгох талаар анхаарлаа хандуулах болно. Хамгийн сонирхолтой шийдэл бол Bluetooth-ээр холбогдох явдал юм, учир нь энэ нь бага чадлын протоколыг ашиглах боломжийг олгодог: Bluetooth Low Energy (BLE). Шатлалын профайлыг хавсаргасан зурган дээр харуулав: бид командыг үйлчилгээний онцлог шинж чанар дээр уншиж, бичих болно. Мэдээжийн хэрэг, бидний esp32 болон ухаалаг гар утас нь bluetooth -ээр тоноглогдсон байдаг.

Энэ алхамыг esp32 хэсэг, апп хэсэг гэсэн хоёр хэсэгт хуваана. Хавсаргасан зураг нь кодын үндсэн хэсгүүдийг харуулж, тайлбарласан болно.

Та энэ холбоосыг дагаж UUID -ууд үүсгэх боломжтой.

www.uuidgenerator.net/

Эдгээр нь манай BLE профайлын үйлчилгээ, онцлогт нэвтрэх боломжийг олгодог таниулагчид юм.

Esp32 BLE кодын талаар Колбан эдгээр бүх өндөр түвшний C ++ функцүүдийг нийцтэй болгохын тулд маш сайн ажил хийсэн.

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

Та эдгээр файлуудыг бүрэлдэхүүн хэсгүүдийн дэд санд оруулах боломжтой. Үгүй бол esp-idf хэрэгслийн сүлжээнд BLE-ийг хэрхэн ашиглах талаар ойлгоход танд илүү их цаг хэрэгтэй болно.

Кодоос харах зүйлийг нэгтгэн дүгнэж хэлэхэд бид холбогдох UUID -уудтай Сервер, Үйлчилгээ, Онцлог шинж чанарыг үүсгэж, "O" -г хүлээн авах үед холбогдох аргыг ашиглан дахин тодорхойлсон дуудлага хийх анги нэмнэ. тэмдэгт, бид бичих командыг cc1101 руу илгээдэг.

Мэдээжийн хэрэг Menuconfig -ийн бүрэлдэхүүн хэсгийн тохиргоонд Bluetooth -ийг идэвхжүүлэхээ бүү мартаарай.

Апп хэсгийн талаар бид Framework Ionic -ийг ашиглах болно. Та энэ талаархи дэлгэрэнгүй мэдээллийг эхний алхамд үзүүлсэн линкээс олж авах боломжтой бөгөөд BLE -ийг Ionic -тэй хэрхэн ашиглах талаар дэлгэрэнгүй мэдээлэл авах боломжтой.

ionicframework.com/docs/native/ble/

Донын бичсэн жишээ:

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

Та жишээ нь "Холбох" жишээг засварлаж болно. Бид төхөөрөмжийг эхний хуудсан дээр скан хийж, хэрэв бид төхөөрөмжөө сонговол хоёр дахь хуудсанд очно. Дараа нь бид зураг дээр үзүүлсэн аргыг ашиглан товчлуур нэмж болох интерфэйс рүү нэвтрэх болно: энэ нь бидний "O" командыг зохих UUID -уудтай илгээдэг. Та мөн програмын эхэнд bluetooth -ийг идэвхжүүлэхийг хүссэн "идэвхжүүлэх" аргыг эхний хуудасны бүтээгч дээр нэмж болно.

Ionic вэбсайтыг судалж, өргөдлийг сайжруулахын тулд бүх бүрэлдэхүүн хэсгүүдийг (товчлуур, анхааруулга, шалгах хайрцаг …) олж мэдэхийг танд зөвлөж байна.

ionicframework.com/docs/components/#overvi…

Алхам 5: Эрчим хүчний хэрэглээг оновчтой болгох

Эрчим хүчний хэрэглээг оновчтой болгох
Эрчим хүчний хэрэглээг оновчтой болгох
Эрчим хүчний хэрэглээг оновчтой болгох
Эрчим хүчний хэрэглээг оновчтой болгох

Бид бага хэрэглээ дээр ажиллаж эхэлсэн тул үүнийг шийдье.

Esp-idf хэрэгслийн сүлжээ нь menuconfig GUI тохиргоог ашиглах боломжийг бидэнд олгодог: олон параметрүүд esp32 хэрэглээг бууруулж чаддаг. Нэгдүгээрт, бидэнд Wifi шаардлагагүй тул бид үүнийг бүрэлдэхүүн хэсгийн тохиргоонд идэвхгүй болгож болно. Үүнтэй ижил фолдерт FreeRTOS дээр та "FreeRTOS-ийг зөвхөн эхний цөм дээр ажиллуулахыг сонгож болно. Дараа нь ESP-тэй бол CPU-ийн давтамжийг 80 МГц хүртэл бууруулж болно. Бүх функцууд энэ цагийн хурдаар ажиллах боломжтой хэвээр байна. Эцэст нь та "Хэт бага хүч чадал (ULP) процессорыг идэвхжүүлэх" хэсгийг шалгана уу. Энэхүү тохиргоо нь одоогийн хэрэглээг ойролцоогоор зуун мА -аас гучин мА хүртэл болгодог. Энэ нь хэтэрхий их хэвээр байна …

ESP32 нь гүн нойрыг зохицуулж чаддаг. Зөвхөн бага энергитэй цөм асаалттай байгаа бөгөөд сэрэхийг хүлээж байна.

Дэлгэрэнгүй мэдээллийг доорх линкээс үзнэ үү.

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

Харамсалтай нь esp-idf toolchain (3.0) -ийн хамгийн сүүлийн хувилбар дээр таймер болон GPIO-ийн тасалдалаар л сэрдэг. Аз болоход, Espressif бидэнд BLE -ийг дараагийн хувилбарт (3.1) сэрээхийг амласан.

Та мөн CC1101 -ийг унтраах горимд оруулж, төхөөрөмжийг унтраах зохих тушаалыг SPI -д илгээж болно (cc1101 мэдээллийн хүснэгт, SPWD команд, хуудас 51 -ийг үзнэ үү). Төхөөрөмжийг унтах горимд оруулах эсвэл сэрээхийн тулд та SPI тээглүүрийн Chip Select зүүг бага, дараа нь өндөрт тавьж болно (мэдээллийн хүснэгтэд дэлгэрэнгүй мэдээлэл).

Эдгээр сүүлчийн тохиргоо нь системийн хэрэглээг милли-ампераас доогуур түвшинд хүргэх боломжтой байх ёстой.

Эцэст нь хэлэхэд, системийг цэнэглэхгүйгээр аль болох урт хугацаанд ажиллуулах эсвэл бүр нэг сарын бие даасан байдалд хүрэхийн тулд цагт хамгийн их миль-ампертай 3.7В батерейг сонгоорой. Системийнхээ + шонгийн өмнө генератор эсвэл амметрийг цувралаар холбосноор системийнхээ эрчим хүчний хэрэглээг хэмжсэнээр та системийнхээ ажиллах хугацааг тооцоолж чадна!

Зөвлөмж болгож буй: