<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 對單片機(jī)程序的動態(tài)加密措施

          對單片機(jī)程序的動態(tài)加密措施

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

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

          2 程序段防修改

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

            ……

            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

            ……



          關(guān)鍵詞: 單片機(jī) 動態(tài)加密

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();