Jeffrey Cross
Jeffrey Cross

Hacking Kereta 101: Alat Perdagangan

Semakin keselamatan siber berkembang untuk menyertakan kebimbangan bukan hanya tentang kerentanan data, tetapi dari semakin banyak komputer kami. Dalam buku barunya Buku Panduan Hacker Kereta, Craig Smith membawa pembaca menerusi sistem komputer dan perisian tertanam yang anda akan dapati dalam kenderaan moden. Ia merupakan sumber yang hebat jika anda cuba mengasah kemahiran anda secara automatik atau jika anda mempunyai minat dalam rangkaian dan keselamatan kereta.

Petikan berikut merangkumi perkakasan dan perisian yang perlu anda ketahui untuk memulakan penggodaman kereta. Ia hanya satu daripada banyak sumber terperinci yang anda akan dapati Buku Panduan Hacker Kereta. Buku ini boleh didapati sekarang.


Bahagian ini membincangkan alat yang berbeza yang mungkin anda ingin gunakan ketika meneliti kenderaan. Saya telah memilih untuk memberi tumpuan kepada peranti murah dan perisian kerana penting bagi saya bahawa seberapa banyak orang boleh menyertai penyelidikan.

Open Garages bersedia untuk mempamerkan dan mempromosikan alat untuk membantu penyelidikan automotif. Sekiranya syarikat anda menghasilkan produk yang hebat, sila hubungi Gerbang Terbuka, tetapi jika ada cara terbuka untuk menyumbang kepada alat anda, jangan mengharapkan publisiti percuma.

Perkakasan

Dalam bahagian ini, kami akan meliputi papan, seperti ChipWhisperer, serta peranti seperti dongle yang menyediakan sambungan CAN. Pertama-tama, kita akan melihat kos rendah, perkakasan sumber terbuka dan kemudian meneroka beberapa perkara yang lebih tinggi untuk mereka yang sanggup menghabiskan sedikit lebih banyak wang. Walaupun terdapat banyak alat yang kos efektif untuk berkomunikasi dengan bas CAN, perisian yang diperlukan untuk berinteraksi dengan peranti ini mungkin kurang, jadi anda sering perlu menulis sendiri.

BANTUAN BELAKANG Rendah

Peranti ini berguna untuk menghidu kandungan bas CAN dan menyuntikkan paket. Mereka terdiri dari papan peringkat hobi ke peranti profesional yang menyokong banyak ciri tersuai dan boleh mengendalikan pelbagai bus CAN yang serentak.

Arduino Shields

Banyak peranti Arduino dan Arduino ($ 20 hingga $ 30) akan menyokong CAN dengan penambahan perisai Arduino. Berikut adalah beberapa perisai Arduino yang menyokong CAN:

CANdiy-Shield MCP2515 CAN controller dengan dua RJ45 con-nectors dan protoarea ChuangZhou CAN-Bus Shield MCP2515 CAN controller dengan D-sub connector dan terminal skru DFRobot CAN-Bus Shield STM32 controller dengan D-sub con-nector SeeedStudio SLD01105P CAN -Bus Shield MCP2515 CAN con-troller dengan penyambung D-sub SparkFun SFE CAN-Bus Shield MCP2515 CAN controller dengan penyambung D-sub dan pemegang kad SD; mempunyai penyambung untuk modul LCD dan GPS

Perisai ini semua sangat serupa. Kebanyakan menjalankan pengawal MCP2515 CAN, walaupun perisai DFRobot menggunakan STM32, yang lebih pantas dengan lebih banyak memori buffer.

Tidak kira apa perisai yang anda pilih, anda perlu menulis kod untuk Arduino untuk menghidu paket. Setiap perisai datang dengan pustaka yang direka untuk menyambungkan dengan perisai secara programatik. Sebaik-baiknya, bas ini harus menyokong sesuatu seperti protokol LAWICEL, yang membolehkan mereka menghantar dan menerima paket melalui siri melalui alat pengguna ruang pada komputer riba, seperti SocketCAN.

