2010-09-07 154 views
1

我正在調試反彙編中的一些代碼(沒有源代碼可用),並且有許多指令通過ds段寄存器訪問數據,例如,是這樣的:如何在Visual Studio調試器中查看段偏移量內存地址?

66 3B 05 8A B1 43 00 cmp   ax,word ptr ds:[43B18Ah] 

你如何獲得Visual Studio調試器告訴你的ds段寄存器的抵消,這樣我可以檢查,這是指的是內存嗎? Watch窗口似乎不接受像ds:[0x43B18A]或變體這樣的表達式;它會告訴我ds是0,但是這並不告訴我段0的偏移量是多少。

是否有一些特殊的語法,或者這是VS不能做的事情?用另一個調試器如WinDbg或ntsd會更好嗎?

+1

您將有更好的運氣使用WinDbg,奧利,或PE Explorer或甚至IDA Pro的... – t0mm13b 2010-09-07 18:10:10

回答

2

奇數碼,DS寄存器是默認值。只要忽略它,在Windows上,DS,CS和ES寄存器設置爲相同的值。保護模式選擇器。內存窗口使用相同的值。只需省略ds:前綴。

+0

謝謝,我不知道爲什麼我沒有想到這麼簡單的東西。我知道段寄存器用於DLL相關的東西,所以我認爲它可能指向DLL的數據段或其他東西。 – 2010-09-07 19:08:48

相關問題