国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用STM32F唯一96bit序列號(hào)實(shí)現(xiàn)反拷貝加密的源代碼公開

利用STM32F唯一96bit序列號(hào)實(shí)現(xiàn)反拷貝加密的源代碼公開

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
//---------------------------------------------------------------------------
#include
#pragma argsused
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return 1;
}
//---------------------------------------------------------------------------
//本示例代碼用BCB5編寫,很容易移植到VC++等編譯環(huán)境
//導(dǎo)出函數(shù)mcuisp_AntiCopy,mcuisp.exe將調(diào)用mcuisp_AntiCopy函數(shù)來(lái)實(shí)現(xiàn)反拷貝功能
extern "C" __declspec(dllexport) int __stdcall mcuisp_AntiCopy(
unsigned char *buf,//FLASH內(nèi)容存儲(chǔ)緩沖
DWORD buflen,//FLASH代碼長(zhǎng)度(字節(jié))
DWORD startaddress,//FLASH的地址偏移,STM32F一般為0x08000000
unsigned char const *inbuf, //前12字節(jié)為96bit的芯片序列號(hào)
DWORD inputbuflen//序列號(hào)信息的長(zhǎng)度
);
//--
int __stdcall mcuisp_AntiCopy(
unsigned char *buf,//FLASH內(nèi)容存儲(chǔ)緩沖
DWORD buflen,//FLASH代碼長(zhǎng)度(字節(jié))
DWORD startaddress,//FLASH的地址偏移,STM32F一般為0x08000000
unsigned char const *inbuf, //前12字節(jié)為96bit的芯片序列號(hào)
DWORD inputbuflen//序列號(hào)信息的長(zhǎng)度
)
{
//mcuisp_AntiCopy根據(jù)FLASH內(nèi)容和芯片序列號(hào),經(jīng)過(guò)運(yùn)算后,修改FLASH內(nèi)容
//本例中,簡(jiǎn)單的把序列號(hào)拷貝到0x08010000的位置
//可以在STM32的代碼中比對(duì)0x08010000和0x1ffff7e8的內(nèi)容,相符才正常運(yùn)行
//實(shí)際應(yīng)用中,可以采取比較復(fù)雜的算法
memcpy(buf+0x10000,inbuf,12);
return 0;
};

上述DLL與mcuisp配合,即可實(shí)現(xiàn)STM32F AntiCopy功能。
由于算法由用戶自己把握,自由發(fā)揮,可最大限度保護(hù)用戶的代碼


評(píng)論


技術(shù)專區(qū)

關(guān)閉