Freematics Kit Telematik OBD-II

Kit penyesuai ODD-II yang berasaskan Arduino ini mempunyai kedua-dua peranti OBD-II dan logger data, dan ia dilengkapi dengan GPS, pecutan dan gyro, dan sensor suhu.

CANtact

CANtact, peranti sumber terbuka oleh Eric Evenchick, adalah peranti USB CAN yang sangat berpatutan yang berfungsi dengan Linux SocketCAN. Ia menggunakan penyambung DB 9 dan mempunyai kelebihan unik menggunakan pin pelompat untuk menukar pin yang BOLEH dan tanah-ciri yang membolehkan ia menyokong kedua-dua AS dan UK-gaya DB9 untuk penyambung OBD-II. Anda boleh mendapatkan CANtact di sini.

Raspberry Pi Raspberry Pi adalah alternatif kepada Arduino yang berharga sekitar $ 30 hingga $ 40. Pi menyediakan sistem operasi Linux tetapi tidak termasuk transceiver BOLEH, jadi anda perlu membeli perisai.

Salah satu kelebihan menggunakan Raspberry Pi melalui Arduino ialah ia membolehkan anda menggunakan alat SocketCAN Linux secara langsung, tanpa perlu membeli perkakasan tambahan. Secara umum, Raspberry Pi boleh bercakap dengan MCP2515 melalui SPI dengan hanya beberapa pendawaian asas. Berikut adalah beberapa pelaksanaan Raspberry Pi:

Canberry MCP2515 CAN pengawal dengan terminal skru sahaja (tiada penyambung D-sub; $ 23) Carberry Dua CAN bus line dan dua GMLAN line, LIN, dan inframerah (tidak kelihatan sebagai perisai sumber terbuka; $ 81) PICAN CAN-Bus Board MCP2515 CAN controller dengan penyambung D-sub dan terminal skru ($ 40 hingga $ 50)

Lembaga Pembangunan ChipKit Max32 dan NetworkShield

Lembaga ChipKit adalah papan pembangunan yang bersama-sama dengan NetworkShield dapat memberi anda sistem CAN yang dapat diterjemahkan rangkaian. Sekitar $ 110, penyelesaian perkakasan sumber terbuka ini disebut-sebut oleh standard OpenXC dan menyokong firmware prebuilt dari OpenXC, tetapi anda juga boleh menulis perisian firmware anda sendiri dan melakukan CAN mentah.

Chipset ELM327

Chipset ELM327 setakat ini adalah chipset termurah yang boleh didapati di mana-mana sahaja (dari $ 13 hingga $ 40), dan ia digunakan dalam kebanyakan peranti OBD yang murah. Ia berkomunikasi dengan OBD secara bersiri dan datang dengan hampir semua jenis penyambung yang anda boleh fikirkan, dari USB ke Bluetooth, Wi-Fi, dan sebagainya. Anda boleh menyambung ke peranti ELM327 melalui siri, dan mereka mampu menghantar paket selain daripada paket OBD / UDS. Untuk senarai penuh arahan menggunakan ELM327, lihat helaian data.

Malangnya, alat CAN CAN yang tersedia tidak akan berjalan di ELM327, tetapi Open Garages telah memulakan inisiatif web yang termasuk menghidupkan pemandu untuk ELM327 yang disebut CANiBUS. Harap diperhatikan bahawa ELM327 mempunyai ruang penimbunan yang terhad, jadi anda akan kehilangan paket apabila menghidu dan transmisi dapat sedikit tidak tepat. Walau bagaimanapun, jika anda berada dalam keadaan secubit, ini adalah laluan paling murah.

Sekiranya anda bersedia untuk membuka peranti dan solder beberapa wayar ke ELM327 anda, anda boleh menghidupkan firmware dan mengubahnya menjadi peranti yang serasi LAWICEL, yang membolehkan anda menggunakan ELM327 murah untuk bekerja dengan Linux dan muncul sebagai peranti slcanX ! (Anda akan menemui pembentukan bagaimana untuk melancarkan ELM327 anda di blog makerspace Area 515 dari Des Moines, Iowa.)

