Pandangan yang dinyatakan dalam dokumen dan kode ini adalah milik penulis dan tidak mencerminkan kebijakan resmi atau posisi Angkatan Udara Amerika Serikat, Angkatan Darat Amerika Serikat, Departemen Pertahanan Amerika Serikat atau Pemerintah Amerika Serikat. Materi ini dinyatakan sebagai karya pemerintah AS dan tidak tunduk pada perlindungan hak cipta di Amerika Serikat. Persetujuan untuk pengungkapan publik kode ini telah disetujui oleh Urusan Publik Basis Udara ke-88 pada 08 Maret 2019 di bawah nomor kasus 88ABW-2019-0910. Pengungkapan disertasi yang tidak diklasifikasikan disetujui pada 03 Januari 2019 di bawah nomor kasus 88ABW-2019-0024.
Proyek ini memiliki skrip Python dan R yang dimaksudkan untuk memfasilitasi rekayasa balik otomatis dari payload Area Network (CAN) yang diamati dari kendaraan penumpang. Kode ini awalnya dikembangkan oleh Dr. Brent Stone di Air Force Institute of Technology dalam mengejar Dokter Filsafat dalam Ilmu Komputer. Silakan lihat disertasi yang disertakan berjudul "Mengaktifkan Audit dan Deteksi Intrusi untuk Jaringan Area Pengontrol Kepemilikan" untuk perincian tentang metode yang digunakan. Harap buka masalah yang memberi tahu saya jika Anda menemukan kesalahan ketik, tata bahasa yang buruk, gambar berhak cipta yang ingin Anda hapus, atau masalah lainnya!
Terima kasih khusus kepada Dave Blundell, rekan penulis buku pegangan mobil peretas, dan komunitas Open Garages untuk saran teknis dan melayani sebagai papan suara.
Script ini tidak akan segera berjalan saat mengkloning repo ini. Semoga tips ini akan menghemat waktu dan frustrasi Anda dengan mengatakan, "Mengapa hal -hal ini berhasil!?!?!" Silakan ajukan pertanyaan dengan memposting di grup Google Open Garages. Skrip -skrip ini dikembangkan dan diuji menggunakan Python 3.6. Pastikan Anda memiliki paket numpy, panda, & scikit-learn yang tersedia untuk penerjemah python Anda.
File -file tersebut disusun dengan contoh dapat sampel data dan tiga folder. Setiap folder adalah set mandiri kelas Python yang saling bergantung atau skrip R untuk memeriksa data dalam format yang ditunjukkan dalam contoh LoggerProgram0.log. Format file yang berbeda dapat digunakan dengan menyesuaikan preprocessor.py yang sesuai.
Folder 1: Pipa
Folder 2: Pipeline_Multi-File
Ini adalah implementasi konsep yang paling lengkap dan kuat yang disajikan dalam disertasi; Namun, kode ini juga lebih rumit untuk memungkinkan pemrosesan otomatis banyak sampel data kaleng sekaligus. Jika Anda belum sangat nyaman dengan python dan panda, pastikan Anda memahami bagaimana skrip dalam folder pipa berfungsi sebelum mencoba melalui versi kode yang diperluas ini.
Folder ini mencakup kelas yang sama dari pipa . Namun, beberapa bug diperbaiki di sini tetapi tidak di kelas yang disimpan dalam pipa . Jika jiwa yang murah hati ingin mentransplantasikan perbaikan kembali ke pipa , saya akan dengan senang hati menggabungkan garpu.
Pastikan Anda membaca komentar tentang struktur folder yang diharapkan!
Folder 3: R skrip
Skrip R membutuhkan paket REDM. Cari Commands_List.txt untuk serangkaian perintah R berurutan. Untuk informasi lebih lanjut tentang EDM, lihat Beranda Sugihara Lab UC San Diego: https://deepeco.ucsd.edu/.
Folder "City" dan "Home" termasuk file .csv dari rpm mesin, tekanan rem, dan deret waktu kecepatan kendaraan selama kondisi mengemudi yang berbeda. Setiap folder menyertakan file "commands_list _ ####. Txt" untuk perintah copy-paste r untuk menganalisis data ini menggunakan paket REDM.
File .rda dan output grafis .pdf adalah contoh output menggunakan perintah r dan menyediakan data .csv.
[Pembaruan April 2020] Akankah Freeman menambahkan dukungan untuk argumen baris perintah dan pra-pemrosesan format log-utils. Penggunaan adalah:
Contoh Penggunaan Dengan Can -Utils Format Log Python Main.py -C InputFile.log
Python Main.py-Can-utils inputfile.log
Contoh digunakan dengan format asli python main.py originalformat.log
Contoh digunakan dengan ./loggerprogram0.log python main.py
Input : Can data dalam format yang ditunjukkan dalam LoggerProgram0.log
Output : Rangkaian skrip ini menghasilkan array output tergantung pada variabel global yang didefinisikan dalam main.py. Output ini mungkin termasuk yang berikut:
Input : Can data dalam format yang ditunjukkan dalam LoggerProgram0.log.
Input : File .csv sederhana yang berisi data deret waktu seperti yang termasuk dalam folder ini.
Output :