Das Buch sagte, dass ASLR bei Linux standardmäßig aktiviert ist, aber wenn ich versuche, es zu bestätigen, finde ich ein seltsames Problem: Wenn ich in VSCODE auf die Schaltfläche Ausführen klicke, gibt es immer eine feste Stapeladresse aus und ASLR funktioniert nicht, aber wenn ich die ausführbare Datei ausführe, die von VSCODE in Bash generiert wird, arbeitet ASLR. class = "Lang-C PrettyPrint-Override">
Code: Select all
#include
int main() {
long local;
printf("local at %p\n", &local);
return 0;
}
Die Ausgabe des Klickens auf die Schaltfläche "C/CPP -Datei ausführen":
Code: Select all
local at 0x7fffffffd250
< /code>
Die Ausgabe des Ausführens der ausführbaren Datei in Bash (Mehrere Beispiele für zufällige Adressen): < /p>
local at 0x7ffed0965fb0
local at 0x7fff3eff7630
local at 0x7ffc0e083a00
Ich habe überprüft, ob ASLR auf meinem Computer geöffnet ist.
Ich möchte wissen, was der Unterschied zwischen dem Klicken auf die Schaltfläche und dem Ausführen mit Bash?