久久久久久久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://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 青青草精品 | 国产伦精品一区二区三区88av | 日韩在线播放视频 | 国产一区二区久久 | 亚洲精品一二三 | 国产一级免费观看 | 8090理论片午夜理伦片 | 日韩视频精品 | 毛片网站免费观看 | 欧美草草 | 日韩一级免费 | 亚洲免费二区 | 丁香综合网 | 亚洲日本视频 | 亚洲成人免费在线观看 | 在线免费观看黄色片 | 午夜视频在线 | 特级丰满少妇一级aaaa爱毛片 | 性网址 | 亚洲精品在线视频 | av免费观看在线 | 日韩黄网 | 91久久| 草草在线观看 | 爱福利视频 | 91av在线播放 | 丁香五香天堂网 | 九色精品| 久久精品一区二区三区四区 | 国产va在线观看 | 黄色在线观看网址 | 亚洲一区二区在线视频 | 日韩视频免费大全中文字幕 | 精品久久视频 | 午夜视频在线播放 | 国产精品一区二 | 国产美女视频网站 | 六月婷婷综合 | 成人免费黄色片 | 欧美成人a | 成年在线观看 |