Forum: PC-Programmierung Codeblocks: Release-Version als Shared library??


von Axel V. (axel-f)


Lesenswert?

Code::Blocks Version 20.03 unter Linux Mint

Programm erstellt, Debug-Version aus Codeblocks heraus gestartet läuft 
einwandfrei. Wenn ich in den Release-Ordner gehe und das dortige 
Programm starten will, möchte Linux ein Programm zum öffnen der Datei 
haben und erkennt mein Programm als "Gemeinsame Bibliothek". Wenn ich 
ein Terminal an dieser Stelle aufmache, kann ich mein Programm ohne 
Probleme starten; läuft.
Build Einstellung habe ich mal auf "Konsole-Applikation" und mal auf 
"GUI-Applikation" gestellt- keine Änderung.

Irgendwelche Tips?

Axel F.

von Εrnst B. (ernst)


Lesenswert?

Ich vermute, du bekommst ein "PIE"-Executable aus dem Compilerlauf (Für 
ASLR), und dein Filemanager (mit dem du draufklickst) kennt das noch 
nicht.

Filemanager aktualisieren, oder "-no-pie" in die Compiler-Optionen 
packen.

von Axel V. (axel-f)


Lesenswert?

Herzlichen Dank, das war die Lösung (-no-pie allerdings als 
Linker-Option)!

Kannst Du mir etwas mehr über die Problematik erzählen?

Danke & Gruß
Axel F.

von Εrnst B. (ernst)


Lesenswert?

Axel V. schrieb:
> Kannst Du mir etwas mehr über die Problematik erzählen?

Einmal ist es ein:
ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for
GNU/Linux 3.2.0
und ansonsten ein:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked

Der Unterschied ist, dass das PIE-Executable beim Start vom ld.so an 
eine zufällige Speicheradresse geladen wird, und damit einen Schutz vor 
manchen Angriffen bietet, weil der Exploit-Payload keine bekannten 
Funktionsadressen/Speicherstellen mehr voraussetzen kann.

Problem: die Mime-Typ-Erkennung deines Filemanagers erkennt diese 
Executables als .so - Bibliothek, nicht als ausführbares Programm, und 
will sie deshalb nicht starten.

Vergleich mal die Ausgabe von "file meinProgramm" und "xdg-mime query 
filetype meinProgramm", für die PIE und !PIE-Compilate, da wird das 
Problem deutlich.

: Bearbeitet durch User
von Axel V. (axel-f)


Lesenswert?

Ah ja, genau da kommt dabei raus.

Danke nochmals & schönes Wochenende!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.