色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          C51軟復(fù)位分析

          作者: 時(shí)間:2012-07-04 來源:網(wǎng)絡(luò) 收藏


          這樣的語(yǔ)句就完成復(fù)位再啟功能了。類型轉(zhuǎn)換符()的優(yōu)先級(jí)跟指針運(yùn)算符*的優(yōu)先級(jí)相同,
          二者的結(jié)合方向是自右至左,所以上述語(yǔ)句就能完成復(fù)位功能了。保險(xiǎn)起見有些程序員常
          常喜歡再加個(gè)括號(hào):

          #defineK(((void(*)())rst)

          (*K)()



          (*((void(*)())rst))();



          由于沒有輸入?yún)?shù),上述復(fù)位代碼更嚴(yán)謹(jǐn)?shù)膶懛ㄊ牵?BR>
          #defineK(((void(*)(void))rst)

          (*K)()



          (*((void(*)(void))rst))();

          關(guān)于帖子作者的解釋

          千萬不要犯“rst”形式的錯(cuò)誤,對(duì)于一維數(shù)組而言,數(shù)組名rst就代表地址。以下二者等
          價(jià),更常用的是等式左邊的形式:

          rst==rst[0]

          整個(gè)函數(shù)指針無所謂參數(shù)傳遞,只是把rst當(dāng)作程序執(zhí)行地址調(diào)用而已,那個(gè)學(xué)生的解釋也
          有問題。

          還有一點(diǎn)必須提及,不是說能通過編譯,甚至生成正確代碼,就表示某語(yǔ)句一定是對(duì)的。
          對(duì)很復(fù)雜的語(yǔ)句,要考慮到編譯器不嚴(yán)格甚至出錯(cuò)的可能性。

          哈佛結(jié)構(gòu)和一個(gè)蠕蟲病毒

          請(qǐng)注意,定義數(shù)組rst[]時(shí)用了關(guān)鍵字code,這是特有的關(guān)鍵字,意味著把數(shù)組定義到
          程序空間。標(biāo)準(zhǔn)C是沒有關(guān)鍵字code的。

          哈佛結(jié)構(gòu)和普林斯頓結(jié)構(gòu):

          哈佛結(jié)構(gòu)——程序空間和存儲(chǔ)空間分開的。算是不太嚴(yán)格的哈佛結(jié)構(gòu)——雖地址線分
          開,但數(shù)據(jù)線沒有分開。DSP是增強(qiáng)的哈佛結(jié)構(gòu)。

          PC電腦上奔騰CPU是普林斯頓結(jié)構(gòu)——數(shù)據(jù)空間和程序空間統(tǒng)一編址。


          如果數(shù)組rst[]數(shù)據(jù)的匯編機(jī)器碼是刪除文件的機(jī)器碼,這算不算是病毒?

          曾經(jīng)流行過一種蠕蟲病毒,其發(fā)作機(jī)理采取的就是將惡意代碼保存成文本文件,然后通過
          指針調(diào)用執(zhí)行這個(gè)文本,很多殺毒程序也不會(huì)查詢文本文件。

          程序也罷,數(shù)據(jù)也罷都是二進(jìn)制形式,如果數(shù)據(jù)空間和程序空間是統(tǒng)一編碼的,數(shù)據(jù)當(dāng)然
          可以當(dāng)作程序運(yùn)行。

          在這一點(diǎn)上,相對(duì)而言,哈佛結(jié)構(gòu)的CPU安全性會(huì)好一點(diǎn)點(diǎn)。但嵌入式應(yīng)用少有病毒,一般
          不用關(guān)心。


          關(guān)鍵詞: C51 軟復(fù)位分析

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