2015-09-05 64 views
-1

我需要將很多機器代碼十六進制轉換爲程序集。我正在使用IDA的免費版本。我相信它可以做到這一點,但每當我輸入格式原料,垃圾桶,十六進制,exe文件的機器碼,DMP就這樣開:如何將機器代碼轉換爲可讀的程序集(IDA免費)

seg000:00010 32 34 35 32 20 33 31 35 30 20 65...  2452 3150 e0ff 3 

但我想是這樣的:

seg000:00010 2452 3150 e0ff 3...moreHex   f..b...%..3k.. 

這些問題很接近但對我來說還不夠具體。 How to convert machine code to assembly code?
How might I convert Intel 80386 Machine Code to Assembly Language?

+0

您是否將字節輸入IDA?或加載文件?你不需要IDA就可以反彙編。如果你有一個常規的Windows exe文件,你可以使用apt-get binutils在Linux上使用objdump,在Windows上使用cygwin。如果你有一個帶有x86代碼的原始bin文件,你可以使用ndisasm,在Linux上使用apt-get ndisasm,或者在Windows上使用cygwin。 – mattypiper

+1

你想要的示例輸出不是「程序集」,所以你的問題還不清楚。 –

回答

1

你的問題是模糊的,我不知道你用什麼操作系統,但我會盡我所能。

下載Windows的十六進制編輯器。一個很好的免費工具是HxD

創建一個新文件並在左側區域輸入您的字節。 ASCII表示將顯示在右側,這可能意味着什麼,也可能不意味着什麼。將你的文件保存爲類似code.bin的文件。然後在IDA Free中打開該文件,並指定「Binary File」作爲文件類型並選擇處理器類型,我認爲它將是Intel x86變體之一,例如Intel Pentium 4.一旦文件加載,IDA就會贏得'由於這是一個原始文件,所以你不得不指定代碼的位置,然後按「c」鍵將字節轉換爲代碼。

+0

很好的答案。我真的需要整體程序嗎?僅顯示一個函數的缺點是什麼?請原諒我的無知,我對這個低級別的東西很陌生。 (我之前試圖用txt編輯器保存爲bin) – Ponyisasquare