2014-02-13 61 views
1

我試圖確定%eax寄存器中整數的字符串值是什麼。如何獲取EAX寄存器中的整數字符串值

我用gdb,命令

(gdb) info registers 

輸出:

eax   0x804c800 134531072 
ecx   0xf 15 
edx   0x1 1 
ebx   0xffffd324 -11484 
esp   0xffffd24c 0xffffd24c 
ebp   0xffffd288 0xffffd288 
esi   0x0 0 
edi   0x0 0 
eip   0x8048fca 0x8048fca <strings_not_equal> 
eflags   0x286 [ PF SF IF ] 
cs    0x23 35 
ss    0x2b 43 
ds    0x2b 43 
es    0x2b 43 
fs    0x0 0 
gs    0x63 99 

我想知道如何得到一個字的價值134531072

我試過print /s %eax但即時通訊得到錯誤A syntax error in expression, near %eax'

回答

0

首先,gdb中的寄存器與$不是%,所以它會是print/s $ eax。但是這並不會將寄存器打印爲字符(對我來說它看起來應該是這樣)。

但是這樣做:print(char [4])$ eax。

(低階字節字符是第一印刷。)

0

這是爲了做到這一點:

print (char []) $rax 

如果rax指向存儲器中的字符串,而是使用:

printf "%s", $rax 
相關問題