GoodThopter Board

Travis Goodspeed, peretas perkakasan terkenal, telah mengeluarkan sumber terbuka, papan kos rendah dengan antara muka CAN yang dikenali sebagai GoodThopter. GoodThopter, berdasarkan peranti GoodFet yang popularnya, menggunakan MCP2515 dan berkomunikasi lebih siri dengan antara muka tersendiri. Anda perlu memasang dan solder sepenuhnya bersama-sama peranti anda sendiri, tetapi berbuat demikian perlu kos hanya beberapa dolar, bergantung kepada bahagian-bahagian yang anda ada di ruang penggodam setempat anda.

OBDTester Antara Muka ELM-USB menjual peranti ELM-32x yang serasi komersial untuk sekitar $ 60. OBDTester.com adalah penyelenggara perpustakaan PyobD.

CAN232 dan CANUSB Interface

LAWICEL AB menghasilkan CAN232 peranti CAN komersial, yang dipasang di dalam port RS232 dengan penyambung DB9, dan satu versi USB yang dipanggil CANUSB (yang kemudiannya bernilai $ 110 hingga $ 120).Kerana mereka dibuat oleh pencipta protokol LAWICEL, peranti ini dijamin dapat berfungsi dengan modul pautan bersambung-utils.

Penyesuai VSCOM

VSCOM adalah modul USB CAN komersial yang berpatutan dari Sistem Visi yang menggunakan protokol LAWICEL. VSCOM berfungsi dengan Linux boleh-util melalui pautan bersiri (slcan) dan memberikan hasil yang baik. Peranti kos sekitar $ 100 hingga $ 130.

Antara muka USB2CAN

Penukar USB2CAN dari 8 peranti adalah alternatif paling murah untuk antara muka CAN yang tidak bersiri. Peranti USB kecil dan komersial ini akan muncul sebagai peranti standard can0 di Linux dan mempunyai sokongan yang paling bersepadu dalam julat harga ini. Kebanyakan peranti yang muncul sebagai peranti mentah canX adalah kad PCI dan biasanya lebih mahal daripada peranti ini.

Dewan Lembaga EVTV

EVTV.me mengkhusus dalam penukaran kereta elektrik. Mereka membuat banyak alat yang hebat untuk melakukan perkara-perkara gila untuk kenderaan bersejarah anda, seperti menambah Tesla drivetrain kepadanya. Salah satu alat mereka ialah $ 100 open source BOLEHFUL BOLEH dipanggil EVTV Due, yang pada dasarnya adalah Arduino Due with built-in CAN transceiver dan terminal screw-to interface to interface with CAN lines. Lembaga ini pada asalnya ditulis untuk berfungsi semata-mata dengan perisian SavvyCAN mereka, yang menggunakan Alat Kejuruteraan Reverse Vehicle Generalized (GVRET), tetapi kini menyokong SocketCAN juga.

CrossChasm C5 Data Logger

CrossChasm C5 adalah peranti komersial yang menyokong firmware Ford VI dan menelan kos kira-kira $ 120. C5 menyokong VI, yang juga dikenali sebagai penterjemah CAN, untuk menukarkan mesej CAN ke format OpenXC, dan ia menukar beberapa paket CAN berpemilik menjadi format generik untuk menghantar Bluetooth.

CANBus Triple Board

Semasa saya menulis ini, CANBus Triple masih dalam pembangunan. Ia menggunakan pendawaian pendawaian yang direka untuk menyokong Mazda, tetapi ia menyokong tiga buah bis CAN dari mana-mana kenderaan.

BUTIRAN LEBIH BESAR

Peranti yang lebih tinggi akan menelan belanja lebih banyak, tetapi mereka mampu menerima lebih banyak saluran serentak dan menawarkan lebih banyak ingatan untuk membantu mencegah kehilangan paket. Alat berprestasi tinggi sering menyokong lapan saluran atau lebih, tetapi melainkan jika anda menggunakan kenderaan lumba, anda mungkin tidak memerlukan banyak saluran, jadi pastikan anda memerlukan peranti seperti ini sebelum menjatuhkan sebarang wang tunai.

