本文檔中表達的觀點和守則是作者的觀點,不反映美國空軍,美國陸軍,美國國防部或美國政府的官方政策或立場。該材料被宣佈為美國政府的工作,在美國不受版權保護。批准公開披露該守則的批准已於2019年3月8日第88空軍基地公共事務批准,案件號為88ABW-2019-0910。未分類的論文披露於2019年1月3日批准了案件編號88ABW-2019-0024。
該項目包含Python和R腳本,旨在促進控制器區域網絡(CAN)有效載荷的自動化逆向工程。該守則最初是由空軍理工學院的布倫特·斯通(Brent Stone)博士開發的,以追求計算機科學哲學博士。有關使用方法的詳細信息,請參閱包括“啟用審計和入侵檢測的審計和入侵檢測”的詳細信息。請打開一個問題,讓我知道您是否找到任何錯別字,不良語法,您想要刪除的受版權保護的圖像或其他問題!
特別感謝《汽車黑客手冊》的合著者戴夫·布倫德爾(Dave Blundell)和開放式車庫社區的技術建議和發聲板。
這些腳本在克隆此存儲庫時不會立即運行。希望這些技巧能節省您的時間和挫敗感:“為什麼這些事情不起作用!?!?!”請通過在開放式車庫Google Group中發布問題來提出問題。這些腳本是使用Python 3.6開發和測試的。請確保您的Python解釋器可提供Numpy,Pandas和Scikit-Learn軟件包。
這些文件是用示例CAN數據樣本和三個文件夾進行組織的。每個文件夾是一組獨立的相互依存的Python類或R腳本,用於檢查示例LoggerProgram0.log中所示的格式的CAN數據。可以通過相應地調整預處理器py來使用不同的文件格式。
文件夾1:管道
文件夾2: pipeline_multi-file
這是論文中提出的概念的最完整,最強大的實施。但是,該代碼也更為複雜,可以一次啟用許多罐頭數據樣本的自動處理。如果您對Python和Pandas還不太滿意,請確保您在嘗試瀏覽此擴展的代碼版本之前,了解管道文件夾中的腳本如何工作。
該文件夾包括管道中的相同類。但是,某些錯誤是在這裡修復的,但沒有在保存在管道中的類中。如果一個慷慨的靈魂想將修復程序移植到管道中,我會很樂意合併叉子。
確保您閱讀有關預期文件夾結構的評論!
文件夾3: R腳本
R腳本需要REDM軟件包。查找commands_list.txt以獲取一系列r命令。有關EDM的更多信息,請參見聖地亞哥分校的Sugihara Lab Homepage:https://deepeco.ucsd.edu/。
文件夾“ City”和“ Home”包括在不同駕駛條件下的發動機RPM,制動壓力和車輛速度時間序列的.CSV文件。每個文件夾都包含一個“ commands_list _ ####。txt”文件,用於復制paste r命令,以使用REDM軟件包分析此數據。
.RDA文件和.pdf圖形輸出是使用R命令並提供.CSV數據的輸出的示例。
[2020年4月更新] Will Freeman增加了對命令行參數和CAN-UTILS日誌格式預處理的支持。用法是:
示例與can -utils log格式python main.py -c inputfile.log一起使用
python main.py-can-utils inputfile.log
示例與原始格式python main.py OriginalFormat.log一起使用
示例與./loggerprogram0.log Python main.py一起使用
輸入:loggerprogram0.log中所示格式的數據可以
輸出:這一系列腳本會根據Main.py中定義的全局變量產生輸出數組。該輸出可能包括以下內容:
輸入:loggerprogram0.log中所示的格式數據可以。
輸入:包含時間序列數據的普通text .csv文件,例如此文件夾中包含的數據。
輸出: