Bilhackning 101: Værktøjer til handel - 💡 Fix My Ideas

Bilhackning 101: Værktøjer til handel

Bilhackning 101: Værktøjer til handel


Forfatter: Ethan Holmes, 2019

I stigende grad udvikler cybersikkerheden sig til at omfatte bekymringer, ikke kun om sårbarheden af ​​data, men af ​​vores stadig mere computeriserede biler. I sin nye bog Bilhackers håndbog, Craig Smith tager læsere gennem ind-og-outs af edb-systemer og indlejret software, som du finder i moderne køretøjer. Det er en stor ressource, hvis du forsøger at finpudse dine automatiske færdigheder, eller hvis du er interesseret i netværk og sikkerhed for biler.

Følgende uddrag dækker hardware og software, du skal vide for at starte bilhacking. Det er blot en af ​​mange detaljerede ressourcer, du finder i Bilhackers håndbog. Bogen er tilgængelig nu.


Dette afsnit beskriver forskellige værktøjer, som du måske vil bruge, når du undersøger et køretøj. Jeg har valgt at fokusere på billige enheder og software, fordi det er vigtigt for mig, at så mange som muligt deltager i forskningen.

Open Garages er villig til at fremvise og fremme værktøjer til at hjælpe med bilindustrien. Hvis din virksomhed producerer et godt produkt, er du velkommen til at kontakte Open Garages, men medmindre der er en åben måde at bidrage til dit værktøj, skal du ikke forvente gratis reklame.

Hardware

I dette afsnit dækker vi bestyrelser, som ChipWhisperer, samt dongle-lignende enheder, der giver CAN-forbindelse. Vi kigger først på billigere, open source-hardware og undersøger derefter nogle high-end-løsninger for dem, der er villige til at bruge lidt flere penge. Selvom der er mange omkostningseffektive enheder til kommunikation med CAN-bussen, kan den software, der er nødvendig for at interagere med disse enheder, mangle, så du skal ofte skrive dit eget.

Nedre ende CAN-enheder

Disse enheder er nyttige til at snuse indholdet af din CAN-bus og indsprøjtningspakker. De spænder fra hobbykort til professionelle enheder, der understøtter mange brugerdefinerede funktioner og kan håndtere mange forskellige CAN-busser samtidigt.

Arduino Shields

Talrige Arduino og Arduino-lignende enheder ($ 20 til $ 30) vil understøtte CAN med tilføjelsen af ​​et Arduino-skærm. Her er nogle Arduino skjold, der understøtter CAN:

CANdiy-Shield MCP2515 CAN-controller med to RJ45-konnektorer og en protoarea ChuangZhou CAN-busskærm MCP2515 CAN-controller med D-sub-stik og skrueterminaler DFRobot CAN-busskærm STM32-controller med D-sub-konnektor SeeedStudio SLD01105P CAN -Busskærm MCP2515 Kan styres med D-sub-stik SparkFun SFE CAN-busskærm MCP2515 CAN-controller med D-sub-stik og en SD-kortholder; har stik til et LCD- og GPS-modul

Disse skjolde er alle meget ens. De fleste kører MCP2515 CAN controller, selvom DFRobot skjoldet bruger en STM32, som er hurtigere med mere bufferhukommelse.

Uanset hvilket skærm du vælger, skal du skrive kode til Arduino for at snuse pakker. Hver skærm leveres med et bibliotek designet til at interface med skærmen programmatisk. Ideelt set bør disse busser understøtte noget som LAWICEL-protokollen, som giver dem mulighed for at sende og modtage pakker over seriel via et brugerrums værktøj på den bærbare computer, såsom SocketCAN.

Freematics OBD-II Telematik Kit

Dette Arduino-baserede OBD-II Bluetooth Adapter Kit har både en OBD-II enhed og en datalogger, og den leveres med GPS, accelerometer og gyro og temperatursensorer.

cantact

CANtact, en open source-enhed af Eric Evenchick, er en meget overkommelig USB CAN-enhed, der fungerer sammen med Linux SocketCAN. Den bruger en DB 9-stik og har den unikke fordel ved at bruge hoppestifter til at ændre, hvilke stifter der er CAN og jord-en funktion, der gør det muligt at understøtte både DB9 og OBD-II-stik i USA og UK. Du kan få CANtact her.

