2017-04-01 3 views
1

Nachdem ich mein Kali-Linux aktualisiert habe, verwende ich gcc, um mein Programm zu kompilieren. Bevor ich das System aktualisierte, benutzte ich objdump, um das Programm zu zerlegen, die .text-Adresse stammt von 0x08048 ..., aber danach ist die .text-Adresse von 0x00000 ..., die gcc-Version wurde von 6.1.1 auf geändert 6.3, was ist los? Warum passiert das?Warum ist die Adresse des Codesegments gleich Null?

Antwort

1

Ich glaube, das ist, weil neue Version erstellt ausführbare Dateien mit -fPIE standardmäßig (prooflink). Positionsunabhängigkeit sollte theoretisch die Sicherheit des Systems verbessern.

+0

Vielen Dank. Mit der Kompilierungsoption -fno-pie und -no-pie wurde das Problem gelöst. –

Verwandte Themen