Einloggen
[c] [meta] [fefe]

/c/ – Pufferüberlauf


Antwort erstellen

(≤ 4)



[Zurück]

  • [l] andere glicb verwenden Wed, 25 Nov 2020 15:19:55 GMT Nr. 42403
    PNG 1200×1421 260.0k
    Hey, ich hab hier so ein binary, dass mit Rust compiliert wurde. Das ist aber gegen glibc-2.32.so gelinkt, in meinen schicken tollen Ubuntu ist aber nur glibc-2.31.so da. Wie kann ich den binary trotz den allen ausführen?

    Ich habe bereits mir die glibc-2.32.so aus einen gorilla Packet gezogen und im /tmp/libs entpackt. Dann versuchte ich es mit
    $ LD_PRELOAD=/tmp/libs/libc-2.32.so ./prog

    aba:

    *** stack smashing detected ***: terminated
    Abgebrochen (Speicherabzug geschrieben)

    bekommen.
  • [l] Felix Wed, 25 Nov 2020 19:15:11 GMT Nr. 42425
    >>42403
    Gemäß der binären Abhängigkeiten ist vermutlich das Programm nicht gegen "libc-2.32.so" gelinkt, sondern allgemeiner "libc.so.6", was ein symbolischer Link auf die entsprechende Version von glibc ist. Eventuell ist auch die neuere Version des dynamischen Linkers "ld-2.32.so" vonnöten.
    $ ln -s libc-2.32.so /tmp/libs/libc.so.6
    $ LD_LIBRARY_PATH=/tmp/libs ./prog

    Beziehungsweise:
    LD_LIBRARY_PATH=/tmp/libs /tmp/libs/ld-2.32.so ./prog

    Den Linker mit dem Parameter --list aufzurufen ist im Übrigen äquivalent zum Befehl ldd.
  • [l] Felix Thu, 26 Nov 2020 00:42:24 GMT Nr. 42445
    >>42425
    Nein, das klappt so auch nicht mit den Linker. Ich habe übrigens probiert alle dynamischen Bibliotheken (die ldd mit => ... ausgibt) auch ins /tmp/libs zu packen. Bekomm dann Speicherzugriffsfehler (Speicherabzug geschrieben).
  • [l] Felix Sat, 28 Nov 2020 22:19:08 GMT Nr. 42735
    Einfach keinen Ubuntu-Rotz benutzen, sondern auf Arch/Gentoo/Fedora wechseln!
  • [l] Felix Sat, 28 Nov 2020 22:50:15 GMT Nr. 42736
    JPG 1280×960 136.5k
    >>42735
    Unironisch das. Solche Probleme waren genau der Grund, weshalb Felix damals auf Arsch gewechselt ist. Seither nicht zurückgeschaut.
  • [l] Felix Sun, 29 Nov 2020 20:22:13 GMT Nr. 42789
    Zumindest wäre auch mein nächster Vorschlag gewesen, ein minimales Root-Verzeichnis aufzusetzen (z. B. pacstrap /arch dash) und darin das Programm auszuführen.
    Sofern es keine proprietäre Software ist, ist Neukompilieren (Rust-Toolchain mit rustup beziehen und gewünschten Quellcode mit cargo bauen) aber wohl noch einfacher.
  • [l] Felix Mon, 30 Nov 2020 13:54:05 GMT Nr. 42832
    Und immer dran denken: Dynamische Linkierung ist gut, weil man die Versionen ohne Neukompilierung austauschen kann!
  • [l] OP Mon, 30 Nov 2020 15:38:23 GMT Nr. 42836
    >Benutzen Sie Linux haben die gesagt, das ist toll zum Rumspielen und Experimentieren habe die gesagt.

    Na ja, an die Source kann ich im Zweifelsfall dran kommen, will aber nicht die rust toolchain installieren & kompilieren. Das ist auch eine Art Bastel- und Verständnisaufgabe, die ich mir gestellt habe, um den Umgang mit Linux zu festigen. Gibt es eigentlich ein Weg zu schauen, an was das gerade mit *** stack smashing detected ***: terminated gescheitert ist?


    ps. ja mit statischem Linken wäre das nicht passiert. Leute, die heute alles per Default dynamisch linken, sind eh die Hurensöhne.
  • [l] Felix Mon, 30 Nov 2020 19:42:24 GMT Nr. 42851
    PNG 551×377 116.1k
    >>42836
    Mit gdb sollte sich zumindest rausfinden lassen, in welcher Funktion es passiert ist (sofern nicht alles gestrippt ist). Wenn das nicht hilft, vielleicht mal mit strace schauen, was der letzte Syscall war. Aber wirklich helfen wird es alles nicht, du brauchst einfach die richtige Version.
  • [l] Felix Tue, 01 Dec 2020 14:45:17 GMT Nr. 42889
    >>42836
    Der wahre Hurensohn hier ist Ulrich Drepper, der statische Linkierung mit glibc absichtlich sabotiert hat und dafür nicht rausgejagt wurde.
    https://www.akkadia.org/drepper/no_static_linking.html
    Den Hirnschaden muss man sich wirklich im Original geben. Fast jeder Punkt da drin ist irreführend, gelogen, oder könnte genauso gut als Argument für statische Linkierung durchgehen.
  • [l] Felix Tue, 01 Dec 2020 23:27:14 GMT Nr. 42917
    PNG 749×1000 134.9k
    >>42889
    Naja, zum Glück kann er uns jetzt nichts mehr anhaben.
  • [l] Felix Tue, 08 Dec 2020 14:39:01 GMT Nr. 43244
    Für solchen Horror gibt es patchelf, was natürlich selbst auch ein Horror ist.
  • [l] Felix Fri, 16 Sep 2022 19:15:42 GMT Nr. 80907
    Stoss.


[Zurück]
[c] [meta] [fefe]