Peranti ini sering datang dengan perisian proprietari mereka sendiri atau langganan perisian pada kadang-kadang kos tambahan yang signifikan. Pastikan perisian yang dikaitkan dengan peranti yang anda pilih melakukan apa yang anda kehendaki kerana biasanya anda akan dikunci ke API dan perkakasan pilihannya. Jika anda memerlukan peranti akhir yang berfungsi dengan Linux, cuba Kvaser, Peak, atau EMS Wünsche. Peranti dari syarikat-syarikat ini biasanya menggunakan chipset sja1000 pada harga bermula sekitar $ 400.

CAN Bus Y-Splitter

A bus Y-splitter CAN adalah peranti yang sangat mudah iaitu pada dasarnya satu penyambung DLC ​​dipecahkan kepada dua penyambung, yang membolehkan anda memasangkan de-vice menjadi satu port dan sniffer CAN ke yang lain. Ini biasanya kos sekitar $ 10 di Amazon dan sebenarnya agak mudah untuk membuat diri anda.

HackRF SDR

HackRF adalah SDR dari Great Scott Gadgets. Projek perkakasan sumber terbuka ini boleh menerima dan menghantar isyarat dari 10 MHz hingga 6 GHz. Pada kira-kira $ 330, anda tidak boleh mendapatkan SDR yang lebih baik untuk harga.

SDR USRP

USRP adalah peranti SDR modular yang profesional yang boleh anda bina untuk memenuhi keperluan anda. USRP adalah sumber terbuka kepada pelbagai peringkat pada harga antara $ 500 hingga $ 2.000.

ChipWhisperer Toolchain

NewAE Technologies menghasilkan ChipWhisperer. ChipWhisperer adalah sistem untuk serangan saluran sisi, seperti analisis kuasa dan gangguan waktu. Sistem yang sama biasanya kos $ 30,000 atau lebih, tetapi ChipWhisperer adalah sistem sumber terbuka yang berharga antara $ 1,000 dan $ 1,500.

Lembaga Pitaya Merah

Red Pitaya adalah alat ukur sumber terbuka yang sekitar $ 500 menggantikan alat ukuran mahal seperti oscilloscopes, penjana isyarat, dan penganalisis spektrum. Red Pitaya mempunyai antara muka LabView dan Matlab, dan anda boleh menulis alat dan aplikasi anda sendiri untuknya. Ia juga menyokong sambungan untuk perkara seperti perisai Arduino.

Perisian

Seperti yang kita lakukan dengan perkakasan, kita akan memfokuskan terlebih dahulu pada alat sumber terbuka dan kemudian menutupi yang lebih mahal.

Wireshark

Wireshark adalah alat sniffing rangkaian yang popular. Adalah mungkin untuk menggunakan Wireshark pada rangkaian bas CAN selagi anda menjalankan Linux dan menggunakan SocketCAN. Wireshark tidak mempunyai apa-apa ciri untuk membantu menyusun atau menafsirkan paket BISA, tetapi ia boleh berguna dalam secubit.

Modul Pyobi

PyobD-juga dikenali sebagai PyobD2 dan PyobD-II-adalah modul Python yang berkomunikasi dengan peranti ELM327. Ia didasarkan pada perpustakaan PySerial dan direka untuk memberikan anda maklumat mengenai persediaan OBD anda dalam antara muka yang mudah. Untuk garpu alat imbasan tertentu PyobD, lihat Austin Murphy's OBD2 ScanTool, yang cuba menjadi penyelesaian sumber terbuka yang lebih lengkap untuk penyelesaian masalah diagnostik.

Alat Linux

Linux menyokong CAN pemandu keluar dari kotak, dan SocketCAN menyediakan rangkaian netlink (interface card interface) yang mudah apabila berurusan dengan CAN. Anda boleh menggunakan suite boleh-utils untuk pelaksanaan baris arahan, dan sebagai perisian sumber terbuka, mudah untuk memperluaskan fungsi ke utiliti lain.

