国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5427|回復(fù): 0
打印 上一主題 下一主題

指令歧義及程序飛和逆向工程的關(guān)系

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-4-3 00:23:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 程序 , 工程 , 逆向 , 歧義 , 指令
hottask51 發(fā)表于 2009-2-12 08:58 裸奔式實(shí)時(shí)操作系統(tǒng)HotTask51 ←返回版面

樓主: 指令歧義及程序飛和逆向工程的關(guān)系


指令歧義及程序飛和逆向工程的關(guān)系

1.標(biāo)準(zhǔn)程序樣例
MOV   DPTR,#0013H;外部中斷1入口地址
JNZ   NEXT1;ACC<>0,取INT1地址
MOV   DPTR,#0003H;外部中斷0入口地址
SJMP  NEXT
NEXT1:
RRA;
NEXT:
MOVC  A,@A+DPTR
MOV   P3,A;
LCALL XXXXH;

2.對(duì)應(yīng)標(biāo)準(zhǔn)程序樣例可等效非典指令序列
MOV   DPTR,#0013H
JNZ   NEXT-1;借用下條指令的操作數(shù)2的03H為一個(gè)隱含的RRA指令!
MOV   DPTR,#0003H;低8位的03H實(shí)際為RRA指令(操作碼03H)!!!
NEXT:
MOVC  A,@A+DPTR
MOV   P3,A
LCALL XXXXH;
可以看出,2個(gè)功能相同的指令后者很簡化,當(dāng)然那個(gè)03H實(shí)際存在的概率幾乎是沒有的
估計(jì)會(huì)有人說,為什么標(biāo)準(zhǔn)程序樣例不像如下所示???
MOV   DPTR,#0003H;外部中斷0入口地址
JZ    NEXT;
MOV   DPTR,#0013H;外部中斷1入口地址
RRA;
NEXT:
MOVC  A,@A+DPTR
MOV   P3,A;
LCALL XXXXH;
雖然它不如2精簡,但卻通用許多,而且條理清晰,至少RRA讓人看的很明白。
問題很好也不錯(cuò),所有逆向工程正是利用了人們善良帶來的漏洞予以攻擊。成功率幾乎為100%.
因?yàn)槟嫦蚬こ汤枚螔呙杓夹g(shù)實(shí)現(xiàn)代碼和數(shù)據(jù)的剝離,對(duì)于剩下的數(shù)據(jù)區(qū)再多次攻擊(虛擬機(jī))
直到逆向到滿意的代碼和數(shù)據(jù)的剝離結(jié)果。
對(duì)2的攻擊會(huì)帶來以下2種程序源碼。
3.當(dāng)ACC為零時(shí)可等效為下列指令序列
MOV   A,#00H
MOV   DPTR,#0013H
SJMP  NEXT1;
NEXT1:
MOV   DPTR,#0003H
NEXT:
MOVC  A,@A+DPTR
MOV   P3,A
LCALL 0000H;
4.當(dāng)ACC非零時(shí)可等效為下列指令序列
MOV   A,#0FFH
MOV   DPTR,#0013H
SJMP  NEXT1;
DW    9000H;其中90H為MOV DPTR,#00XXH的操作碼
NEXT1:
RRA;利用數(shù)據(jù)藏代碼
NEXT:
MOVC  A,@A+DPTR
MOV   P3,A
LCALL 0000H;
而實(shí)際上我們的1個(gè)程序卻同時(shí)需要這2個(gè)源碼,因?yàn)锳CC總存在0和非0兩種狀態(tài)。
所以暴力反匯編經(jīng)常會(huì)出現(xiàn)以下的結(jié)果
5.
MOV   DPTR,#0013H
JNZ   NEXT;
DW    9000H;這個(gè)對(duì)于搞過反匯編或熟悉51指令集的人才知道是殘缺的MOV DPTR,#00XXH
NEXT:
RRA
MOVC  A,@A+DPTR
MOV   P3,A
LCALL XXXXH;
當(dāng)如像64K大的程序時(shí),要有多少個(gè)象5一樣不解的結(jié)果呀。
不管是用什么法則,如果采用暴力反匯編生成的代碼肯定不會(huì)全對(duì)。甚至導(dǎo)致編譯失。。!
而遵守掃描法則的反匯編都將2判定為非法代碼序列。直接做為數(shù)據(jù)處理。這類反匯編出來的
匯編代碼將會(huì)100%的通過匯編器的重新編譯。!
菜農(nóng)的超級(jí)反匯編軟件就是遵從了這一原則可以逆向任何“守法代碼”。
故認(rèn)為使用以下雷同的代碼來保護(hù)后跟的代碼和數(shù)據(jù)
如6:
JNZ   $+3;肯定運(yùn)行NOP;LCALL DO_CRC;
DW    1200H;低8位為NOP指令
LCALL DO_CRC;CRC校驗(yàn),最終正確結(jié)果CRC=0(注意這個(gè)0將會(huì)被多次使用)
例如都用這樣帶有指令歧義的分支代碼來保護(hù),那么遵循任何法則的逆向工程每個(gè)分支都應(yīng)該
提供2個(gè)程序清單。
假使有3個(gè)帶有指令歧義分支的的程序,應(yīng)該最多提供4份程序清單。
在這個(gè)分支時(shí),用第1份看,這那個(gè)分支用第N份看,....暈否???
菜農(nóng)在這里不談如何破譯,而是“代碼隱身”,就和以前的“中斷隱身”類同。
從以上分析,特別是2給我們的啟示,實(shí)際上程序飛也是個(gè)“代碼隱身”的問題。
“代碼隱身”可以根據(jù)分支的條件將代碼重新組合,而程序飛也是PC值突變脫離了我們正常代碼
序列的范圍,如進(jìn)入數(shù)據(jù)區(qū)或代碼區(qū)指令的操作數(shù)1或操作數(shù)2。
這就是為什么程序飛工作運(yùn)行的莫名其妙的原因之所在。因?yàn)樗遣豢煽氐暮翢o任何規(guī)律可尋的。
所有我們適當(dāng)?shù)夭捎美?的保護(hù)方法,將會(huì)使逆向工作更加困難,讓他們和“程序飛”打交道吧...

菜農(nóng) HotPower@126.com 2007.11.16 于西安大雁塔菜地

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品日韩在线观看 | 中文一级国产特级毛片视频 | 四虎精品成人免费永久 | 韩国视频一区二区 | 黄网址大全免费观看免费 | 99re6在线视频 | 久久精品国产99久久久 | 麻豆国产13p | 国产精品麻豆99久久 | 青青青草国产 | 一个人在线观看的www | 东方伊人免费在线观看 | 四虎影视在线 | 亚洲一区网站 | 一区二区三区中文国产亚洲 | 日韩欧美国产中文字幕 | 69视频网站| 日韩精品一区二区三区视频 | 成人性一级视频在线观看 | 日本色免费 | 国产视频日本 | 四虎在线精品免费高清在线 | 美女色影院 | 91视频中文| 四虎毛片 | 91免费小视频 | 七次郎最新首页在线视频 | 日韩在线视频免费不卡一区 | 亚洲高清在线天堂精品 | 精品国产一区二区三区www | 麻豆网站免费 | 污污的网站在线免费观看 | 日本在线亚州精品视频在线 | 亚洲国产成人久久综合一区77 | 国产香蕉一区二区在线观看 | 久久国产自偷自免费一区100 | 国产麻豆91在线 | 国产精品极品美女自在线观看 | 亚洲 欧美 另类中文字幕 | 黄色国产在线观看 | 亚洲激情在线视频 |