Was habe ich falsch gemacht (oder nicht gemacht), gdb
was für mich nicht richtig funktioniert?
root@6be3d60ab7c6:/# cat minimal.c
int main()
{
int i = 1337;
return 0;
}
root@6be3d60ab7c6:/# gcc -g minimal.c -o minimal
root@6be3d60ab7c6:/# gdb minimal
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
.
.
.
Reading symbols from minimal...done.
(gdb) break main
Breakpoint 1 at 0x4004f1: file minimal.c, line 3.
(gdb) run
Starting program: /minimal
warning: Error disabling address space randomization: Operation not permitted
During startup program exited normally.
(gdb)
(gdb) print i
No symbol "i" in current context.
--security-opt seccomp=unconfined
habedocker run
.Antworten:
Wenn Sie Docker verwenden, benötigen Sie wahrscheinlich die
--security-opt seccomp=unconfined
Option (und aktivieren ptrace):quelle
--cap-add=SYS_PTRACE
wird nur benötigt, wenngdb
an einen bereits laufenden Prozess angehängt wird.Aus irgendeinem Grund hat Ihr Benutzerkonto keine Berechtigung, die Randomisierung des Adressraumlayouts des Kernels für diesen Prozess zu deaktivieren. Standardmäßig deaktiviert gdb dies, da dadurch einige Arten des Debuggens vereinfacht werden (insbesondere bedeutet dies, dass die Adresse der Stapelobjekte bei jedem Ausführen Ihres Programms gleich ist). Lesen Sie hier mehr .
Sie können dieses Problem umgehen, indem Sie diese Funktion von gdb mit deaktivieren
set disable-randomization off
.Wenn Sie Ihrem Benutzer die zum Deaktivieren von ASLR erforderliche Berechtigung erteilen möchten, müssen Sie wahrscheinlich über eine Schreibberechtigung für verfügen
/proc/sys/kernel/randomize_va_space
. Lesen Sie hier mehr .quelle
Aufbauend auf der Antwort von wisbucky (danke!) Sind hier die gleichen Einstellungen für Docker compose:
Die Sicherheitsoption hat
seccomp:unconfined
dieaddress space randomization
Warnungen behoben .Die Funktion SYS_PTRACE schien keine spürbaren Auswirkungen zu haben, obwohl in der Docker-Dokumentation angegeben ist , dass SYS_PTRACE eine Funktion ist, die "nicht standardmäßig gewährt" wird. Vielleicht weiß ich nicht, wonach ich suchen soll.
quelle