CANiBUS Server

CANiBUS adalah pelayan web yang ditulis dalam Go by Open Garages. Pelayan ini membenarkan bilik penuh penyelidik untuk bekerja secara serentak pada kenderaan yang sama, sama ada untuk tujuan pengajaran atau sesi pembalikan pasukan. Bahasa Go mudah alih ke mana-mana sistem operasi, tetapi anda mungkin menghadapi masalah dengan pemandu peringkat rendah pada platform tertentu. Sebagai contoh, walaupun anda menjalankan CANiBUS di Linux, anda tidak akan dapat berinteraksi secara langsung dengan SocketCAN kerana Go tidak menyokong bendera soket yang diperlukan untuk menginisialisasi antara muka CAN. (Masalah ini boleh diatasi dengan melaksanakan socketcand, tetapi sebagai penulisan ini, ciri itu belum dilaksanakan.) CANiBUS mempunyai pemandu untuk ELM327 yang menyokong menghidupkan generik. Anda boleh mengetahui lebih lanjut mengenai CANiBUS dan boleh memuat turun sumbernya.

Kayak

Kayak adalah GUI berasaskan Java untuk menganalisis BACA Trafik. Ia mempunyai beberapa ciri canggih, seperti pengesanan GPS dan keupayaan rekod dan main balik. Ia menggunakan socketcand untuk berfungsi pada sistem operasi lain, jadi anda memerlukan sekurang-kurangnya satu sniffer berasaskan Linux untuk menyokong Kayak.

SavvyCAN SavvyCAN adalah alat yang ditulis oleh Collin Kidder dari EVTV.me yang menggunakan rangka kerja lain yang direka oleh EVTV.me, GVRET, untuk bercakap dengan HW mengendus seperti EVTV Due. SavvyCAN adalah sumber terbuka, alat berasaskan Qt GUI yang berfungsi pada sistem operasi berganda. Ia merangkumi beberapa ciri yang sangat bagus, seperti editor DBC, CAN bus graphing, log file diffing, beberapa alat kejuruteraan terbalik, dan semua ciri BOOK BOX yang normal yang anda harapkan. SavvyCAN tidak bercakap dengan SocketCAN, tetapi ia boleh membaca dalam beberapa format logfile yang berbeza, seperti log Bushmaster, log Microchip, format CRTD, dan logfiles yang diformat CSV generik.

O2OO Logger Data

O2OO adalah sumber terbuka data logger OBD-II yang berfungsi dengan ELM327 untuk mencatat data ke pangkalan data SQLite untuk tujuan grafik. Ia juga menyokong membaca data GPS di NMEA untuk mat.

Menjaga Caribou

Menyiram Caribou, yang ditulis dalam Python, direka untuk menjadi penggodam automotif Nmap. Sebagai penulisan ini, masih dalam tahap awal, tetapi ia menunjukkan banyak potensi. Merawat Caribou mempunyai beberapa ciri yang unik, seperti keupayaan untuk perkhidmatan diagnostik kuasa kasar, dan mengendalikan XCP. Ia juga mempunyai fungsi sniff-and-send standard anda dan akan menyokong modul anda sendiri.

c0f Alat cap jari

CAN of Fingers (c0f) adalah alat sumber terbuka untuk cap jari CAN sistem bas. Ia mempunyai beberapa sokongan asas untuk mengenal pasti corak dalam aliran rangkaian bis CAN, yang boleh berguna apabila cuba mencari isyarat khusus pada bas bising.

UDSim ECU Simulator

UDSim adalah alat GUI yang boleh memantau bis CAN dan secara automatik mempelajari peranti yang dilampirkan dengan menonton komunikasi. Ia direka untuk digunakan dengan alat diagnostik yang lain, seperti alat pengedar atau alat imbasan dari kedai automotif tempatan.

