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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5556|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
開(kāi)發(fā)人員一般設(shè)計(jì)軟件加密方法:讀id---復(fù)雜算法計(jì)算---對(duì)比之前存儲(chǔ)的對(duì)應(yīng)數(shù)據(jù)(與id相關(guān))---判斷芯片是否合法。
由于讀id時(shí)很多人直接用id起始地址,例如0x1FFFF7E8,破解的人只要把這個(gè)數(shù)據(jù)改成0x8000020,并且0x8000020程序區(qū)域填上
母片的id,不管你的算法有多復(fù)雜,這時(shí)你的程序就被破解了,改這種軟件加密一分鐘就改好了。所以千萬(wàn)注意程序里面不要
出現(xiàn)id起始地址。
用以下方法相對(duì)比較難了
//STM32F10X軟加密方法及實(shí)例代碼

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

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:608322 發(fā)表于 2019-11-5 10:11
還以為自己的算法多好,實(shí)際這種程序1分鐘就被破解了

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

使用道具 舉報(bào)

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

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

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

4,讀出的id通過(guò)一定算法,例如異或加上一個(gè)數(shù),得到的數(shù)據(jù)存入flash(只運(yùn)行一次,運(yùn)行后標(biāo)志位也存入flash),下次讀到這個(gè)標(biāo)志位,就不運(yùn)行這個(gè)程序。

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

使用道具 舉報(bào)

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

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

7#
ID:228494 發(fā)表于 2021-10-25 11:08 | 只看該作者
雖然不懂,還是來(lái)學(xué)習(xí)1下
回復(fù)

使用道具 舉報(bào)

8#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 四虎影院免费在线 | 激情久久网 | 特级丰满少妇一级aaaa爱毛片 | 日韩一级精品视频在线观看 | 日韩在线欧美 | 欧美激情免费在线 | 国产精品一区二区av | 中文久久 | 欧美mv日韩mv国产网站91进入 | 欧美日韩黄 | 在线免费观看毛片 | 亚洲日韩中文字幕一区 | 国产福利91精品一区二区三区 | 久久久精品黄色 | 久久精品成人一区 | 久久久久一区二区三区 | 欧美精品第三页 | 狠狠入ady亚洲精品经典电影 | 一区二区免费看 | 日韩欧美视频在线 | 日韩精品影院 | 久久久久国产精品一区二区 | 亚洲天堂色 | 国产精品一区二区在线 | 亚洲视频二区 | 欧美日韩a| av免费网站在线观看 | 欧美日韩精品中文字幕 | 亚洲成人在线免费 | 草比av| 久草热播| 不用播放器看的av | 一级片在线观看 | 91.xxx.高清在线 | 求毛片| 91精品一区二区三区久久久久久 | 成人免费xxxxx在线视频 | 国产成人啪免费观看软件 | 欧美一区二区三区四区视频 | h片免费在线观看 | 爱高潮www亚洲精品 中文字幕免费视频 |