91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文了解TSMaster中Seed和key的兩種處理方法

上海同星智能科技有限公司 ? 2023-08-26 08:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在UDS診斷過程中,會涉及到安全訪問的問題,也就是常說的Seed&Key。TSMaster中提供了兩種 Seed&Key 的處理方法:第一種是直接加載DLL文件;第二種是直接在TSMaster的編譯器中直接添加安全算法。

加載外部 Seed&Key DLL

TSMaster 診斷模塊支持通過 dll 載入 Seed&Key 算法,該算法 dll 跟主流工具的計算接口兼容,接口定義如下圖所示:

b8f61cd2-43a6-11ee-8e12-92fbcf53809c.png

DLL 加載界面如下圖所示:

b90a1688-43a6-11ee-8e12-92fbcf53809c.png


【1】 加載 DLL

【2】 刪除 DLL


【3】 DLL 校驗器,通過此按鈕,用戶可以判斷自己加載的 dll 接口是否正確,算法是否符合設計要求。如下圖所示:

b926c422-43a6-11ee-8e12-92fbcf53809c.png

如上圖所示界面,用戶選擇 Seed 的 Level 過后,輸入 Demo Seed 值,點擊 GenKey 進行判斷。如果該 DLL 接口跟模板定義接口統(tǒng)一,則會輸出提示信息:Generate Key Success,然后用戶根據(jù) Key 值跟目標值對比,進一步確認DLL 中的算法是否符合設計要求。


【4】 打開 TSMaster 安裝目錄下 Seed&Key 接口工程所在的路徑。用戶可以拷貝該工程添加自己的 Seed&Key 算法。


默認SeedKey函數(shù)接口

目前,要想被 TSMaster 的診斷模塊直接加載,該 DLL 必須實現(xiàn)如下三種函數(shù)接口中的一種:


【1】 接口 1:

unsigned int GenerateKeyEx(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned int iSeedArraySize, /* Length of the array for the seed [in] */

const unsigned int iSecurityLevel, /* Security level [in] */

const char* ipVariant, /* Name of the active variant [in] */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned int& oActualKeyArraySize); /* Length of the key [out] */


【2】 接口 2:

unsigned int GenerateKeyExOpt(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned int iSeedArraySize, /* Length of the array for the seed [in] */

const unsigned int iSecurityLevel, /* Security level [in] */

const char* ipVariant, /* Name of the active variant [in] */

const char* iPara, /* */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned int& oActualKeyArraySize) /* Length of the key [out] */


【3】 接口 3:

bool ASAP1A_CCP_ComputeKeyFromSeed(

const unsigned char* ipSeedArray, /* Array for the seed [in] */

unsigned short iSeedArraySize, /* Length of the array for the seed [in] */

unsigned char* iopKeyArray, /* Array for the key [in, out] */

unsigned short iMaxKeyArraySize, /* Maximum length of the array for the key [in] */

unsigned short* opSizeKey) /* Length of the key [out] */


用戶的 DLL 只要實現(xiàn)了上述任意一種函數(shù)接口,即可直接加載到 TP 層模塊中。如果出現(xiàn)加載失敗,主要檢查如下情況:

1. 是否用 Release 模式發(fā)布,如果是 Debug 模式,常常會有以上失敗的情況出現(xiàn)。

2. 是否采用 x86 平臺發(fā)布,目前 TSMaster 為支持 X86 的版本,用來調試的 DLL 也必須為X86 模式。


如何兼容其他函數(shù)接口

日常使用中,經(jīng)常出現(xiàn)用戶已經(jīng)開發(fā)好了 dll,如果該 dll的接口不是上述三種中的任何一種,就無法直接加載到 TSMaster 的診斷模塊中。對于這種情況,推薦采用如下方案來解決此問題:

b930c648-43a6-11ee-8e12-92fbcf53809c.png


下面以一個實際的實例來講解如何兼容用戶現(xiàn)有的 DLL 文件。


1. 用戶現(xiàn)有的 DLL,名稱為 UserSeedKey.dll。該函數(shù)內部的 API 函數(shù)有:

? Seed 等級為 1 的時候,調用函數(shù) void GetKeyFromSeed01(byte* ASeed, byte* AKey);

? Seed 等級為 3 的時候,調用函數(shù) void GetKeyFromSeed03(byte* ASeed, byte* AKey);

? Seed 等級為 11 的時候,調用函數(shù) void GetKeyFromSeed11(byte* ASeed, byte* AKey);


該 dll 不支持上述默認加載接口,無法直接加載到 TSMaster 中使用。因此,需要把這些 DLL 再包裝一層,才能載入到 TSMaster 的診斷模塊中。


2. 選擇 TSMaster 安裝目錄中提供的 GenerateKeyEx 的模板工程,在該工程中調用上述 DLL的函數(shù)接口。基本思路是:

? 采用 Loadlibrary 動態(tài)用戶現(xiàn)有的 dll。

? 根據(jù)傳入的 Level 參數(shù),采用 GetProcAddress 函數(shù)動態(tài)獲取實際的用于計算 Key 的函數(shù)指針。