UDSim mempunyai tiga mod: pembelajaran, simulasi, dan serangan. Dalam mod pembelajaran, ia mengenal pasti modul yang bertindak balas terhadap pertanyaan diagnostik UDS dan memantau tindak balas. Dalam mod simulasi, ia mensimulasikan kenderaan di bas BOLE untuk menipu atau menguji alat diagnostik. Dalam mod serangan, ia membuat profil yang fuzzing untuk alat seperti Peach Fuzzer.

Octane CAN Bus Sniffer

Octane adalah sumber terbuka CAN sniffer bas dan penyuntik dengan antara muka yang sangat bagus untuk menghantar dan menerima paket CAN, termasuk sistem pencetus XML. Pada masa ini, ia hanya berjalan pada Windows.

GUI AVRDUDESS

AVRDUDESS adalah GUI frontend untuk AVRDUDE yang ditulis dalam .NET, walaupun berfungsi dengan baik dengan Mono pada Linux.

RomRaider ECU Tuner

RomRaider adalah suite penalaan sumber terbuka untuk unit kawalan enjin Subaru yang membolehkan anda melihat dan log data dan menala ECU. Ia adalah salah satu penala ECU sumber terbuka, dan ia boleh mengendalikan paparan 3D dan pembukaan data secara langsung. Anda memerlukan kabel Tactrix Open Port 2.0 dan perisian Tactrix EcuFlash untuk memuat turun dan menggunakan perisian tegar ECU. Sebaik sahaja anda memuat turun flash dengan EcuFlash, anda boleh mengeditnya dengan RomRaider. Editor ditulis di Jawa dan kini berfungsi pada Windows dan Linux, walaupun EcuFlash tidak disokong pada Linux.

Komodo CAN Sniffer Bus

Komodo adalah sniffer yang lebih tinggi dengan sistem multi Python SDK. Ia berharga sekitar $ 350 hingga $ 450 bergantung kepada sama ada anda mahu antara muka tunggal atau dwi-CAN. Komodo mempunyai keupayaan pengasingan untuk menghalang komputer anda daripada menggoreng jika anda menyalahgunakan sesuatu, serta lapan pin IO tujuan umum yang anda boleh konfigurasi untuk mencetuskan tindakan dari peranti luaran. Komodo datang dengan beberapa perisian yang baik untuk mendapatkan anda dan berjalan, tetapi kelebihan sebenar ialah anda boleh menulis perisian Komodo anda sendiri.

Kenderaan Perisik

Kenderaan Spy adalah alat komersil dari Sistem Kawalan Intrepid yang direka khusus untuk membalikkan CAN dan protokol komunikasi kenderaan yang lain. Perisian ini memerlukan satu lesen bagi setiap peranti NeoVI atau ValueCAN, kedua-dua peranti proprietari untuk Perisik Kenderaan. ValueCAN3 adalah peranti termurah yang berfungsi dengan Perisik Kenderaan. Ia mempunyai antara muka CAN dan kos kira-kira $ 300. Tambah perisian Perisian Perisik Kendaraan dan kos anda akan menjadi sekitar $ 1,300.

Peranti NeoIV adalah akhir yang lebih tinggi, dengan pelbagai chan-nets yang boleh dikonfigurasi, bermula pada sekitar $ 1,200. Pakej asas mengandungi NeoIV (Red) dan Basic Spy Kenderaan untuk $ 2,000, yang menjimatkan sedikit wang. Kenderaan Perisik Profesional kos kira-kira $ 2,600 tanpa perkakasan. (Anda akan menemui pilihan tujuh pada laman web Intrepid.)

Semua peranti perkakas Intrepid menyokong skrip muat naik untuk berjalan di dalam bas dalam masa nyata. Kenderaan Perisik Asas menyokong CAN / LIN RX / TX opera-tions. Anda memerlukan versi profesional hanya jika penggodaman kereta akan menjadi projek sepenuh masa untuk anda atau jika anda ingin menggunakan ECU berkelip atau ciri lanjutan lain, seperti Simulasi Node, skrip pada sniffer, atau penentukuran memori.

Kongsi

Meninggalkan Komen