Apa yang bisa dilakukan melalui konektor OBD di mobil

Bukan rahasia lagi bahwa di mobil modern semua sistem ke bola mata tersumbat dengan berbagai elektronik, bahkan pengatur jendela yang sederhana memiliki mikrokontroler sendiri dan alamat di jaringan bersama. Sebagai pemilik yang tertarik, saya bertanya-tanya apa yang dapat dilakukan dengan hanya akses ke konektor OBD dan tidak lebih.

Segala sesuatu yang dijelaskan dalam artikel mengacu pada mobil 2008 (Mitsubishi Lancer), tetapi seperti yang telah ditunjukkan, setelah 10 tahun produsen tidak mengubah apa pun dan semua fungsi terus digunakan dan bekerja pada mobil modern.

Struktur jaringan di dalam mobil ditunjukkan pada gambar:

gambar

Mobil ini memiliki 3 bus CAN (bus motor kecepatan tinggi 500kbps, kabin kecepatan rendah 83,3 kbps, diagnostik) dan satu bus LIN. Tautan penghubung di antara mereka adalah blok ETACS (Electronic Total Automobile Control System), yang bertindak sebagai "gateway" dan mengirim pesan dari satu bus ke bus lain, sesuai aturan tertentu, dan juga memproses beberapa di antaranya. Apa yang bisa dilakukan dengan bus CAN? Misalnya, mengobrol dengan blokir, atau mungkin mengubah sesuatu. Untuk memulai dialog dengan blok apa pun, Anda perlu mengetahui alamatnya, serta fungsi yang didukung (PID), yang dapat diproses dan diberikan jawabannya.

Dalam domain publik terletak perangkat lunak untuk dealer yang disebut MUT III. Setelah mempelajari databasenya, Anda dapat menemukan semua informasi yang kami minati.

Tentang alamat (permintaan-respons) di jaringan CAN:

gambar

PID permintaan, dekripsi lengkap respons dari semua blok, termasuk posisi byte dalam respons (jika beberapa nilai dikirim dalam satu bingkai) dan faktor dengan unit:

gambar

Misalnya, kita ingin tahu sudut kemudinya. Untuk melakukan ini, kirim perintah 2102 ke unit kontrol ESP. Sebagai tanggapan, pesan 6102 FFEA000008FFF302 akan tiba

Melihat tabel, kita mengetahui bahwa byte 2 dan 3 diperlukan.

gambar

Nilai di int16. 0xFFEA = -22, dikalikan dengan faktor 0,04375 kita mendapatkan sudut kemudi -0,9625 derajat.

Dengan demikian, Anda dapat meminta banyak informasi dari unit kontrol, hingga berapa jam radio diputar dan berapa disk dimasukkan ke radio, serta menjalankan tes diagnostik pada semua node (misalnya, Anda dapat menyalakan lampu berbeda di dasbor dan menarik panah, misalnya).

gambar


Yah, yang kami inginkan hanyalah apa yang kami pelajari, tetapi apa gunanya itu? Sekarang, jika Anda mengubah / mengaktifkan / menonaktifkan sesuatu ...

Contoh sederhana. Unit kontrol transmisi otomatis memiliki penghitung perangkat lunak untuk tingkat penuaan oli, dan ketika nilai ambang tertentu diakumulasikan, sebuah pesan muncul di layar bk bahwa transmisi perlu diservis. Oli diubah, dan pesan terus ditampilkan di layar, karena tidak ada yang dapat mereset konter dan hanya pemindai dealer MUT-III (yang biayanya sekitar $ 1000, tidak semua orang mampu membelinya) dapat mengatur ulang dan beberapa program (juga tidak gratis). Semua dalam tabel yang sama Anda dapat menemukan tim di bawah nama penjelasan sendiri CLEAR_CVT_oil_degradation_level_Start. Anda bisa tertawa kejam ke arah OD dan mengatur ulang penghitung naas ini sendiri. Kami mengirim perintah 31 03 ke blok CVT dan ... kami mendapatkan 7F 31 33 sebagai tanggapan.

Penyimpangan kecil. Hampir semua kendaraan menggunakan mekanisme UDS (alias ISO 14229) untuk diagnostik dan pemeliharaan.

Ini menyederhanakan kehidupan pengembang scanner diagnostik otomotif dan disatukan untuk semua produsen mobil (tetapi ini tidak berarti bahwa beberapa tidak dapat menemukan add-on mereka sendiri di atasnya).

Akibatnya, kami memiliki respons yang didekripsi dari variator: 7F - permintaan ditolak, 31 adalah PID yang kami kirim dan kode respons negatif 33, yaitu Akses Keamanan Ditolak. Artinya, kami tidak memiliki hak untuk mengubah atau meminta fungsi ini. Siapa yang dia miliki?

Digresi 2. UDS menggunakan mekanisme untuk membatasi akses ke beberapa tingkatan - sesi diagnostik reguler, sesi diperpanjang, sesi pemrograman, dll. Setiap sesi memiliki tingkat akses yang memutuskan apa yang Anda bisa dan apa yang tidak. Untuk mengaksesnya, Anda perlu meminta apa yang disebut Seed dari blok, memprosesnya dengan algoritma tertentu dan mengirimkannya kembali ke blok (Kunci). Baca lebih lanjut di sini .

Mari kita coba meminta seed. Kami mengirim perintah 2701 ke ECU dan mendapatkan tanggapan 6701 6A43FD3C.
Mengirim nilai 4-byte sebagai respons ( 27 02 DEADBEEF), kami mendapatkan respons 7F 27 35, di mana 35 adalah Kunci Tidak Valid (kunci tidak valid), karena nilai "dari langit-langit" telah dikirim. Di mana mencari algoritma perhitungan kunci? Tidak ada tempat lain di firmware unit kontrol. Cukup mudah untuk mendapatkannya (tetapi tidak pada semua blok, semuanya tergantung pada mikrokontroler yang digunakan), pertama-tama kita menemukan CAN accept handler, kemudian fungsi pemrosesan PID 0x27.

gambar

Mengulang pertukaran seed-key dengan algoritma dari firmware, kami mendapatkan 6702 34 sebagai respons, di mana 34 adalah "Akses diizinkan". Setelah itu, perintah untuk mengatur ulang tingkat degradasi minyak berhasil memenuhi dan mengembalikan bukan kode respons negatif, tetapi respons positif 7103 01 dan penghitung berhasil diatur ulang.

Dengan demikian, melalui konektor OBD, Anda dapat melakukan hampir semua hal dengan mobil: ubah nomor VIN di blok, konfigurasikan pengkodean (konfigurasi), matikan immobilizer dalam waktu kurang dari sedetik, hapus informasi kesalahan, masukkan blok ke keadaan boot ketika Anda dapat memuat kode dan jalankan. Sistem keamanan Jepang sedikit timpang.

Contoh perubahan konfigurasi pada video:


Artikel ini ditulis untuk tujuan informasi saja. Intervensi apa pun dalam unit kontrol elektronik mobil mungkin merupakan yang terakhir bagi mereka. Semoga hari kalian menyenangkan!

Source: https://habr.com/ru/post/id448658/


All Articles