Hindbær Pi Den Hindbær Pi er et alternativ til Arduino, der koster omkring $ 30 til $ 40. Pi'en leverer et Linux-operativsystem, men indeholder ikke en CAN-transceiver, så du skal købe et skjold.

En af fordelene ved at bruge en Raspberry Pi over en Arduino er, at den giver dig mulighed for at bruge Linux SocketCAN-værktøjerne direkte uden at skulle købe ekstra hardware. Generelt kan en Raspberry Pi tale med en MCP2515 over SPI med bare nogle grundlæggende ledninger. Her er nogle Raspberry Pi implementeringer:

Canberry MCP2515 CAN-controller med kun skrueterminaler (ingen D-sub-stik, $ 23) Carberry Two CAN-buslinjer og to GMLAN-linjer, LIN og infrarødt (synes ikke at være et open source-skjold, $ 81) PICAN CAN-Bus Board MCP2515 CAN controller med D-sub stik og skrueterminaler ($ 40 til $ 50)

ChipKit Max32 Development Board og NetworkShield

ChipKit bordet er et udviklingsudvalg, der sammen med NetworkShield kan give dig et netværksfortolkbart CAN-system. Omkring $ 110, er denne open source hardware-løsning udråbt af OpenXC-standarden og understøtter forudbygget firmware fra OpenXC, men du kan også skrive din egen firmware til det og gøre rå CAN.

ELM327 chipsæt

ELM327 chipset er langt den billigste chipset til rådighed overalt (fra $ 13 til $ 40), og det bruges i de fleste billige OBD-enheder. Det kommunikerer med OBD over seriel og kommer med næsten enhver type stik, du kan tænke på, fra USB til Bluetooth, Wi-Fi, og så videre. Du kan oprette forbindelse til ELM327-enheder over seriel, og de kan sende andre pakker end OBD / UDS-pakker. For en komplet liste over kommandoer ved hjælp af ELM327, se databladet.

Desværre vil de tilgængelige CAN Linux-værktøjer ikke køre på ELM327, men Open Garages har påbegyndt et webinitiativ, der omfatter sniffing drivere til ELM327 kaldet CANiBUS. Vær opmærksom på, at ELM327 har begrænset bufferplads, så du mister pakker, når sniffing og transmission kan være lidt upræcise. Hvis du er i klem, er det dog den billigste rute.

Hvis du er villig til at åbne enheden og loddet for nogle ledninger til din ELM327, kan du reflash firmwaren og konvertere den til en LAWICEL-kompatibel enhed, som gør det muligt for din uber billige ELM327 at arbejde med Linux og dukke op som en slcanX-enhed ! (Du finder information om, hvordan du blinker din ELM327 på Area 515 makerspace blog fra Des Moines, Iowa.)

GoodThopter Board

Travis Goodspeed, en kendt hardware hacker, har udgivet en open source, lavpris bord med en CAN-grænseflade kaldet GoodThopter. GoodThopter bygger på sine populære GoodFet-enheder, bruger MCP2515 og kommunikerer over seriel med sin egen brugerdefinerede grænseflade. Du skal fuldstændigt samle og lodde sammen enheden selv, men det skal kun koste et par dollars afhængigt af de dele, du har til rådighed på dit lokale hackerspace.

ELM-USB Interface OBDTester sælger en kommerciel ELM-32x-kompatibel enhed til omkring $ 60. OBDTester.com er indehavere af PyOBD-biblioteket.

CAN232 og CANUSB Interface

LAWICEL AB producerer den kommercielle CAN-enhed CAN232, der sættes i en RS232-port med en DB9-stik og en USB-version kaldet CANUSB (sidstnævnte går for $ 110 til $ 120).Fordi de er lavet af opfinderne af LAWICEL-protokollen, er disse enheder garanteret at arbejde sammen med de serielle link moduler.

VSCOM Adapter

VSCOM er et overkommeligt, kommercielt USB CAN-modul fra Vision Systems, der bruger LAWICEL-protokollen. VSCOM arbejder med Linux-kan-utils over seriel link (slcan) og giver gode resultater. Enheden koster omkring $ 100 til $ 130.

USB2CAN Interface

USB2CAN konverteren fra 8devices er det billigste alternativ til en ikke-seriel CAN-grænseflade. Denne lille, kommercielle USB-enhed vises som en standard can0-enhed i Linux og har den mest integrerede support i dette prisklasse. De fleste enheder, der vises som canX raw-enheder, er PCI-kort og koster typisk betydeligt mere end denne enhed.

EVTV Due Board

EVTV.me er specialiseret i elbil konverteringer. De laver masser af gode værktøjer til at gøre vanvittige ting til dit historiske køretøj, som at tilføje et Tesla drivetrain til det. Et af deres værktøjer er en $ 100 open source CAN sniffer kaldet EVTV Due, som i grunden er en Arduino Due med en indbygget CAN transceiver og håndtagskrueterminaler til grænseflade med dine CAN linjer. Dette kort blev oprindeligt skrevet til at arbejde udelukkende med deres SavvyCAN software, der bruger deres General Vehicle Reverse Engineering Tool (GVRET), men det understøtter nu også SocketCAN.

CrossChasm C5 Data Logger

CrossChasm C5 er en kommerciel enhed, der understøtter Ford VI firmware og koster omkring $ 120. C5 understøtter VI, som også er kendt som CAN-oversætteren, til at konvertere CAN-meddelelser til OpenXC-formatet, og konverterer nogle proprietære CAN-pakker til et generisk format for at sende via Bluetooth.

CANBus Triple Board

Når jeg skriver dette, er CANBus Triple stadig i udvikling. Den bruger en ledningsnet til at understøtte Mazda, men den understøtter tre CAN-busser af ethvert køretøj.

Higher-end CAN-enheder

Higher-end enheder vil koste dig flere penge, men de er i stand til at modtage flere samtidige kanaler og tilbyde mere hukommelse for at forhindre pakke tab. Højtydende værktøjer understøtter ofte otte kanaler eller mere, men medmindre du arbejder på løbekøretøjer, behøver du sandsynligvis ikke så mange kanaler, så sørg for at du har brug for enheder som disse, før du taber penge.

Disse enheder leveres ofte med deres egen proprietære software eller et softwareabonnement til nogle gange betydelige ekstra omkostninger. Sørg for, at softwaren, der er knyttet til den enhed, du vælger, gør hvad du vil, fordi du normalt er låst i deres API og foretrukne hardware. Hvis du har brug for avancerede enheder, der arbejder med Linux, skal du prøve Kvaser, Peak eller EMS Wünsche. Enhederne fra disse virksomheder bruger typisk sja1000 chipset til priser, der starter omkring $ 400.

CAN Bus Y-Splitter

En CAN-bus Y-splitter er en meget simpel enhed, der dybest set er en DLC-stik, der er delt i to stik, som giver dig mulighed for at tilslutte en harddisk til en port og en CAN-sniffer i den anden. Disse koster typisk omkring $ 10 på Amazon og er faktisk ret enkle at lave sig selv.

HackRF SDR

HackRF er en SDR fra Great Scott Gadgets. Dette open source hardware projekt kan modtage og transmittere signaler fra 10 MHz til 6 GHz. På omkring $ 330, kan du ikke få en bedre SDR for prisen.

USRP SDR

USRP er en professionel, modulær SDR-enhed, som du kan opbygge, der passer til dine behov. USRP er åben kilde i varierende grad til priser fra $ 500 til $ 2.000.

ChipWhisperer Toolchain

NewAE Technologies producerer ChipWhisperer. ChipWhisperer er et system til sidekanalangreb, som strømanalyse og urløgning. Lignende systemer koster normalt $ 30.000 eller mere, men ChipWhisperer er et open source-system, der koster mellem $ 1.000 og $ 1.500.

Red Pitaya Board

Red Pitaya er et open source-måleværktøj, der for omkring $ 500 erstatter dyre måleinstrumenter som oscilloskoper, signalgeneratorer og spektrumanalysatorer. Rød Pitaya har LabView og Matlab-grænseflader, og du kan skrive dine egne værktøjer og applikationer til det. Det understøtter endda udvidelser til ting som Arduino skjold.

