概述
在进行27服务认证的时候,需要添加dll文件。在以往项目中,车厂提供安全算法的同时会一并提供dll文件。但这次需要需要自己制作。本篇记录下制作过程。
使用VS2010编译dll
制作方法
CANoe中是有提供demo工程的:
KeyGenDll_GenerateKeyEx 和 KeyGenDll_GenerateKeyExOpt 两个工程都可以用来制作dll文件,分别提供 GenerateKeyEx 和 GenerateKeyExOpt 接口。其中 GenerateKeyExOpt 多一个传入参数,普通应用并不需要。
初次制作的时候,我还没有CANoe,找大佬提供要了一份以前用过的工程(点击进入)
。
工程使用VS2010进行编译。VS2010官网下载(点击进入):
需要登录微软账号。
实现算法
在VS2010中打开工程
选择 KeyGenDll_GenerateKeyEx 工程的GenerateKeyExImpl.vcproj文件:
打开后可以看到有个GenerateKeyExlmpl.cpp源文件
传入参数的含义分别是:
iSeedArray, ECU返回的种子数组
iSeedArraySize, ECU返回的种子数组最大长度
iSecurityLevel, 要解锁的级别(01、03、05、11等)
iVariant, ECU变体限定符
ioKeyArray, Tester返回计算出的密钥
iKeyArraySize, Tester返回计算出的密钥最大长度
oSize 计算出密钥的字节数(点击进入)
在此基础上,根据自己的需求,实现算法即可。可以支持不同的安全等级。修改完毕,build编译工程:
这里会有警告。
到对应目录中获取dll文件
测试验证
在BusMaster中加载dll文件:
进行解锁