Jeffrey Cross
Jeffrey Cross

Avtomobilski vdor 101: orodja trgovine

Kibernetska varnost se vse bolj razvija, da bi vključevala skrbi ne le o ranljivosti podatkov, ampak tudi naših vedno bolj računalniško podprtih avtomobilov. V svoji novi knjigi Priročnik za avto hacker, Craig Smith pripelje bralce skozi vstavke in izhode računalniških sistemov in vgrajeno programsko opremo, ki jo boste našli v sodobnih vozilih. To je odličen vir, če poskušate izboljšati svoje avtomatizirane spretnosti ali če vas zanimajo omrežja in varnost avtomobilov.

Naslednji odlomek zajema strojno in programsko opremo, ki jo boste morali vedeti, da lahko začnete vdirati v avto. To je samo eden od mnogih podrobnih virov, ki jih boste našli Priročnik za avto hacker. Knjiga je zdaj na voljo.


To poglavje obravnava različna orodja, ki jih boste morda želeli uporabiti pri raziskovanju vozila. Odločil sem se, da se osredotočim na poceni naprave in programsko opremo, ker mi je pomembno, da v raziskavo sodeluje čim več ljudi.

Odprte garaže so pripravljene predstaviti in promovirati orodja za pomoč pri avtomobilskih raziskavah. Če vaše podjetje proizvaja odličen izdelek, se lahko obrnete na Open Garage, vendar če ne obstaja odprt način za prispevanje k svojemu orodju, ne pričakujte prostega oglaševanja.

Strojna oprema

V tem razdelku bomo zajemali plošče, kot je ChipWhisperer, in dongle podobne naprave, ki omogočajo povezljivost CAN. Najprej bomo pogledali cenejšo, odprtokodno strojno opremo in nato raziskali nekaj naprednejših naprav za tiste, ki so pripravljeni porabiti malo več denarja. Čeprav obstaja veliko stroškovno učinkovitih naprav za komunikacijo z vodilom CAN, lahko manjka programska oprema, ki je potrebna za interakcijo s temi napravami, zato boste pogosto morali napisati svoje.

Naprave CAN spodaj

Te naprave so uporabne za vohanje vsebine vaše vodila CAN in vbrizgavanje paketov. Ti segajo od plošč na ravni hobistov do profesionalnih naprav, ki podpirajo veliko funkcij po meri in lahko hkrati obdelujejo veliko različnih CAN vodil.

Arduino Shields

Številne Arduino in Arduino podobne naprave ($ 20 do $ 30) bodo podpirale CAN z dodatkom Arduino ščita. Tu je nekaj Arduino ščitov, ki podpirajo CAN:

CANdiy-Shield MCP2515 CAN krmilnik z dvema RJ45 priključkoma in protoarea ChuangZhou CAN-Bus ščit MCP2515 CAN krmilnik z D-sub priključkom in vijačnimi sponkami DFRobot CAN-Bus ščit STM32 krmilnik z D-sub kontektorjem SeeedStudio SLD01105P CAN -Bus Shield MCP2515 CAN-krmilnik z D-sub priključkom SparkFun SFE CAN-Bus ščit MCP2515 CAN krmilnik z D-sub priključkom in držalom za SD kartico; ima priključke za LCD in GPS modul

Vsi ti ščiti so zelo podobni. Večina jih upravlja s krmilnikom MCP2515 CAN, čeprav ščit DFRobot uporablja STM32, ki je hitrejši z več pomnilnikom.

Ne glede na to, kateri ščit izberete, boste morali za Arduino napisati kodo, da boste lahko vohali pakete. Vsak ščit je opremljen s knjižnico, ki je programsko povezana z vmesnikom. V idealnem primeru bi morali ti avtobusi podpirati nekaj podobnega protokolu LAWICEL, ki jim omogoča pošiljanje in prejemanje paketov preko serijskega orodja na uporabniškem prostoru na prenosnem računalniku, kot je SocketCAN.

Telematski komplet OBD-II Freematics

Ta vgrajeni vmesnik OBD-II Bluetooth ima vgrajeno OBD-II napravo in zapisovalnik podatkov ter ima GPS, merilnik pospeška in žiroskop ter temperaturne senzorje.

CANtact

CANtact, odprtokodna naprava Erica Evenchicka, je zelo dostopna naprava CAN CAN, ki deluje z Linux SocketCAN. Uporablja priključek DB 9 in ima edinstveno prednost, da uporablja skakalnice za spreminjanje pinov, ki so CAN in ozemljitev - funkcija, ki mu omogoča, da podpira tako US-in UK-style DB9 za OBD-II konektorje. Lahko dobite CANtact tukaj.

Raspberry Pi Raspberry Pi je alternativa Arduinu, ki stane od $ 30 do $ 40. Pi ponuja operacijski sistem Linux, vendar ne vključuje oddajnika CAN, zato boste morali kupiti ščit.

Ena od prednosti uporabe Raspberry Pi nad Arduino je, da vam omogoča uporabo orodij Linux SocketCAN neposredno, brez potrebe po nakupu dodatne strojne opreme. Na splošno se lahko Raspberry Pi pogovori z MCP2515 preko SPI s samo nekaj osnovnimi kabli. Tukaj je nekaj implementacij Raspberry Pi:

Canberry MCP2515 CAN krmilnik samo z vijačnimi priključki (brez D-sub priključka; $ 23) Carberry Dve CAN-vodili in dve GMLAN-liniji, LIN in infrardeči (ni odprtokodni ščit; $ 81) PICAN CAN-Bus Board MCP2515 CAN krmilnik z D-sub konektorjem in vijačnimi sponkami ($ 40 do $ 50)

ChipKit Max32 razvojni odbor in NetworkShield

Plošča ChipKit je razvojna plošča, ki vam skupaj z NetworkShieldom omogoča sistem CAN, ki ga je mogoče interpretirati po omrežju. Odprtokodna rešitev za strojno opremo je približno 110 USD, ki jo navdihuje OpenXC standard in podpira vnaprej pripravljeno firmware iz OpenXC, lahko pa tudi napišete svoj firmware za to in naredite surovo CAN.

ELM327 Chipset

ELM327 čipov je daleč najcenejši nabor čipov, ki je na voljo povsod (od $ 13 do $ 40), in se uporablja v večini poceni OBD naprav. To komunicira z OBD nad serijsko in prihaja z skoraj vse vrste priključka si lahko zamislite, od USB do Bluetooth, Wi-Fi, in tako naprej. Z napravami ELM327 se lahko povežete preko serij, in lahko pošiljajo pakete, ki niso OBD / UDS paketi. Celoten seznam ukazov z uporabo ELM327 najdete v podatkovnem listu.

Na žalost na voljo orodja CAN Linux ne bodo delovala na ELM327, toda Open Garages je začela spletno pobudo, ki vključuje vohanje gonilnikov za ELM327, imenovano CANiBUS. Opozarjamo vas, da ima ELM327 omejen prostor vmesnega pomnilnika, zato boste izgubili pakete, ko bo vohanje in prenos nekoliko nenatančna. Če ste v ščipanju, je to najcenejša pot.

Če ste pripravljeni odpreti napravo in spajati nekaj žic na vaš ELM327, lahko ponovno posodobite vdelano programsko opremo in jo pretvorite v napravo, ki je združljiva s sistemom LAWICEL, kar omogoča vašemu uber poceni ELM327, da dela z Linuxom in se prikaže kot naprava SlcanX ! (Informacija o tem, kako lahko brskate svojega ELM327 na spletnem dnevniku Area 515 iz Des Moinesa v Iowi.)

GoodThopter odbor

Travis Goodspeed, dobro znani strojni heker, je izdal odprtokodni, poceni plošči z vmesnikom CAN, ki se imenuje GoodThopter. GoodThopter, ki temelji na svojih priljubljenih napravah GoodFet, uporablja MCP2515 in komunicira preko serij z lastnim vmesnikom po meri. Napravo boste morali popolnoma sestaviti in spajati, vendar bo to stalo le nekaj dolarjev, odvisno od delov, ki jih imate na voljo v vašem lokalnem hekerju.

Vmesnik ELM-USB OBDTester prodaja komercialno napravo, združljivo z ELM-32x, za približno 60 $. OBDTester.com so vzdrževalci knjižnice PyOBD.

CAN232 in CANUSB vmesnik

LAWICEL AB proizvaja komercialno CAN napravo CAN232, ki se priključi na RS232 priključek z DB9 konektorjem, in USB različico z imenom CANUSB (slednja velja za $ 110 do $ 120).Ker jih izdelujejo izumitelji protokola LAWICEL, bodo te naprave zagotovo delovale z moduli serijske povezave can-utils.

VSCOM Adapter

VSCOM je cenovno dostopen komercialni modul CAN CAN iz Vision Systems, ki uporablja protokol LAWICEL. VSCOM deluje z Linux can-utils preko serijske povezave (slcan) in zagotavlja dobre rezultate. Naprava stane okoli 100 do 130 dolarjev.

Vmesnik USB2CAN

Pretvornik USB2CAN iz naprav 8 je najcenejša alternativa ne-serijskemu vmesniku CAN. Ta majhna, komercialna naprava USB se bo prikazala kot standardna naprava can0 v Linuxu in ima najbolj integrirano podporo v tem cenovnem razponu. Večina naprav, ki se pojavljajo kot surove naprave canX, so kartice PCI in običajno stanejo veliko več kot ta naprava.

EVTV Due Board

EVTV.me je specializirano za konverzije električnih avtomobilov. Naredijo veliko odličnih orodij za to, da naredite nore stvari v vašem zgodovinskem vozilu, kot je dodajanje Tesla pogona. Eden od njihovih orodij je $ 100 odprtokodni CAN snifer, ki se imenuje EVTV Due, ki je v bistvu Arduino Due z vgrajenim CAN transceiverjem in terminali za vijake z vijaki za povezavo z vašimi CAN linijami. Ta plošča je bila prvotno napisana, da deluje izključno z njihovo programsko opremo SavvyCAN, ki uporablja svoje orodje za generalizirano obratno inženirstvo (GVRET), zdaj pa podpira tudi SocketCAN.

Podatkovni dnevnik CrossChasm C5

CrossChasm C5 je komercialna naprava, ki podpira Fordovo firmware in stane približno 120 $. C5 podpira VI, ki je znan tudi kot CAN prevajalec, za pretvorbo sporočil CAN v format OpenXC in pretvarja nekatere lastniške pakete CAN v generično obliko za pošiljanje preko Bluetootha.

CANBus Triple Board

Ko to pišem, je CANBus Triple še vedno v razvoju. Uporablja kabelski snop, ki je oblikovan za podporo Mazdi, vendar podpira tri CAN vodila vsakega vozila.

Višje-končne naprave CAN

Višje naprave bodo stale več denarja, vendar lahko sprejmejo več sočasnih kanalov in nudijo več pomnilnika za preprečevanje izgube paketov. Orodja z visoko zmogljivostjo pogosto podpirajo osem kanalov ali več, vendar če ne delate na dirkalnih vozilih, verjetno ne potrebujete toliko kanalov, zato se prepričajte, da potrebujete naprave, kot je ta, preden spustite denar.

Te naprave pogosto prihajajo s svojo lastno programsko opremo ali naročnino na programsko opremo, ki včasih pomeni precejšnje dodatne stroške. Poskrbite, da bo programska oprema, ki je povezana z izbrano napravo, to, kar želite, ker boste običajno zaklenjeni v svoj API in želeno strojno opremo. Če potrebujete zmogljivejše naprave, ki delujejo z Linuxom, poskusite Kvaser, Peak ali EMS Wünsche. Naprave iz teh podjetij običajno uporabljajo čipov sja1000 po cenah, ki se začnejo okoli 400 $.

CAN Bus Y-Splitter

CAN bus Y-razdelilnik je zelo preprosta naprava, ki je v bistvu en DLC priključek, razcepljen na dva konektorja, ki vam omogoča, da priključite napravo v eno vrsto in CAN snifer v drugo. Ti običajno stanejo približno 10 dolarjev na Amazon in so pravzaprav precej enostavni za izdelavo.

HackRF SDR

HackRF je SDR iz Great Scott Gadgets. Projekt odprtokodne strojne opreme lahko sprejema in prenaša signale od 10 MHz do 6 GHz. Pri približno $ 330 ne morete dobiti boljšega SDR za ceno.

USRP SDR

USRP je profesionalna, modularna SDR naprava, ki jo lahko zgradite, da ustreza vašim potrebam. USRP je z različnimi stopnjami odprtokodnih cen od 500 do 2000 dolarjev.

ChipWhisperer Toolchain

NewAE Technologies izdeluje ChipWhisperer. ChipWhisperer je sistem za napade stranskih kanalov, kot so analiza moči in uničevanje ur. Podobni sistemi običajno stanejo 30.000 $ ali več, ChipWhisperer pa je odprtokodni sistem, ki stane med 1.000 in 1.500 $.

Red Pitaya odbor