? 如果獲取函數(shù)指針成功,則使用該函數(shù)指針傳輸 Seed 值,并計算對應的 Key 值。


詳細調用示例函數(shù)如下圖所示:

b94ab6ac-43a6-11ee-8e12-92fbcf53809c.png


3. 該 GenerateKeyEx 工程開發(fā)結束后,TSMaster 直接加載 GenerateKeyEx 所在的 dll。需要注意的是,用戶需要把現(xiàn)有的UserSeedKey.dll 拷貝到TSMaster 根目錄或者GenerateKeyEx.dll 所在的目錄。如果不拷貝過去,GenerateKeyEx.dll 執(zhí)行的時候會出現(xiàn)找不到對應依賴 dll 的情況,解鎖失敗。

總結:

在 TSMaster 安裝目錄中,提供了封裝 Seed&Key 算法的模板工程。如 GenerateKeyEx,GenerateKeyExOpt ASAP1A_CCP_ComputeKeyFromSeed,用戶基于此模板工程開發(fā)即可得到能夠直接加載的 dll 函數(shù)。

同時,也提供了二次封裝的 dll 的工程,比如 GenerateKeyEx_Wrapper_Demo,該工程演示了如何基于已經(jīng)存在的 SeedKey 算法庫進行包裝,生成可以直接加載到 TSMaster 診斷模塊中的 dll 的過程。


采用內置的算法編輯器

基本步驟如下所示:

b969e716-43a6-11ee-8e12-92fbcf53809c.png

注意事項:

【1】 算法函數(shù)的接口,TSMaster 目前提供了最常用的接口形式,如果用戶有自己特殊的接口形式,無法覆蓋住,請聯(lián)系上海同星把此接口增加到選項中。

b982d636-43a6-11ee-8e12-92fbcf53809c.png

【2】 所有的接口函數(shù)都定義了返回值 s32。增加此約束,主要是增加函數(shù)的嚴謹性。返回值為 0 表示成功,為其他值則有對應的錯誤碼。用戶在編輯代碼的時候,最后一行一定不要忘了輸入返回值,否則系統(tǒng)執(zhí)行函數(shù)過后,會認為算法執(zhí)行失敗,不予往后面執(zhí)行。如下所示:

b98d1664-43a6-11ee-8e12-92fbcf53809c.png

【3】 添加算法過后,點擊 OK 退出。TSMaster 內置編譯器會自動解釋該算法,并準備好在執(zhí)行診斷的過程中使用。

