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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5360|回復: 5
打印 上一主題 下一主題
收起左側

你辛苦做出來的id軟件加密就這么輕松被改了

[復制鏈接]
跳轉到指定樓層
樓主
ID:608322 發(fā)表于 2019-11-5 08:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
開發(fā)人員一般設計軟件加密方法:讀id---復雜算法計算---對比之前存儲的對應數據(與id相關)---判斷芯片是否合法。
由于讀id時很多人直接用id起始地址,例如0x1FFFF7E8,破解的人只要把這個數據改成0x8000020,并且0x8000020程序區(qū)域填上
母片的id,不管你的算法有多復雜,這時你的程序就被破解了,改這種軟件加密一分鐘就改好了。所以千萬注意程序里面不要
出現(xiàn)id起始地址。
用以下方法相對比較難了
//STM32F10X軟加密方法及實例代碼

#define ID_ENCRYPT_EOR_RESULT_ADDRESS (0x0800F000)
#define ID_ENCRYPT_ADD_RESULT_ADDRESS (0x0800F004)
volatile uint32 gU32IdAdressVar;//這里一定要定義此變量,否則會被優(yōu)化器優(yōu)化掉
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);//和算法結果不正確,進行錯誤分支
        }
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:608322 發(fā)表于 2019-11-8 12:47 | 只看該作者
同樣象stm8s103讀id時,就不要出現(xiàn)0x4865~0x4871
回復

使用道具 舉報

板凳
ID:608322 發(fā)表于 2020-5-19 19:54 | 只看該作者
三、利用id做軟件加密
1,如果板子上有外部存儲器,可以先編寫一個程序,利用算法把id計算得到一些值存入外部存儲器,然后再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可

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

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

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

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

使用道具 舉報

地板
ID:608322 發(fā)表于 2021-10-20 15:40 | 只看該作者

回復

使用道具 舉報

5#
ID:756400 發(fā)表于 2021-10-23 22:19 | 只看該作者
實用,樓主辛苦了。
回復

使用道具 舉報

6#
ID:228494 發(fā)表于 2021-10-25 11:08 | 只看該作者
雖然不懂,還是來學習1下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天干天天操天天爽 | 久久久www成人免费无遮挡大片 | 在线视频h | 国产精品视频导航 | 国产三级一区二区 | 成人免费网站 | 91精品久久久久久久99 | 在线免费观看毛片 | 欧美一级全黄 | 日韩精品久久一区二区三区 | 亚洲精品日韩视频 | 91免费电影 | 北条麻妃99精品青青久久主播 | 欧美精品黄 | 一级毛片黄片 | 欧美日韩在线播放 | 国产亚洲精品美女久久久久久久久久 | 欧美一区视频 | 国产精品美女久久久 | 免费一级黄| av在线免费观看网站 | 韩国精品在线 | 亚洲国产精品一区 | 天天干天天玩天天操 | 久久久久久蜜桃一区二区 | 一区二区中文字幕 | 日韩视频中文字幕 | 性天堂网| 欧美一区二区视频 | 日韩a在线 | www.国产精品 | 欧美日韩久久久久 | 亚洲成人精品一区 | 欧美精品一区二区三区四区五区 | av色站 | 欧美日韩在线观看视频网站 | 北条麻妃99精品青青久久主播 | 欧美成视频在线观看 | 成人福利片 | 亚洲成人一区二区在线 | 成人一区av偷拍 |