2012-10-19 42 views
0

我已經採取了一個小的自由使用15kb程序,併成功地將它的一個未壓縮版本轉儲到一個新的exe文件(大小約爲56kb)(原始包裝在UPX中),然後將它加載到IDA Pro中,離開消息告訴我進口搞砸了(這是我用OllyDump的選項來解決導入表怪異的原因),我被帶到了這個畫面拆解。爲什麼?

Is This Machine Code? http://imageshack.us/a/img401/9302/68696520.png

這是大會或機器代碼? 確定它沒有機器代碼,但是這被認爲是Assembly?是用這些十六進制數字編寫的彙編文件,或者是它們在調試器左側的任何文件?

http://imageshack.us/a/img526/548/23865356.png

嘿公衆開始。看起來很熟悉。

http://imageshack.us/a/img217/9457/62998986.png

如果這是機器代碼。有沒有辦法讓人們將機器代碼加入ASM代碼?獲得ASM代碼後,有什麼可能?

如果倒回到源代碼是如此困難或幾乎不可能(正如一些谷歌搜索結果中所述),爲什麼人們首先解散程序?

我想了解更多關於這裏的原因。由於我是一位有志於成爲專家級程序員的初學者,因此我只是因爲我正在挑選的代碼是一個非常可愛的小程序而感到受到啓發,因爲我想學習並閱讀這些程序。

+0

大多數「彙編」指令直接映射到機器操作碼上。當然,某些信息丟失了(例如標籤,段名稱)。 – 2012-10-19 00:53:54

回答

2

它是彙編語言(ASM)。

人們反編譯程序以瞭解它們的工作方式。如果您有足夠的耐心,並學習相關CPU的語言,您可以像閱讀任何編程語言一樣閱讀此代碼。這需要很多練習,但通過閱讀ASM來確定程序的工作方式並非不可能。

鑑於正確的知識和工具,特別是如果程序是使用流行的編譯器生成的,將其重新轉換爲源代碼是完全有可能的。

+0

編輯我的答案。 –

+0

是的,我感到困惑。聽到機器碼作爲另一種人類可讀的低級語言。 所以機器碼是位和組合是助記碼。好吧 – xdaimon

+0

所以我在這裏是我的cpu版本的大會?在解包和運行IDA專業版後,我仍然不確切地知道我的結果。 – xdaimon

相關問題