3 回答

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

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