一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)針對MAC地址的應(yīng)用程序加密方法

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-17 10:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在實際應(yīng)用中,客戶可能希望對自己的程序添加驗證過程,使得無法被隨意拷貝到其它板子上使用。英創(chuàng)ARM系列工控主板都配有唯一指定MAC,我們可以根據(jù)MAC地址,生產(chǎn)加密字符串,存入KEY文件或是注冊表內(nèi)。然后在程序啟動部分添加驗證代碼,驗證這個字符串,從而達到防拷貝的目的。

本文介紹MAC的獲得方式及幾種常用的加密方式。

驗證設(shè)備

在驗證MAC之前,首先應(yīng)當檢查使用的板卡型號,以檢查EM9281為例,代碼如下。

添加頭文件及宏定義,此部分代碼均包含在板子對應(yīng)SDK包中的bsp_drivers.h下

#include

extern"C"__declspec(dllimport) BOOLKernelIoControl( DWORDdwIoControlCode,

LPVOID lpInBuf,

DWORD nInBufSize,

LPVOID lpOutBuf,

DWORD nOutBufSize,

LPDWORD lpBytesReturned);

#defineIOCTL_HAL_BOARD_STATE_READ CTL_CODE(FILE_DEVICE_HAL, 4024, METHOD_BUFFERED, FILE_ANY_ACCESS)

#defineEM9280_BOARD_TYPE_9280 0

#defineEM9280_BOARD_TYPE_9281 1 // -> EM9281

#defineEM9280_BOARD_TYPE_9380 2

#defineEM9280_BOARD_TYPE_9283 3

#defineEM9280_BOARD_TYPE_ES9281 4 // -> ES9281

#defineEM9280_BOARD_TYPE_9287 7

#defineEM9280_BOARD_CFG_SHIFT 14

#defineEM9280_BOARD_CFG_MASK 0x3

#defineEM9280_BOARD_TYPE_SHIFT 4

#defineEM9280_BOARD_TYPE_MASK 0x7

#defineEM928X_BOARD_TYPE_BASE(v) ((v >> EM9280_BOARD_TYPE_SHIFT) & EM9280_BOARD_TYPE_MASK)

#defineEM928X_BOARD_TYPE_SUB_ID(v) ((v >> EM9280_BOARD_CFG_SHIFT) & EM9280_BOARD_CFG_MASK)

#defineEM9287_BOARD_TYPE_SUB_TYPE(v) ((EM928X_BOARD_TYPE_SUB_ID(v)==1)? EM9280_BOARD_TYPE_9281:\

(EM928X_BOARD_TYPE_SUB_ID(v)==2)? EM9280_BOARD_TYPE_ES9281: EM9280_BOARD_TYPE_9287)

#defineEM928X_BOARD_TYPE_ALL(v) ((EM928X_BOARD_TYPE_BASE(v)==EM9280_BOARD_TYPE_9287)? EM9287_BOARD_TYPE_SUB_TYPE(v):EM928X_BOARD_TYPE_BASE(v))

檢查板卡型號,以EM9281為例

BOOL bRet;

DWORD dwReturnBytes;

DWORD dwBoardInfo = 0;

dwReturnBytes = 0;

bRet = KernelIoControl(IOCTL_HAL_BOARD_STATE_READ,

NULL, 0,

(LPVOID)&dwBoardInfo,sizeof(DWORD),

&dwReturnBytes);

If(EM928X_BOARD_TYPE_ALL(dwBoardInfo)!= EM9280_BOARD_TYPE_9281)return;

獲得MAC地址

必要的頭文件和lib庫

#include"Iphlpapi.h"

#pragmacomment(lib,"Iphlpapi.lib")

VOIDGetMAC(BYTE* buf)

{

DWORD dwRetVal;

IP_ADAPTER_INFO AdapterInfo[4];

ULONG OutBufLen =sizeof(IP_ADAPTER_INFO);

GetAdaptersInfo(&AdapterInfo[0], &OutBufLen);

GetAdaptersInfo(&AdapterInfo[0], &OutBufLen);

/*if(strcmp(AdapterInfo[0].AdapterName, "ENET1") != 0)

{

return;

}*/

memcpy(buf, AdapterInfo[0].Address, 6);

}

BYTE mac[6];

GetMAC(mac);

char macstr[16];

sprintf(macstr, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);

加密策略

英創(chuàng)所有嵌入式板卡都擁有唯一的MAC地址,在對MAC地址加密后,生成唯一的加密KEY。同時程序中判斷板卡信息,并驗證這個加密KEY。這樣可以保證程序必須處于正確的板卡中,并擁有正確的KEY文件,才能執(zhí)行。

為了增加安全性,加大KEY文件破譯難度,可以考慮以下處理

1、將MAC地址與常量字符串混合后,再進行加密,生成加密KEY。

2、多種加密手段結(jié)合使用,多次加密。

3、驗證失敗后“軟”關(guān)閉程序,可以做延遲處理,并可以考慮重啟設(shè)備,增加暴力破解KEY的難度。

加密程序流程

獲得板卡MAC地址à 執(zhí)行加密函數(shù)à 生成KEY文件置入板卡中

解密程序流程

查詢板卡MACà執(zhí)行加密函數(shù)à讀取KEY文件中密鑰并對比à判斷驗證是否成功并進行后續(xù)執(zhí)行

讀取KEY文件中密鑰à執(zhí)行解密函數(shù)à查詢板卡MAC并對比à判斷驗證是否成功并進行后續(xù)執(zhí)行

加密方法

