新聞中心

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

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

        作者: 時間:2012-11-15 來源:網絡 收藏

        眾所周知, 有一些公司或個人專門做的解密服務,另外,的指令不論怎樣加密最終它還要在明文的方式下才能運行, 而且解密者可以使用開發系統單步調試ROM中的程序。當解密者了解了指令的運行過程之后, 也就獲得了加密的程序, 如某些智能計價器的運算方法等,通過修改程序并仿制新的ROM芯片, 就可以達到解密的目的。因此,對單片機的加密還要在程序的運行上進行加密處理, 也就是程序的措施。

          1 程序的動態解碼

          動態解碼是對加密程序的指令或數據代碼進行動態恢復。在程序運行時, 有一段指令是專門對某一區域的指令或數據代碼解密, 而且當解密后的代碼使用完畢, 還要將其重新加密, 使存儲器中不存在完整的程序代碼。這種方法對防程序的靜態分析很有效, 因為從加密程序的清單上很難看出程序的真實面目。然而,在程序的反跟蹤方面, 動態解碼又有其獨到之處, 在阻止帶斷點調試跟蹤方面, 由于程序在執行之前是以密文方式出現的, 解密者很難確定斷點設置的位置, 稍有不慎就會因解密失敗造成系統的破壞(電擦除EPROM中的數據)。下面是程序動態解碼的具體例子:

          ……

          SUB1: ADD A,#94H ;虛設的程序段

          XRL 54H,#13H

          ……

          MOV R0,#20H

          MOV R1,#5

          MOV R2,#55H

          MOV DPTR,#SUB1

          MOV A,#00H

          LOOP1: PUSH A

          MOVC A,@A+DPTR

          XRL A,R2 ;異或運算

          MOV @R0,A ;存入實際數據

          POP A

          INC A

          INC R0

          DJNZ R1,LOOP1


        上一頁 1 2 3 下一頁

        關鍵詞: 單片機 動態加密

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 调兵山市| 龙井市| 巩义市| 西平县| 梁平县| 汾西县| 乡城县| 阿瓦提县| 龙海市| 开平市| 延安市| 康乐县| 蓬莱市| 临沭县| 老河口市| 广水市| 荥经县| 新丰县| 赤壁市| 绍兴县| 阳信县| 扬中市| 玛多县| 南岸区| 青冈县| 闸北区| 卓尼县| 砀山县| 曲水县| 宝应县| 恭城| 高青县| 兴海县| 蓝山县| 东平县| 清涧县| 清徐县| 铜鼓县| 岳阳市| 黄陵县| 朝阳县|