新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 對單片機程序的動態加密措施

        對單片機程序的動態加密措施

        作者: 時間:2012-11-15 來源:網絡 收藏
        BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  ……

          該程序是將RAM地址為20H開始的數據組(設有5個)進行動態變換, 因為初始的數據組是密碼形式的, 它需要在程序運行中改變,在程序的其他段中要使用改變后的數據。這里是用SUB1程序段中的指令代碼(代碼為:24H,94H,63H,54H,13H)與55H進行動態解碼,數據55H是加密數據,它"異或"指令代碼后得到正確的數據存入20H開始的單元中(結果為:71H,C1H,36H,01H,46H)。為了說明動態數據解碼過程, 這個例子比較簡單, 實際在轉入該程序段時, 可以由某些運算生成數據單元地址, 以增強程序的抗分析能力。

        2 程序段防修改

          在加密程序中, 所設置的障礙不會只有一處。為了使加密措施完善, 在一些關鍵地方程序的前后呼應是反破譯的有效方法。解密者為了一些目的, 必然要修改某段程序指令;而程序段防修改就是針對這種解密方法所采用的技術手段。為了達到加密程序的完整性, 可以在程序的關鍵處取指令或數據代碼參加某種運算, 其結果作為判斷程序是否被變動的依據。下面是程序防修改的程序段:

          ……

          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 ;異或運算

          POP A

          INC A

          DJNZ R1,LOOP2

          MOV A,30H

          ……



        關鍵詞: 單片機 動態加密

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江西省| 三台县| 龙江县| 临安市| 化隆| 昆山市| 英德市| 长子县| 青田县| 雷山县| 崇明县| 额济纳旗| 醴陵市| 兴山县| 色达县| 怀化市| 西林县| 芦溪县| 徐州市| 长白| 田阳县| 杨浦区| 玛沁县| 安阳市| 容城县| 平乐县| 滁州市| 班戈县| 永济市| 德昌县| 长海县| 定日县| 吉林省| 盐边县| 隆林| 天气| 库伦旗| 鄂尔多斯市| 六枝特区| 大宁县| 依兰县|