常用的加密方法有很多,可以參考文章《常用加密方法及代碼》。同時英創(chuàng)提供這些加密算法相關(guān)測試例程,如有需要,可以聯(lián)系英創(chuàng)工程師獲得。

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

    關(guān)注

    7

    文章

    6101

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動產(chǎn)業(yè)升級和實現(xiàn)數(shù)字主權(quán)的重任。簡單來
    的頭像 發(fā)表于 06-13 10:06 ?1997次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    IEEE即將漲價、MAC地址漲幅3%

    %priceincreasewillgointoeffectforallregistrieson31December2024at1:00pmET.MAC地址正是漲價范圍,除去節(jié)假日還有幾天,計劃使用抓緊時機申請。MAC
    的頭像 發(fā)表于 12-25 09:49 ?593次閱讀
    IEEE即將漲價、<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>漲幅3%

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術(shù)協(xié)會信創(chuàng)工委會支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?516次閱讀

    淺談加密芯片的一種破解方法和對應(yīng)加密方案改進設(shè)計

    方案最重要的技術(shù)點就是加解密使用的臨時秘鑰的因子由主MCU芯片和加密芯片的雙方的ID和隨機數(shù)參與,使得每次通訊線路上的密文都是變化的。但是主MCU反匯編程序和ID1、R1、Data’、ID2、R2還是很
    發(fā)表于 12-20 15:31

    淺談加密芯片的一種破解方法加密方案改進設(shè)計

    方案最重要的技術(shù)點就是加解密使用的臨時秘鑰的因子由主MCU芯片和加密芯片的雙方的ID和隨機數(shù)參與,使得每次通訊線路上的密文都是變化的。但是主MCU反匯編程序和ID1、R1、Data’、ID2、R2還是很
    發(fā)表于 12-20 15:10

    MAC地址的作用范圍,MAC地址怎么申請?

    物理地址(PhysicalAddress),用于在網(wǎng)絡(luò)中唯一標示一個網(wǎng)卡。以下是利檢測針對其作用范圍及申請方式的詳細解答:MAC地址的作用
    的頭像 發(fā)表于 12-19 17:44 ?1603次閱讀
    <b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的作用范圍,<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>怎么申請?

    mac的常見問題解決方法

    的啟動項目。 磁盤清理: 使用磁盤工具進行磁盤清理,刪除臨時文件和緩存。 更新系統(tǒng): 確保Mac系統(tǒng)和應(yīng)用程序都是最新版本。 硬件檢查: 如果問題持續(xù),可能需要檢查硬件,如硬盤是否有問題。 2. 應(yīng)用程序崩潰 問題描述: 使用過
    的頭像 發(fā)表于 12-19 15:02 ?1117次閱讀

    android手機上emulate應(yīng)用程序方法

    在Android手機上模擬(emulate)應(yīng)用程序方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環(huán)境,以便在沒有實際物理設(shè)備的情況下運行和測試應(yīng)用程序
    的頭像 發(fā)表于 12-05 15:33 ?1216次閱讀

    怎么綁定IP地址MAC地址

    MAC地址 ·使用快捷鍵Win+R打開運行窗口,輸入cmd后回車。 ·在命令提示符窗口中輸入ipconfig /all,然后回車。 ·在輸出信息中找到IPv4地址(即IP
    的頭像 發(fā)表于 12-01 22:48 ?1384次閱讀

    關(guān)于MAC地址申請與運用的常見問題

    。了解完MAC地址碼,大家應(yīng)該也想知道MAC地址申請與運用過程中容易遇到什么樣的問題。接下來利檢測將
    的頭像 發(fā)表于 11-07 16:42 ?851次閱讀
    關(guān)于<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>申請與運用的常見問題

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?971次閱讀

    向IEEE機構(gòu)申請MAC地址的申請流程

    所有設(shè)備在投入市場銷售使用前該臺設(shè)備都必須寫入MAC地址,以便設(shè)備后續(xù)使用的識別與安全性監(jiān)控。而MAC地址的申請方法主要可以通過兩種渠道進行
    的頭像 發(fā)表于 09-29 17:52 ?814次閱讀
    向IEEE機構(gòu)申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的申請流程

    如何獲取MAC地址?MAC地址的三個申請條件

    在產(chǎn)品設(shè)備都規(guī)范化管理的當今社會,如果您的產(chǎn)品設(shè)備想要投入市場,設(shè)備物理地址MAC地址則是唯一能識別設(shè)備的識別碼。那么MAC地址的申請條件
    的頭像 發(fā)表于 09-06 17:14 ?1037次閱讀
    如何獲取<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的三個申請條件

    怎么申請MAC地址?不同申請方式的區(qū)別是什么?

    藍牙設(shè)備的MAC地址是指藍牙模塊中使用的唯一標識符,用于在網(wǎng)絡(luò)中識別和區(qū)分不同的藍牙設(shè)備。這個MAC地址是由美國電氣和電子工程師協(xié)會(IEEE)分配的,而不是由藍牙聯(lián)盟直接分配的。接來
    的頭像 發(fā)表于 08-22 16:55 ?1463次閱讀
    怎么申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>?不同申請方式的區(qū)別是什么?

    向IEEE機構(gòu)申請MAC地址方法與申請費用組成

    在當今數(shù)字化時代,網(wǎng)絡(luò)設(shè)備的唯一標識符——MAC地址,對于確保設(shè)備的網(wǎng)絡(luò)通信安全與準確性至關(guān)重要。IEEE(電氣和電子工程師協(xié)會)作為全球知名的技術(shù)組織,負責為網(wǎng)絡(luò)設(shè)備制造商分配MAC
    的頭像 發(fā)表于 08-05 16:59 ?1227次閱讀
    向IEEE機構(gòu)申請<b class='flag-5'>MAC</b><b class='flag-5'>地址</b>的<b class='flag-5'>方法</b>與申請費用組成