2012-07-04 26 views
0

我對OBJDump提供的以下代碼有疑問。我意識到二進制文件中的.data段表示靜態定義的數據,但是下面的代碼並不像預期的那樣出現。64位ELF數據段

0000000000600348 <.data>: 
    600348: 48      rex.W 
    600349: 65      gs 
    60034a: 6c      insb (%dx),%es:(%rdi) 
    60034b: 6c      insb (%dx),%es:(%rdi) 
    60034c: 6f      outsl %ds:(%rsi),(%dx) 
    60034d: 20 57 6f    and %dl,0x6f(%rdi) 
    600350: 72 6c     jb  0x6003be 
    600352: 64 21 0a    and %ecx,%fs:(%rdx) 

我原來寫的是沿

SEGMENT .data 
    msg: dw "Hello World!",0xa,0x0 
    msg_len: equ msg-$ 

線的東西,這只是描繪以不同的方式相同的數據?

+2

是的。拿一張ASCII圖表,看看。這個無意義的代碼是反彙編文本時發生的事情。 – harold

+0

@harold你知道我一直在這工作了大約2個小時,現在試圖破譯這個,從來沒有意識到它對應的十六進制值......... – Blackninja543

回答

0

你應該使用這樣的 「readelf -x。數據./binary」 或 「objdump的-s -j。數據./binary」 這將輸出它,你想要它。 希望這有助於