Software

Som vi gjorde med hardware, fokuserer vi først og fremmest på open source-værktøjer og dækker derefter dyrere.

Wireshark

Wireshark er et populært netværk sniffing værktøj. Det er muligt at bruge Wireshark på et CAN-busnetværk, så længe du kører Linux og bruger SocketCAN. Wireshark har ingen funktioner til at hjælpe med at sortere eller afkode CAN-pakker, men det kan være nyttigt i en kniv.

PyOBD-modul

PyOBD-også kendt som PyOBD2 og PyOBD-II-er et Python-modul, der kommunikerer med ELM327-enheder. Den er baseret på PySerial-biblioteket og er designet til at give dig oplysninger om din OBD-opsætning i en praktisk grænseflade. For en specifik scanning værktøj gaffel af PyOBD, se Austin Murphy's OBD2 ScanTool, som forsøger at blive en mere komplet open source løsning til diagnostisk fejlfinding.

Linux værktøjer

Linux understøtter CAN-drivere ud af kassen, og SocketCAN giver en enkel netlink-oplevelse (netværkskortinterface), når man beskæftiger sig med CAN. Du kan bruge sin can-utils-suite til en kommandolinjeimplementering, og som open source-software er det nemt at udvide funktionaliteten til andre værktøjer.

CANiBUS Server

CANiBUS er en webserver skrevet i Go by Open Garages. Denne server giver mulighed for et rum fuld af forskere til samtidig at arbejde på samme køretøj, uanset om det er undervisningsformål eller holdvendende sessioner. Go-sproget er bærbart til ethvert operativsystem, men du kan have problemer med lavt niveau drivere på visse platforme. Selvom du kører CANiBUS på Linux, kan du f.eks. Ikke direkte interagere med SocketCAN, fordi Go ikke understøtter de nødvendige socketflagge for at initialisere CAN-grænsefladen. (Dette problem kan løses ved at implementere socketcand, men som dette skrift har denne funktion endnu ikke været implementeret.) CANiBUS har en driver til ELM327, der understøtter generisk sniffing. Du kan lære mere om CANiBUS og kan downloade kilden.

Kajak

Kayak er en Java-baseret GUI til analyse af CAN-trafik. Den har flere avancerede funktioner, såsom GPS tracking og optagelses- og afspilningsfunktioner. Det bruger socketcand for at arbejde på andre operativsystemer, så du skal bruge mindst en Linux-baseret sniffer til at understøtte Kayak.

SavvyCAN SavvyCAN er et værktøj skrevet af Collin Kidder fra EVTV.me, der bruger en anden ramme designet af EVTV.me, GVRET, til at tale med HW sniff-ers som EVTV Due. SavvyCAN er et open source, Qt GUI-baseret værktøj, der fungerer på flere operativsystemer. Den indeholder flere meget flotte funktioner, såsom DBC editor, CAN bus grafik, logfil diffunde, flere reverse engineering værktøjer og alle de normale CAN sniffing funktioner, du ville forvente. SavvyCAN snakker ikke med SocketCAN, men det kan læses i flere forskellige logfileformater, f.eks. Bushmaster logs, Microchip logs, CRTD formater og generiske CSV-formaterede logfiler.

O2OO Data Logger

O2OO er en OBD-II datalogger med åben kilde, der fungerer sammen med ELM327 for at optage data til en SQLite database til grafiske formål. Den understøtter også at læse GPS-data i NMEA for-mat.

Caring Caribou

Caring Caribou, skrevet i Python, er designet til at være Nmap for hacking af biler. På grund af denne skrivning er det stadig i sin barndom, men det viser meget potentiale. Caring Caribou har nogle unikke funktioner, som evnen til at brute-force diagnostiske tjenester og håndterer XCP. Det har også din standard sniff-and-send CAN-funktionalitet og vil understøtte dine egne moduler.

c0f Fingerprinting Tool

CAN of Fingers (c0f) er et open source værktøj til fingeraftryk CAN bus systemer. Det har nogle grundlæggende støtte til at identificere mønstre i en CAN-busnetværksstrøm, hvilket kan være nyttigt, når man forsøger at finde et bestemt signal på en støjende bus.

