本文档中表达的观点和守则是作者的观点,不反映美国空军,美国陆军,美国国防部或美国政府的官方政策或立场。该材料被宣布为美国政府的工作,在美国不受版权保护。批准公开披露该守则的批准已于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文件,例如此文件夹中包含的数据。
输出: