新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用STM32F唯一96bit序列號實現反拷貝加密的源代碼公開

        利用STM32F唯一96bit序列號實現反拷貝加密的源代碼公開

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

        上述DLL與mcuisp配合,即可實現STM32F AntiCopy功能。
        由于算法由用戶自己把握,自由發揮,可最大限度保護用戶的代碼


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南澳县| 逊克县| 藁城市| 桃园县| 洛浦县| 全南县| 宁国市| 施秉县| 德格县| 阿瓦提县| 子洲县| 衡水市| 遂川县| 芜湖市| 筠连县| 琼中| 枞阳县| 满洲里市| 哈密市| 阳朔县| 湖南省| 南召县| 会昌县| 历史| 屯昌县| 济宁市| 鄄城县| 饶河县| 报价| 冀州市| 新邵县| 调兵山市| 桂林市| 奎屯市| 临邑县| 开远市| 西乌| 唐山市| 扶余县| 泗水县| 衡南县|