好的,所以基本上我想在 Linux 32 位上重新使用来自 ELF 的转储.rodata
data
和bss
部分的内容。
转储命令:
objdump -s -j .text elf_binary
objdump -s -j .rodata elf_binary
objdump -s -j .data elf_binary
对于该.bss
部分,我准备重新使用00000000
其中一些与该bss
部分具有相同大小的部分。
当我nasm
以这种方式在汇编程序中重新使用它时,它工作正常。
.section rodata
S_label1: db 0x01
db 0x02
....
.section data
db 0x01
S_label2: db 0x02
....
.section bss
S_label3: db 0x00
db 0x00
....
nasm -f elf test.s
但基本上我的问题是:
如何在gas
汇编程序中重用这些转储的部分?
基本上gas
有不同的组装风格,显然数据部分表示不同......
我试了好几次还是找不到解决办法..
我是否清楚地展示了我的问题..?谁能给我一些帮助?
========更新==========
所以基本上我想重新使用从另一个二进制文件转储的rodata
data
和bss
部分。
例如,这是rodata
部分的内容
03000000 01000200 0a0a556e 736f7274
65642061 72726179 2069733a 20200020
25642000 0a0a536f 72746564 20617272
61792069 733a2020 00
我可以通过这种方式重新使用它:
label1:
db 0x03
db 0x00
db 0x00
db 0x00
label2:
db 0x01
db 0x00
db 0x02
db 0x00
.....
mov eax, label1 // of course I will guarantee that I use it correctly
....
基本上nasm
,我可以很容易地以上述方式重用它们,但我的问题是,如何以类似的方式重用gas
(或直接使用gcc
)它?
是否可以?