新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 對單片機(jī)及其程序的運(yùn)行上加密解析方案

        對單片機(jī)及其程序的運(yùn)行上加密解析方案

        作者: 時間:2012-06-01 來源:網(wǎng)絡(luò) 收藏

        ……

        SUB2: ADD A,#35H

        SUBB A,#05H

        ……

        MOV DPTR,#SUB2

        MOV R0,#30H

        MOV A,#1

        MOV R1,#3

        MOV @R0,#24H ;SUB2段第一個指令代碼為24H

        LOOP2: PUSH A

        MOVC A,@A+DPTR

        XRL 30H,A ;異或運(yùn)算

        POP A

        INC A

        DJNZ R1,LOOP2

        MOV A,30H

        ……

        CJNE A,#80H,ERR ;結(jié)果與80H比較

        ……

        ERR: MOV A,#0 ;錯誤出口

        ……

        在SUB2段, 是通過指令計算某些數(shù)據(jù)的,如收費(fèi)的算法等。解密者總要修改部分指令, 達(dá)到某種目的。然而, 反解密的工作是在后面的LOOP2段中,是用到了SUB2段中的指令字節(jié)(這里是用了4個字節(jié))進(jìn)行運(yùn)算(這里是用異或運(yùn)算),它的結(jié)果將直接影響下面程序的正確執(zhí)行(正確的運(yùn)算結(jié)果為80H)。如果改變該SUB2程序段,則在LOOP2程序段中將程序引入歧途, 會不知不覺地走入迷途。如果在硬件設(shè)計上有電擦除EEPROM,可以進(jìn)一步將程序中的數(shù)據(jù)修改(或刪除),使跟蹤者造成設(shè)備的損壞,無法重新分析程序。

        上面介紹的方法,是阻止解密者非法獲得ROM中的程序或者使ROM中的程序無法在復(fù)制的系統(tǒng)中。在實際應(yīng)用中,判斷程序正常與被跟蹤是有很多方法的。例如,可以根據(jù)時鐘計時斷定某個程序段運(yùn)行的時間, 以便作出不同的反應(yīng), 因為單步與連續(xù)運(yùn)行在時間上是有很大差別的。另外, 對不能僅限于上述的一種方法,而且反跟蹤的方法也不能單一, 要幾種方法配合使用才能達(dá)到好的效果。如軟件與硬件加密相結(jié)合,動態(tài)解碼可與程序防修改相結(jié)合等,充分利用新技術(shù)、新方法(如可編程邏輯器件等)使單片機(jī)的加密保護(hù)更有效。


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 沛县| 泌阳县| 永川市| 铜陵市| 怀化市| 故城县| 来安县| 乌拉特中旗| 五大连池市| 星子县| 呼伦贝尔市| 马鞍山市| 屏东市| 石家庄市| 四川省| 辽宁省| 宁强县| 奉化市| 泽库县| 承德市| 怀化市| 彩票| 灌南县| 陆良县| 承德县| 滕州市| 余庆县| 桃园市| 忻州市| 平度市| 遂昌县| 荆州市| 吴川市| 阳山县| 和平县| 资兴市| 台州市| 安泽县| 碌曲县| 正阳县| 江西省|