以上就是Seed&Key 的兩種處理方法,如有任何問題可與同星聯(lián)系。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dll
    dll
    +關注

    關注

    0

    文章

    120

    瀏覽量

    46838
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51581
  • MASTER
    +關注

    關注

    0

    文章

    111

    瀏覽量

    12199
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TVS vs TSS 兩種保護機制的深度博弈

    在現(xiàn)代電子設備日益精密、工作環(huán)境愈發(fā)復雜的背景下,電路安全問題尤其是雷擊和瞬態(tài)過壓(Surge)防護,已成為產(chǎn)品設計不可忽視的重要環(huán)節(jié)。其中,TVS(瞬態(tài)電壓抑制器)與TSS(晶閘管浪涌抑制器)是兩種廣泛應用的浪涌保護器件。盡管二者均服務于同
    的頭像 發(fā)表于 02-12 15:23 ?631次閱讀
    TVS vs TSS <b class='flag-5'>兩種</b>保護機制的深度博弈

    不同地線處理方法

    1. 數(shù)字地和模擬地應分開; 在高要求電路,數(shù)字地與模擬地要分開。即使是對于A/D、D/A轉換器同芯片上兩種“地”最好也要分開,僅在系統(tǒng)點上把
    發(fā)表于 12-03 07:38

    兩種電流檢測電路設計方案 高側 低側 最高耐壓90V

    常用的電流檢測電路有兩種一種是低壓側電流檢測,另一種是高壓側電流檢測。 實現(xiàn)方法兩種電流檢測電路工作原理
    的頭像 發(fā)表于 11-24 16:16 ?1156次閱讀
    <b class='flag-5'>兩種</b>電流檢測電路設計方案 高側 低側 最高耐壓90V

    用PLC實現(xiàn)卷徑計算的兩種算法

    卷徑計算,是動態(tài)計算如鋼卷,紙卷等存料量的一種方法,它是實現(xiàn)張力控制和自動充放料、以及甩尾控制的重要前提。卷徑計算目前主流的方法兩種,一種是根據(jù)機列速度(產(chǎn)線速度)和和被測卷的轉動角
    的頭像 發(fā)表于 11-14 16:54 ?2062次閱讀
    用PLC實現(xiàn)卷徑計算的<b class='flag-5'>兩種</b>算法

    ADI GMSL技術兩種視頻數(shù)據(jù)傳輸模式的區(qū)別

    本文深入介紹GMSL技術,重點說明用于視頻數(shù)據(jù)傳輸?shù)南袼啬J胶退淼滥J街g的差異。文章將闡明這兩種模式之間的主要區(qū)別,并探討成功實施需要注意的具體事項。
    的頭像 發(fā)表于 10-10 13:49 ?2312次閱讀
    ADI GMSL技術<b class='flag-5'>兩種</b>視頻數(shù)據(jù)傳輸模式的區(qū)別

    兩種TVS有啥不同?

    當我們查看TVS二極管的規(guī)格書,常會看到有以下兩種種引腳功能標識圖:對于初學者,看到感到疑惑,他們樣嗎?他們有啥區(qū)別?為啥有的個尖頭往外,陽極連在起,有的
    的頭像 發(fā)表于 09-15 20:27 ?793次閱讀
    這<b class='flag-5'>兩種</b>TVS有啥不同?

    兩種散熱路徑的工藝與應用解析

    背景:兩種常見的散熱設計思路 在大電流或高功率器件應用,散熱和載流能力是PCB設計必須解決的難題。常見的兩種思路分別是: 厚銅板方案:通過整體增加銅箔厚度(如3oz、6oz甚至更高
    的頭像 發(fā)表于 09-15 14:50 ?781次閱讀

    CMOS 2.0與Chiplet兩種創(chuàng)新技術的區(qū)別

    摩爾定律正在減速。過去我們靠不斷縮小晶體管尺寸提升芯片性能,但如今物理極限越來越近。在這樣的背景下,兩種創(chuàng)新技術站上舞臺:CMOS 2.0 和 Chiplet(芯粒)。它們都在解決 “如何讓芯片更強” 的問題,但思路卻大相徑庭。
    的頭像 發(fā)表于 09-09 15:42 ?1013次閱讀

    別再搜了!國內用戶搞定OpenAI API Key兩種最佳實踐(保姆級教程)

    需要國際卡? 拿到Key了,卻不知道怎么在代碼里安全地使用? 別慌,你遇到的坑,我都踩過。這篇教程就是你的避坑指南,我將以“技術學長”的身份,帶你走通條獲取OpenAI API Key的路徑,從注冊到代碼調用,幫你搞定!
    的頭像 發(fā)表于 08-24 19:02 ?1.2w次閱讀

    貼片晶振兩種常見封裝介紹

    貼片晶體振蕩器作為關鍵的時鐘頻率元件,其性能直接關系到系統(tǒng)運行的穩(wěn)定性。今天,凱擎小妹帶大家聊聊貼片晶振兩種常見封裝——金屬面封裝與陶瓷面封裝。
    的頭像 發(fā)表于 07-04 11:29 ?1251次閱讀
    貼片晶振<b class='flag-5'>中</b><b class='flag-5'>兩種</b>常見封裝介紹

    告別摸索!TSMaster官方最全學習路徑整理

    在汽車電子和總線通信領域,TSMaster已成為工程師們不可或缺的利器。作為款功能強大的總線分析、仿真、測試和診斷工具,TSMaster廣泛應用于CAN、LIN、FlexRay等總線系統(tǒng)的開發(fā)
    的頭像 發(fā)表于 06-13 20:06 ?1062次閱讀
    告別摸索!<b class='flag-5'>TSMaster</b>官方最全學習路徑整理

    六相永磁同步電機串聯(lián)系統(tǒng)控制的兩種方法分析研究

    摘要:筆者以逆變器驅動合雙Y移 30°永磁同步電機(PMSM)的串聯(lián)系統(tǒng)為例,給出了串聯(lián)系統(tǒng)的工作原理,采用i0的失量控制策略及電流滯環(huán)控制和PWM載波控制兩種拉制串聯(lián)解楀的方法。在Malab
    發(fā)表于 06-10 13:09

    兩種感應電機磁鏈觀測器的參數(shù)敏感性研究

    (MRAS)轉速估算對參數(shù)的敏感性。 純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:兩種感應電機磁鏈觀測器的參數(shù)敏感性研究.pdf【免責聲明】本文系網(wǎng)絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第時間告知,刪除內容!
    發(fā)表于 06-09 16:16

    銣原子鐘與CPT原子鐘:兩種時間標準的區(qū)別

    在物理學的世界,精密的時間測量是至關重要的。這就需要個高度準確且穩(wěn)定的時間標準,這就是原子鐘。今天我們將探討兩種重要的原子鐘:銣原子鐘和CPT原子鐘,以及它們之間的主要區(qū)別。首先,我們來
    的頭像 發(fā)表于 05-22 15:49 ?731次閱讀
    銣原子鐘與CPT原子鐘:<b class='flag-5'>兩種</b>時間標準的區(qū)別

    解鎖TSMaster fifo函數(shù):報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數(shù)模式和fifo模式。fifo函數(shù)是TSMaster近期新增的函數(shù),本文將重點介紹fifo模塊。關于回調函數(shù)的使用方法可以參考幫助
    的頭像 發(fā)表于 03-14 20:04 ?1136次閱讀
    解鎖<b class='flag-5'>TSMaster</b> fifo函數(shù):報文讀取的高效<b class='flag-5'>方法</b>