浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 單 片 機(jī)

單片機(jī)系統(tǒng)加密中的動態(tài)反跟蹤措施

發(fā)布時間:2008/9/4 0:00:00 訪問次數(shù):562

  眾所周知, 有一些公司或個人專門做單片機(jī)的解密服務(wù),另外,單片機(jī)的指令不論怎樣加密最終它還要在明文的方式下才能運(yùn)行, 而且解密者可以使用單片機(jī)開發(fā)系統(tǒng)單步調(diào)試rom中的程序!‘(dāng)解密者了解了指令的運(yùn)行過程之后, 也就獲得了加密的程序, 如某些智能計價器的運(yùn)算方法等,通過修改程序并仿制新的rom芯片, 就可以達(dá)到解密的目的。因此,對單片機(jī)的加密還要在程序的運(yùn)行上進(jìn)行加密處理, 也就是程序的動態(tài)加密措施。

 。薄 〕绦虻膭討B(tài)解碼

  動態(tài)解碼是對加密程序的指令或數(shù)荽虢卸指礎(chǔ)?在程序運(yùn)行時, 有一段指令是專門對某一區(qū)域的指令或數(shù)據(jù)代碼解密, 而且當(dāng)解密后的代碼使用完畢, 還要將其重新加密, 使存儲器中不存在完整的程序代碼!∵@種方法對防程序的靜態(tài)分析很有效, 因為從加密程序的清單上很難看出程序的真實面目!∪欢诔绦虻姆锤櫡矫, 動態(tài)解碼又有其獨(dú)到之處, 在阻止帶斷點調(diào)試跟蹤方面, 由于程序在執(zhí)行之前是以密文方式出現(xiàn)的, 解密者很難確定斷點設(shè)置的位置, 稍有不慎就會因解密失敗造成系統(tǒng)的破壞(電擦除eprom中的數(shù)據(jù))。下面是程序動態(tài)解碼的具體例子:

  ……

  sub1:。幔洌洹。幔#梗矗琛。惶撛O(shè)的程序段

 。颍臁。担矗,#13h

  ……

 。恚铮觥。颍埃#玻埃

 。恚铮觥。颍,#5

 。恚铮觥。颍,#55h

 。恚铮觥。洌穑簦颍#螅酰猓

 。恚铮觥。,#00h

  loop1:。穑酰螅琛。

 。恚铮觯恪。幔溃幔洌穑簦

 。颍臁。幔颍病;異或運(yùn)算

  mov。溃颍,a;存入實際數(shù)據(jù)

 。穑铮稹。

  inc。

  inc。颍

 。洌辏睿。颍保欤铮铮穑

  ……

  該程序是將ram地址為20h開始的數(shù)據(jù)組(設(shè)有5個)進(jìn)行動態(tài)變換, 因為初始的數(shù)據(jù)組是密碼形式的, 它需要在程序運(yùn)行中改變,在程序的其他段中要使用改變后的數(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)入該程序段時, 可以由某些運(yùn)算生成數(shù)據(jù)單元地址, 以增強(qiáng)程序的抗分析能力。

  2  程序段防修改

  在加密程序中, 所設(shè)置的障礙不會只有一處。為了使加密措施完善, 在一些關(guān)鍵地方程序的前后呼應(yīng)是反破譯的有效方法!〗饷苷邽榱艘恍┠康模”厝灰薷哪扯纬绦蛑噶;而程序段防修改就是針對這種解密方法所采用的技術(shù)手段。為了達(dá)到加密程序的完整性, 可以在程序的關(guān)鍵處取指令或數(shù)據(jù)代碼參加某種運(yùn)算, 其結(jié)果作為判斷程序是否被變動的依據(jù)。 下面是程序防修改的程序段:

  ……

 。螅酰猓玻骸。幔洌洹。,#35h

  subb。,#05h

  ……

 。恚铮觥。洌穑簦,#sub2

  mov。颍埃#常埃

 。恚铮觥。,#1

 。恚铮觥。颍,#3

  mov。溃颍,#24h ;sub2段第一個指令代碼為24h

 。欤铮铮穑玻骸。穑酰螅琛。

 。恚铮觯恪。,@a+dptr

  xrl。常埃瑁帷;異或運(yùn)算

 。穑铮稹。

 。椋睿恪。

 。洌辏睿。颍,loop2

 。恚铮觥。幔常埃

  ……

 。悖辏睿濉。,#80h,err ;結(jié)果與80h比較

  ……

  err:。恚铮觥。,#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è)備的"損壞",無法重新分析程序。

  上面介紹的單片機(jī)加密方法,是阻止解密者非法獲得rom中的程序或者使rom中的程序無法在復(fù)制的單片機(jī)系統(tǒng)中運(yùn)行。在實際應(yīng)用中,判斷程序正常運(yùn)行與被跟蹤運(yùn)行是有很多方法的。例如,可以根據(jù)時鐘計時斷

  眾所周知, 有一些公司或個人專門做單片機(jī)的解密服務(wù),另外,單片機(jī)的指令不論怎樣加密最終它還要在明文的方式下才能運(yùn)行, 而且解密者可以使用單片機(jī)開發(fā)系統(tǒng)單步調(diào)試rom中的程序!‘(dāng)解密者了解了指令的運(yùn)行過程之后, 也就獲得了加密的程序, 如某些智能計價器的運(yùn)算方法等,通過修改程序并仿制新的rom芯片, 就可以達(dá)到解密的目的。因此,對單片機(jī)的加密還要在程序的運(yùn)行上進(jìn)行加密處理, 也就是程序的動態(tài)加密措施。

 。薄 〕绦虻膭討B(tài)解碼

  動態(tài)解碼是對加密程序的指令或數(shù)荽虢卸指礎(chǔ)?在程序運(yùn)行時, 有一段指令是專門對某一區(qū)域的指令或數(shù)據(jù)代碼解密, 而且當(dāng)解密后的代碼使用完畢, 還要將其重新加密, 使存儲器中不存在完整的程序代碼。 這種方法對防程序的靜態(tài)分析很有效, 因為從加密程序的清單上很難看出程序的真實面目!∪欢,在程序的反跟蹤方面, 動態(tài)解碼又有其獨(dú)到之處, 在阻止帶斷點調(diào)試跟蹤方面, 由于程序在執(zhí)行之前是以密文方式出現(xiàn)的, 解密者很難確定斷點設(shè)置的位置, 稍有不慎就會因解密失敗造成系統(tǒng)的破壞(電擦除eprom中的數(shù)據(jù))。下面是程序動態(tài)解碼的具體例子:

  ……

 。螅酰猓保骸。幔洌洹。幔#梗矗琛;虛設(shè)的程序段

 。颍臁。担矗,#13h

  ……

 。恚铮觥。颍,#20h

  mov。颍保#

 。恚铮觥。颍,#55h

 。恚铮觥。洌穑簦,#sub1

 。恚铮觥。,#00h

  loop1: push。

 。恚铮觯恪。幔溃幔洌穑簦

 。颍臁。,r2 ;異或運(yùn)算

  mov。溃颍埃帷。淮嫒雽嶋H數(shù)據(jù)

 。穑铮稹。

 。椋睿恪。

 。椋睿恪。颍

 。洌辏睿。颍保欤铮铮穑

  ……

  該程序是將ram地址為20h開始的數(shù)據(jù)組(設(shè)有5個)進(jìn)行動態(tài)變換, 因為初始的數(shù)據(jù)組是密碼形式的, 它需要在程序運(yùn)行中改變,在程序的其他段中要使用改變后的數(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)入該程序段時, 可以由某些運(yùn)算生成數(shù)據(jù)單元地址, 以增強(qiáng)程序的抗分析能力。

 。病 〕绦蚨畏佬薷

  在加密程序中, 所設(shè)置的障礙不會只有一處。為了使加密措施完善, 在一些關(guān)鍵地方程序的前后呼應(yīng)是反破譯的有效方法!〗饷苷邽榱艘恍┠康模”厝灰薷哪扯纬绦蛑噶;而程序段防修改就是針對這種解密方法所采用的技術(shù)手段。為了達(dá)到加密程序的完整性, 可以在程序的關(guān)鍵處取指令或數(shù)據(jù)代碼參加某種運(yùn)算, 其結(jié)果作為判斷程序是否被變動的依據(jù)!∠旅媸浅绦蚍佬薷牡某绦蚨危

  ……

 。螅酰猓玻骸。幔洌洹。,#35h

 。螅酰猓狻。,#05h

  ……

 。恚铮觥。洌穑簦颍#螅酰猓

 。恚铮觥。颍,#30h

  mov。幔#

 。恚铮觥。颍,#3

 。恚铮觥。溃颍,#24h ;sub2段第一個指令代碼為24h

 。欤铮铮穑玻骸。穑酰螅琛。

  movc。,@a+dptr

  xrl。常埃,a。划惢蜻\(yùn)算

 。穑铮稹。

 。椋睿恪。

 。洌辏睿。颍,loop2

 。恚铮觥。,30h

  ……

 。悖辏睿濉。幔#福埃,err;結(jié)果與80h比較

  ……

  err:。恚铮觥。,#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è)備的"損壞",無法重新分析程序。

  上面介紹的單片機(jī)加密方法,是阻止解密者非法獲得rom中的程序或者使rom中的程序無法在復(fù)制的單片機(jī)系統(tǒng)中運(yùn)行。在實際應(yīng)用中,判斷程序正常運(yùn)行與被跟蹤運(yùn)行是有很多方法的。例如,可以根據(jù)時鐘計時斷

相關(guān)IC型號

熱門點擊

 

推薦技術(shù)資料

硬盤式MP3播放器終級改
    一次偶然的機(jī)會我結(jié)識了NE0 2511,那是一個遠(yuǎn)方的... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!