3 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
psoul的出色帖子可以回答您的問(wèn)題,因此我不會(huì)重復(fù)他的出色著作,但是我認(rèn)為這有助于解釋為什么這一次既是完全有效的又是非常愚蠢的問(wèn)題。畢竟,這是一個(gè)學(xué)習(xí)的地方,對(duì)吧?
現(xiàn)代計(jì)算機(jī)程序是通過(guò)一系列轉(zhuǎn)換產(chǎn)生的,從輸入人類可讀的文本指令主體(稱為“源代碼”)開(kāi)始,到以計(jì)算機(jī)可讀指令主體(稱為“二進(jìn)制”或“機(jī)器”)結(jié)束碼”)。
計(jì)算機(jī)運(yùn)行一組機(jī)器代碼指令的方式最終非常簡(jiǎn)單。處理器可以執(zhí)行的每個(gè)動(dòng)作(例如,從內(nèi)存中讀取,添加兩個(gè)值)均由數(shù)字代碼表示。如果我告訴您數(shù)字1表示尖叫,數(shù)字2表示咯咯笑,然后舉起上面印有1或2的卡片,希望您相應(yīng)地尖叫或咯咯笑,那么我將使用與計(jì)算機(jī)所使用的基本相同的系統(tǒng)操作。
二進(jìn)制文件只是這些代碼(通常稱為“操作代碼”)和操作代碼所作用的信息(“參數(shù)”)的集合。
現(xiàn)在,匯編語(yǔ)言是一種計(jì)算機(jī)語(yǔ)言,其中該語(yǔ)言中的每個(gè)命令字正好代表處理器上的一個(gè)操作碼。匯編語(yǔ)言命令和處理器操作碼之間直接進(jìn)行1:1轉(zhuǎn)換。這就是為什么x386處理器的編碼程序集與ARM處理器的編碼程序集不同的原因。
反匯編就是這樣:程序讀取二進(jìn)制文件(機(jī)器代碼),用等效的匯編語(yǔ)言命令替換操作碼,然后將結(jié)果輸出為文本文件。了解這一點(diǎn)很重要;如果您的計(jì)算機(jī)可以讀取二進(jìn)制文件,那么您也可以通過(guò)用手(op)手動(dòng)操作(ick)或通過(guò)反匯編程序來(lái)讀取二進(jìn)制文件。
反匯編器具有一些新的技巧,但必須了解反匯編器最終是一種搜索和替換機(jī)制,這一點(diǎn)很重要。這就是為什么任何最終禁止它的EULA最終都會(huì)吹熱風(fēng)的原因。您不能一次允許計(jì)算機(jī)讀取程序數(shù)據(jù),也不能禁止計(jì)算機(jī)讀取程序數(shù)據(jù)。
(請(qǐng)不要誤會(huì)我,已經(jīng)嘗試過(guò)這樣做。它們?cè)诟枨募系淖饔煤虳RM一樣好。)
但是,拆卸方法有一些注意事項(xiàng)。變量名不存在;您的CPU不存在這種情況。庫(kù)調(diào)用就像地獄一樣令人迷惑,并且經(jīng)常需要拆卸其他二進(jìn)制文件。在最好的條件下,匯編是很難讀的。
大多數(shù)專業(yè)程序員都不會(huì)坐下來(lái)閱讀匯編語(yǔ)言而感到頭疼。對(duì)于業(yè)余愛(ài)好者而言,這只是不可能的事情。
無(wú)論如何,這是一個(gè)有點(diǎn)掩蓋的解釋,但我希望它會(huì)有所幫助。每個(gè)人都可以隨意糾正我的任何錯(cuò)誤陳述;有一陣子了。;)

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果您只是想弄清楚惡意軟件的作用,那么在免費(fèi)工具Process Monitor之類下運(yùn)行它可能會(huì)容易得多,該工具會(huì)在每次嘗試訪問(wèn)文件系統(tǒng),注冊(cè)表,端口等時(shí)進(jìn)行報(bào)告。
此外,使用虛擬機(jī)(例如免費(fèi)的VMWare服務(wù)器)對(duì)于此類工作非常有幫助。您可以制作一個(gè)“干凈”的圖像,然后在每次運(yùn)行惡意軟件時(shí)都返回到該圖像。
- 3 回答
- 0 關(guān)注
- 946 瀏覽
添加回答
舉報(bào)