2012-07-27 64 views
1

我讀的書逆轉:逆向工程的祕密,並在第二章中,作者說:逆向工程 - 選擇一個架構

如果你打算學習倒車和 彙編語言並沒有特定的平臺,請使用IA-32。

這本書寫於2005年,所以我想知道這是否仍然有關?如果我沒有逆向工程方面的經驗,我應該選擇IA-32嗎?

回答

0

就應用程序而言,IA-32仍然是最常用的windows體系結構,但有些應用程序使用AMD64。我想這一切都取決於你想要進行逆向工程。

+0

那麼我沒有特別的目標,我只想選擇最擴展的架構。那麼IA-32仍然是實際的權利? – user1505497 2012-07-27 02:05:20

+0

這是正確的。 64位架構還是相當新的,所以會有更多關於IA-32的信息。順便說一下,您打算使用哪種操作系統進行逆向工程?如果您使用的是Windows,我推薦進行拆卸,稱爲ollydbg。 http://www.ollydbg.de/ – TheSteve 2012-07-30 02:09:00

0

我認識的大多數好的反向工程師都是從Windows IA-32程序集開始的,因爲Windows可執行程序(特別是惡意軟件)大多是封閉源代碼。在IA-32體系結構的窗口中可以找到很多二進制文件來練習。之後,您可以切換到另一個體繫結構,如AT & T.當你已經熟悉IA-32時,只需稍微調整一下其他架構即可。

0

實際上,對於真實世界的逆向工程,人們仍然會從x86/IA-32組裝開始,顯然,我們最近看到了x64/AMD64接管,但這些CPU能夠完全本地運行x86代碼(系統調用和OS API確實需要像WoW64這樣的模擬器的幫助)。至關重要的是,x64指令集的x86子集包含了初學者首先想要了解的基本指令。

當然,在逆向工程中,還有一種更具吸引力的激勵來關注IA-32代碼,這是本地x86程序的大規模可用性。從純粹的倒車角度來看,如果你打算爲他們的程序工作,你真的只需要知道關於x64 CPU的任何東西

正如我已經暗示的那樣,這些差異遠遠不足以使x86知識毫無價值。在體系結構方面有一些變化(例如擴展寄存器如RAX以及對它們可以使用的變化)以及指令集方面的一些變化(例如,您的一些常見指令將期待64位寄存器操作數),但還有很多更多的是不同的。

還有其他平臺,比如ARM,你的問題也會討論這些平臺,但這些平臺在你感興趣的設備中並不普遍。默認學習x86程序集的建議是好的。