Gibt es eine Möglichkeit zu sehen, was sich in einer „.rodata+(Speicherort)“-Datei in einer Objektdatei befindet?C++

Programme in C++. Entwicklerforum
Anonymous
 Gibt es eine Möglichkeit zu sehen, was sich in einer „.rodata+(Speicherort)“-Datei in einer Objektdatei befindet?

Post by Anonymous »

Ich nehme also an einem Kurs teil, in dem ich eine einzelne Objektdatei bekomme und diese in C++-Code umwandeln muss. Der Befehl, den ich verwenden soll, ist „gdb attachment6_1.o“, um es in gdb zu öffnen, und „disass main“, um den Assembler-Code anzuzeigen.
Ich verwende selbst auch „objdump -dr attachment6_1.o“, da es etwas mehr Informationen ausgibt.
Das Problem, auf das ich stoße, ist, dass ich mit objdump erkennen kann, dass das Programm versucht, auf eine Variable zuzugreifen, die ich für eine Variable halte oder vielleicht eine Zeichenfolge, „.rodata+0x41“. Es gibt mehrere .rodata, das ist nur ein Beispiel.
Gibt es einen Befehl oder irgendwo, wo ich nachschauen kann, um zu sehen, worauf das verweist? Ich habe auch Zugriff auf das Programm „Bless“.
Unten ist ein Ausschnitt des zerlegten Codes, den ich habe.

Code: Select all

  a3:   48 8d 35 00 00 00 00    lea    0x0(%rip),%rsi        # aa 
a6: R_X86_64_PC32       .rodata+0x41
aa:   48 8d 3d 00 00 00 00    lea    0x0(%rip),%rdi        # b1 
ad: R_X86_64_PC32       _ZSt4cout-0x4
b1:   e8 00 00 00 00          callq  b6 
b2: R_X86_64_PLT32      _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc-0x4
b6:   48 8d 35 00 00 00 00    lea    0x0(%rip),%rsi        # bd 
b9: R_X86_64_PC32       .rodata+0x53
bd:   48 8d 3d 00 00 00 00    lea    0x0(%rip),%rdi        # c4 
c0: R_X86_64_PC32       _ZSt4cout-0x4
c4:   e8 00 00 00 00          callq  c9 
c5: R_X86_64_PLT32      _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc-0x4
c9:   48 8d 35 00 00 00 00    lea    0x0(%rip),%rsi        # d0 
cc: R_X86_64_PC32       .rodata+0x5e
d0:   48 8d 3d 00 00 00 00    lea    0x0(%rip),%rdi        # d7 
d3: R_X86_64_PC32       _ZSt4cout-0x4
d7:   e8 00 00 00 00          callq  dc 
d8: R_X86_64_PLT32      _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc-0x4
dc:   48 8d 35 00 00 00 00    lea    0x0(%rip),%rsi        # e3 
df: R_X86_64_PC32       .rodata+0x6e
e3:   48 8d 3d 00 00 00 00    lea    0x0(%rip),%rdi        # ea 
e6: R_X86_64_PC32       _ZSt4cout-0x4
ea:   e8 00 00 00 00          callq  ef 
eb: R_X86_64_PLT32      _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc-0x4```

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post