2011-07-22 27 views
2

因此,我正在研究一些代碼(用於x86),我需要獲取指令的源或目標點。爲此,我需要說明ModRM或REG是目標還是源的方向位。此外,我需要能夠處理即時值。到目前爲止,我可以處理指令,它是主操作碼(以及前綴)。我想知道最簡單的方法是什麼,或者任何人都可以指向我確定目標/源代碼的好例子(例如寄存器,內存地址或直接操作數)。我見過很多解碼器,但其中大多數都是專門爲一件事而構建的,而那些包含許多功能的解碼器非常複雜。如何讀取彙編指令的方向位和源或目標

回答

1

爲什麼不使用反彙編引擎?你可以看到他們是如何解碼字節的(這個規範在intel開發者手冊第1卷中),或者讓他們爲你完成所有繁重的工作,所以你可以處理它們的輸出(這可能是純文本和一些標誌)。要看的兩個開源引擎是BeaEngine(包括在陽光下的每個指令,簡單易用的界面)和ollydbg的disasm引擎(簡單而緊湊,只能達到SSE1指令)。

+0

啊我忘了我有ollydbg源在這裏某處。我會看看它。 –