Red Pitaya je orodje za merjenje odprtih virov, ki za približno 500 $ nadomešča draga merilna orodja, kot so osciloskopi, generatorji signalov in spektralni analizatorji. Red Pitaya ima vmesnike LabView in Matlab in za to lahko napišete lastna orodja in aplikacije. Podpira tudi razširitve za stvari, kot so ščiti Arduino.

Programska oprema

Kot smo delali s strojno opremo, se bomo najprej osredotočili na odprtokodna orodja in nato na dražje.

Wireshark

Wireshark je priljubljeno orodje za omrežno vohanje. Možno je uporabiti Wireshark na omrežju CAN vodila, dokler uporabljate Linux in uporabljate SocketCAN. Wireshark nima nobenih funkcij, ki bi pomagale pri razvrščanju ali dekodiranju paketov CAN, vendar je lahko uporaben v ščepec.

Modul PyOBD

PyOBD - znan tudi kot PyOBD2 in PyOBD-II - je Python modul, ki komunicira z napravami ELM327. Temelji na knjižnici PySerial in je zasnovana tako, da vam v priročnem vmesniku ponudi informacije o nastavitvi sistema OBD. Za specifično orodje za skeniranje orodja PyOBD si oglejte OBD2 ScanTool podjetja Austin Murphy, ki poskuša postati popolnejša rešitev odprte kode za diagnostično odpravljanje težav.

Orodja za Linux

Linux podpira gonilnike CAN izven polja, SocketCAN pa ponuja izkušnje z enostavnim spletnim povezovanjem (vmesnik omrežne kartice) pri obravnavi CAN. Za izvedbo ukazne vrstice lahko uporabite njeno zbirko can-utils in kot odprtokodno programsko opremo lahko preprosto razširite funkcionalnost na druge pripomočke.

Strežnik CANiBUS

CANiBUS je spletni strežnik, napisan v Go by Open Garages. Ta strežnik omogoča prostoru, polnemu raziskovalcev, da sočasno dela na istem vozilu, ne glede na to, ali gre za učne namene ali seje za obračanje ekipe. Jezik Go je prenosljiv na kateri koli operacijski sistem, vendar lahko pri nekaterih platformah pride do težav z gonilniki nizke ravni. Na primer, tudi če uporabljate CANiBUS v Linuxu, ne boste mogli neposredno sodelovati s programom SocketCAN, ker Go ne podpira potrebnih zastavic za vtičnice za inicializacijo vmesnika CAN. (Ta problem bi lahko rešili z implementacijo socketcand, toda od tega pisanja ta funkcija še ni bila izvedena.) CANiBUS ima gonilnik za ELM327, ki podpira generično vohanje. Več o CANiBUS-u lahko preberete in prenesete vir.

Kajak

Kajak je grafični uporabniški vmesnik za analizo prometa CAN. Ima več naprednih funkcij, kot so sledenje GPS in zmogljivosti za snemanje in predvajanje. Uporablja socketcand, da bi delal na drugih operacijskih sistemih, zato boste potrebovali vsaj en sniffer na Linuxu, ki bo podpiral kajak.

SavvyCAN SavvyCAN je orodje, ki ga je napisal Collin Kidder iz EVTV.me in uporablja drug okvir, ki ga je zasnoval EVTV.me, GVRET, za pogovor z vojaki HW, kot je EVTV Due. SavvyCAN je odprto kodno orodje Qt GUI, ki deluje na več operacijskih sistemih. Vključuje nekaj zelo lepih lastnosti, kot so urejevalnik DBC, grafikon CAN bus, razlikovanje log datotek, več orodij za povratno inženirstvo in vse običajne funkcije, ki jih lahko pričakujete. SavvyCAN ne govori s SocketCAN, vendar lahko bere v več različnih formatih logfile, kot so dnevniki Bushmaster, dnevniki Microchip, formati CRTD in splošni logotipi CSV.

O2OO Data Logger

O2OO je odprtokodni zapisovalnik podatkov OBD-II, ki deluje z ELM327 za zapisovanje podatkov v podatkovno bazo SQLite za grafične namene. Podpira tudi branje GPS podatkov v NMEA-ju.

Skrb za Caribou

Skrbniški Caribou, napisan v Pythonu, je zasnovan kot Nmap avtomobilskega hekanja. Od trenutka pisanja je še vedno v povojih, vendar kaže veliko možnosti. Skrb za Caribou ima nekaj edinstvenih lastnosti, kot je sposobnost diagnostičnih storitev brutalnih sil in rokovanje z XCP. Prav tako ima svojo standardno funkcijo vohanja in pošiljanja CAN in bo podpiral vaše lastne module.