UDSim ECU Simulator

UDSim er et GUI-værktøj, der kan overvåge en CAN-bus og automatisk lære de enheder, der er vedhæftet det, ved at se kommunikation. Den er designet til at blive brugt med et andet diagnostisk værktøj, som f.eks. Et forhandlingsværktøj eller et scanningsværktøj fra en lokal bilforretning.

UDSim har tre tilstande: læring, simulering og angreb. I læringstilstanden identificeres det moduler, der svarer til UDS diagnostiske forespørgsler og overvåger svarene. I simuleringsmodus simulerer det et køretøj på CAN-bussen for at narre eller afprøve diagnostiske værktøjer. I angrebstilstanden skaber den en fuzzing profil for værktøjer som ferskenfuzzer.

Octane CAN Bus Sniffer

Octane er en open source CAN bus sniffer og injektor med en meget flot grænseflade til afsendelse og modtagelse af CAN-pakker, herunder et XML trigger system. I øjeblikket kører den kun på Windows.

AVRDUDESS GUI

AVRDUDESS er en GUI frontend til AVRDUDE skrevet i .NET, selvom det fungerer fint med Mono på Linux.

RomRaider ECU Tuner

RomRaider er en open source tuning suite til Subaru motor kontrolenhed, som lader dig se og logge data og tune ECU. Det er en af ​​de få open source ECU-tunere, og den kan håndtere 3D-visninger og live data logging. Du skal bruge et Tactrix Open Port 2.0-kabel og Tactrix EcuFlash-software for at downloade og bruge ECU'ens firmware. Når du har downloadet flash med EcuFlash, kan du redigere det med RomRaider. Redaktøren er skrevet i Java og arbejder i øjeblikket på Windows og Linux, selvom EcuFlash ikke understøttes på Linux.

Komodo CAN Bus Sniffer

Komodo er en avanceret sniffer med et flot multioperativt system-Python SDK. Det koster omkring $ 350 til $ 450 afhængigt af om du vil have en enkelt- eller dual-CAN-grænseflade. Komodo har isolationskapacitet for at forhindre din computer i at stege, hvis du fejler noget, samt otte almindelige IO-pins, du kan konfigurere til at udløse handlinger fra eksterne enheder. Komodo leveres med en anstændig software til at få dig i gang, men den reelle fordel er, at du kan skrive din egen Komodo-software.

Vehicle Spy

Vehicle Spy er et kommercielt værktøj fra Intrepid Control Systems, der er specielt designet til at vende CAN og andre køretøjskommunikationsprotokoller. Softwaren kræver en licens pr. NeoVI- eller ValueCAN-enhed, begge proprietære enheder til Vehicle Spy. ValueCAN3 er den billigste enhed, der arbejder med Vehicle Spy. Den har en CAN-grænseflade og koster omkring $ 300. Tilføj Vehicle Spy Basic software og din pris vil være omkring $ 1.300.

NeoIV-enhederne er højere ende, med flere konfigurerbare kanaler, der starter omkring $ 1200. En grundlæggende pakke indeholder en NeoIV (Red) og Vehicle Spy Basic til $ 2.000, hvilket sparer lidt penge. Vehicle Spy Professional koster omkring 2.600 dollar uden hardware. (Du finder flere muligheder på Intrepids websted.)

Alle Intrepid-hardwareenheder understøtter upload af scripts til at køre på bussen i realtid. Vehicle Spy Basic understøtter CAN / LIN RX / TX-operationer. Du skal kun bruge den professionelle version, hvis bilhacking skal være et heltids projekt for dig, eller hvis du vil bruge ECU blinker eller andre avancerede funktioner, såsom Node Simulation, scripting på sniffer eller hukommelseskalibrering.



Du Kan Være Interesseret

Dine kommentarer

Dine kommentarer


Math Monday: Linkages, Del 3: Four Bars, Two or Three Positions

Math Monday: Linkages, Del 3: Four Bars, Two or Three Positions


RI Mini Maker Faire 2012 er en wrap!

RI Mini Maker Faire 2012 er en wrap!


Min tid på MAKE: en 1.093-årig Retrospective

Min tid på MAKE: en 1.093-årig Retrospective