久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 你辛苦做出來的id軟件加密就這么輕松被改了 [打印本頁]

作者: meifan2010    時間: 2019-11-5 08:53
標題: 你辛苦做出來的id軟件加密就這么輕松被改了
開發人員一般設計軟件加密方法:讀id---復雜算法計算---對比之前存儲的對應數據(與id相關)---判斷芯片是否合法。
由于讀id時很多人直接用id起始地址,例如0x1FFFF7E8,破解的人只要把這個數據改成0x8000020,并且0x8000020程序區域填上
母片的id,不管你的算法有多復雜,這時你的程序就被破解了,改這種軟件加密一分鐘就改好了。所以千萬注意程序里面不要
出現id起始地址。
用以下方法相對比較難了
//STM32F10X軟加密方法及實例代碼

#define ID_ENCRYPT_EOR_RESULT_ADDRESS (0x0800F000)
#define ID_ENCRYPT_ADD_RESULT_ADDRESS (0x0800F004)
volatile uint32 gU32IdAdressVar;//這里一定要定義此變量,否則會被優化器優化掉
void Stm32F10xEncryptDemo(void)
{
        uint32 *u32IdAddress;
  uint32 u32EorRslt, u32AddRslt;
        #IF 0
        //如果直接賦值0X1FFFF7E8,則程序編譯結果里會有0X1FFFF7E8,這樣破解人員會很輕松
        //的找到這個內容,然后非常容易進行修改,去掉軟加密
        u32IdAddress = (uint32*)0x1ffff7e8;
        #else
        //千萬別顯式的讀取ID,即要把0X1FFFF7E8運算成隱式的,例如此例中0x1FFFF7E8 = (0x455873a * 4) + 0xEA9DB00;
        //這樣,別人就算破解出了你的程序,也查找不到0X1FFFF7E8,這樣就不能輕易的軟解密,這樣處理后如果要軟解密,
        //一定要反匯編出來進行復雜逆向分析,難度極大,代價極高,很難搞定軟加密了,達到保護產品的目的。
        gU32IdAdressVar = 0x455873a;
        gU32IdAdressVar <<= 2;//0x11561CE8
        u32IdAddress = (uint32*)(gU32IdAdressVar + 0xEA9DB00);//0x1ffff7e8
        #endif
        //讀取單片機的ID,并進行運算,具體算法可以自己定,這里只用到簡單的異或及和運算
        u32EorRslt = (*u32IdAddress) ^ (*(u32IdAddress + 1)) ^ (*(u32IdAddress + 2));
        u32AddRslt = (*u32IdAddress) + (*(u32IdAddress + 1)) + (*(u32IdAddress + 2));
        //進行對比,如果運算結果與FLASH保存的結果不一樣,說明非法,運行錯誤代碼
        if(u32EorRslt != *((uint32*)ID_ENCRYPT_EOR_RESULT_ADDRESS))
        {
                while(1);//異或算法結果不正確,進行錯誤分支
        }
        if(u32AddRslt != *((uint32*)ID_ENCRYPT_ADD_RESULT_ADDRESS))
        {
                while(1);//和算法結果不正確,進行錯誤分支
        }
}


作者: meifan2010    時間: 2019-11-8 12:47
同樣象stm8s103讀id時,就不要出現0x4865~0x4871
作者: meifan2010    時間: 2020-5-19 19:54
三、利用id做軟件加密
1,如果板子上有外部存儲器,可以先編寫一個程序,利用算法把id計算得到一些值存入外部存儲器,然后再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可

2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確

3,軒微編程器有軟件加密的功能,編程器會讀芯片id,根據算法直接改寫緩沖區,達到軟件加密的作用

4,讀出的id通過一定算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行后標志位也存入flash),下次讀到這個標志位,就不運行這個程序。

四、做軟件加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0   STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序

作者: meifan2010    時間: 2021-10-20 15:40


作者: zhaxiaobian_er    時間: 2021-10-23 22:19
實用,樓主辛苦了。
作者: 我的事業    時間: 2021-10-25 11:08
雖然不懂,還是來學習1下




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99久久国产综合精品麻豆 | 午夜精品久久久久久久99黑人 | 久久人人网| 亚洲成人网在线观看 | 亚洲精品自在在线观看 | 亚洲一区二区三区四区av | 天天综合网天天综合 | 久久精品手机视频 | 久久久久久九九九九九九 | 青娱乐自拍 | 日韩美女在线看免费观看 | av网站在线看 | 视频一区二区在线观看 | 国产精品久久久久久吹潮日韩动画 | 日本久久黄色 | 欧美8一10sex性hd | 午夜www | 中文字幕不卡在线88 | 欧美精品电影一区 | 亚洲网站在线播放 | 久久久久成人精品亚洲国产 | 综合国产 | 日本在线中文 | 日韩在线 | 免费一区二区三区 | 欧美黄色精品 | 中日韩毛片 | 久久国产精品视频 | 在线观看日本高清二区 | 日韩在线成人 | 国产剧情一区 | 成人一区在线观看 | 国产成人精品一区二区三区视频 | 91大神新作在线观看 | 国产精品一区二区不卡 | 一级a性色生活片久久毛片波多野 | 视频一区二区在线 | 国产精品一区二区不卡 | 日本中文在线 | 久精品久久 | 另类专区成人 |