2010-12-10 99 views
3

我的第一個問題在這裏,希望我沒有做錯了。反彙編Linux的能夠反彙編舊DOS.COM/.EXE文件

我的問題是,我有一個老的DOS程序,已經相當多的黑客文件格式到極端,以節省空間。 (是的,這對那些知道的人來說是一個預定的產品。)

Objdump不想幫助我;快速谷歌搜索沒有得到真正的問題的結果,這方面的手冊也不太慷慨。

還有其他的是,像利達。然而,由於某種原因,我無法讓利達工作;我相信有其他選擇。

任何人都有在Linux上反彙編DOS可執行文件的經驗嗎?或者我應該嘗試一些基於DOS的反彙編程序並在Dosemu上運行它?

回答

5

IDA是最好的反彙編程序,也有linux版本。它比一個簡單的解散者更好,因爲它是互動的。另外,如果你想看到漂亮的「手工製作」組裝,最好看的地方是舊病毒。而不是二進制文件,但來源,因爲它們被評論。你可以試試Netlux

3

ndisasm自帶NASM,網絡彙編器。它非常靈活,包括反彙編原始字節流的能力(因爲您提到了COM文件)以及一些目標文件格式。嚴格地說,我認爲也可以用一些objdump選項反彙編原始字節流,但我不記得那是怎麼回事。

但是自修改代碼可能會使這個相當棘手。縱觀字節流,很難預測如果程序會自行修改最終執行的指令,DOS是一個常見的節省空間的技巧。你提到啓動到DOS,這給了我一些有趣的想法:也許你可以使用DOS調試器,或者在qemu下運行DOS並使用其調試選項(其中一些包括在執行期間轉儲彙編輸出和寄存器狀態)。

+0

啊,ndisasm能夠毫無問題地拆卸它。具有諷刺意味的是,我想拆解這個的原因是爲了看看人們是如何在當天「回來」的,而我自己正在學習裝配和使用NASM。 – zxcdw 2010-12-10 01:05:11