c0f Orodje za prstne odtise

CAN prstov (c0f) je odprtokodno orodje za sisteme za vodenje prstnih odtisov CAN. Ima nekaj osnovne podpore za prepoznavanje vzorcev v omrežnem toku CAN vodila, kar je lahko koristno pri iskanju specifičnega signala na hrupnem vodilu.

UDSim ECU Simulator

UDSim je orodje GUI, ki lahko nadzira CAN vodilo in samodejno spozna naprave, ki so z njim povezane, tako da gledajo komunikacije. Namenjen je uporabi z drugim diagnostičnim orodjem, kot je orodje za zastopstvo ali orodje za pregledovanje v lokalni avtomobilski trgovini.

UDSim ima tri načine: učenje, simulacijo in napad. V učnem načinu identificira module, ki se odzivajo na diagnostične poizvedbe UDS in spremlja odzive. V simulacijskem načinu simulira vozilo na vodilu CAN za prevaro ali testiranje diagnostičnih orodij. V načinu napada ustvari fuzzing profil za orodja, kot je Peach Fuzzer.

Octane CAN Bus Sniffer

Octane je odprtokodni CAN bus sniffer in injektor z zelo lepim vmesnikom za pošiljanje in prejemanje CAN paketov, vključno s sistemom za sprožitev XML. Trenutno deluje samo v sistemu Windows.

AVRDUDESS GUI

AVRDUDESS je grafični vmesnik za AVRDUDE, napisan v .NET, čeprav deluje dobro z Mono na Linuxu.

Tuner RomRaider ECU

RomRaider je odprtokodni tuning paket za krmilno enoto motorja Subaru, ki omogoča ogled in beleženje podatkov ter nastavitev ECU. To je eden izmed redkih odprtokodnih sprejemnikov ECU, ki lahko obdeluje 3D poglede in beleženje podatkov v živo. Za prenos in uporabo vdelane programske opreme ECU potrebujete kabel Tactrix Open Port 2.0 in programsko opremo Tactrix EcuFlash. Ko prenesete bliskavico z EcuFlash, jo lahko urejate s funkcijo RomRaider. Urejevalnik je napisan v Javi in ​​trenutno deluje v operacijskem sistemu Windows in Linux, čeprav EcuFlash ni podprt v Linuxu.

Komodo CAN Bus Sniffer

Komodo je višji sniffer z lepim multioperacijskim sistemom - Python SDK. Stane okoli $ 350 do $ 450, odvisno od tega, ali želite vmesnik z eno ali dvema CAN. Komodo ima izolacijske zmožnosti, da preprečite, da bi se računalnik cvilil, če ste kaj narobe napolnili, kot tudi osem splošnih IO zatiči, ki jih lahko konfigurirate, da sprožijo delovanje zunanjih naprav. Komodo prihaja z nekaj dostojno programsko opremo, s katero boste lahko začeli delovati, a prava prednost je, da lahko napišete svojo lastno programsko opremo Komodo.

Vozilo vohun

Vozilo Spy je komercialno orodje iz Intrepid Control Systems, ki je posebej zasnovano za obračanje CAN in drugih komunikacijskih protokolov za vozila. Programska oprema zahteva eno licenco na napravo NeoVI ali ValueCAN, obe lastniški napravi za vohun vozila. ValueCAN3 je najcenejša naprava, ki deluje z vohunami vozil. Ima en CAN vmesnik in stane približno 300 $. Dodajte programsko opremo Vehicle Spy Basic in vaš strošek bo približno 1.300 $.

Naprave NeoIV so višjega konca, z več nastavljivimi kanali, ki se začnejo okoli 1.200 $. Osnovni paket vsebuje NeoIV (rdeč) in Vehicle Spy Basic za 2.000 $, kar prihrani nekaj denarja. Vozilo vohun Professional stane približno 2.600 $ brez strojne opreme. (Na spletnem mestu Intrepid boste našli več možnosti.)

Vse strojne naprave Intrepid podpirajo nalaganje skriptov, ki se izvajajo v avtobusu v realnem času. Vozilo Spy Basic podpira operacije CAN / LIN RX / TX. Profesionalno različico boste potrebovali samo, če bo avtomobilski hekerski projekt za vas polni delovni čas ali če želite uporabiti utripajoče ECU ali druge napredne funkcije, kot je simulacija vozlišč, skriptiranje na sniferju ali umerjanje pomnilnika.

Delež

Pustite Komentar