Nach info registers
in gdb ausgeführt wird, erhalten wir eine Ausgabe ähnlich der folgenden:GDB Info-Register-Befehl - Zweite Spalte der Ausgabe
rax 0x1c 28
rbx 0x0 0
rcx 0x400a60 4196960
rdx 0x7fffffffde88 140737488346760
rsi 0x1 1
rdi 0x400932 4196658
rbp 0x0 0x0
rsp 0x7fffffffde68 0x7fffffffde68
r8 0x400ad0 4197072
r9 0x7ffff7dea560 140737351951712
r10 0x7fffffffdc30 140737488346160
r11 0x7ffff7732dd0 140737344908752
r12 0x4007f0 4196336
r13 0x7fffffffde80 140737488346752
r14 0x0 0
r15 0x0 0
rip 0x7ffff7732dd0 0x7ffff7732dd0
eflags 0x202 [ IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
Während verstehe ich das für rax
, rcx
etc wird GDB den Wert Umwandlung zu dezimal für die zweite Spalte scheint dies nicht konsistent. Einige Register, nämlich rsp
und zeigen den gleichen Wert in Hex, auch in der zweiten Spalte. eflags
zeigt dagegen die Flags in der zweiten Spalte.
Was ist der Grund, dass gdb
dies tut? Wenn es die gleichen Informationen zeigt (im Falle von rsp
und), ist es nicht redundant? Wie verallgemeinert sich dies auch auf andere Architekturen? (Der obige Ausgang ist für x86-64).
Ich würde dieses Plagiat nennen ... wie Sie die Frage gestellt haben [http://reverseengineering.stackexchange.com/questions/9221/output-of-gdb-info-registers] und Sie kopierten große Teile davon meine Antwort hier, ohne Ihre Quellen richtig zu zitieren ... Ich lehne diese Vorgehensweise ab! – perror
@perror da drüben habe ich auf diese Frage hingewiesen. Auch habe ich meine Antwort geändert, den Teil Ihrer Antwort entfernend. –