Sebastian
YaBB God
    
Offline
Einträge: 634

|
 |
Roadkil's Unstoppable Copier
« am: 11. Februar 2025, 19:26:46 »
|
|
Hallo Suletuxe,
Ich habe von Andreas einen Tipp bekommen für ein tolles Kopierprogramm das bei defekten Dateien nicht haltmachen soll und noch lesbare Teile, zusammenfügt. Die Rede ist von Roadkil's Unstoppable Copier das es als Binary von der Seite zum Download gibt.
Nun wollte ich das Binary (ELF) im Terminal starten und nichts passierte. Und bekam folgende Fehlermeldung:
bash: ./unstopcp: cannot execute: required file not found
|
|
Schön und gut es wurde irgendeine Datei nicht gefunden aber welche? Ich habe Andreas das geschildert, und er meinte vielleicht hat er auf seinem System irgendwelche Libs das es bei ihm funktioniert und bei mir nicht. Und er schaut mal nach, wenn er Zeit dafür findet.
Dadurch habe ich für mich einen Tipp bekommen mir selbst zu helfen. Da ich in Sache Programmierung noch nicht so die Erfahrung habe, habe ich an sowas erst nicht dran gedacht.
Aus meinen Erfahrungsschatz wusste ich das man mit ldd ein Binary auf dynamisch verlinke Biblioteken untersuchen kann. Also:
❌127 ❯ ldd unstopcp das Programm ist nicht dynamisch gelinkt
|
|
Tja was nun? Gut dachte ich mir was ist mit dann mit statischen Bibliotheken? Aber wie prüfe ich das?
Genau das habe ich die Brave KI gefragt und diese gab mir als zusammenfassung das man dies mit dem Programm file oder auch readelf machen kann. Also:
❯ file unstopcp unstopcp: ELF 32-bit LSB executable, Intel i386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, not stripped
|
|
file sagt mir sie ist dynamisch verlink? ldd sagt aber etwas anderes? Auch das habe ich die Brave KI gefragt wie so etwas sein kann. Antwort war: das ldd dies fälschlicherweise behaupten kann, wenn die gesuchte Bibliothek nicht installiert ist. Dadurch habe ich meinen nächsten Hinweis bekommen. und da mir file sogar schon den Pfad zur Bibliothek gegeben hatte, habe ich einfach mal ein:
❯ ls /lib/ld-linux.so.2 ls: Zugriff auf '/lib/ld-linux.so.2' nicht möglich: Datei oder Verzeichnis nicht gefunden
|
|
Gemacht, und tatsächlich, ich habe diese Bibliothek nicht. Woher bekomme ich diese jetzt? Auch das fragte ich einfach die Brave KI. Und diese gab mir als Antwort das Diese Bibliotek auf einen 32 Bit System vorkommt und bestandteil von glibc ist. Dann habe ich noch etwas genauer nach einen Paketnamen gefragt und bekam als Antwort das unter Arch dies im Paket lib32-glibc enthalten ist. Also das Paket nachinstalliert und noch einmal unstopcp gestartet. Nun erhielt ich eine andere Fehlermeldung, dass eine andere Bibliothek fehlt:
./unstopcp: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory
|
|
Also gleiches Spiel noch mal, KI befragt wo ich diese Bibliotek finden kann. Und diese teilte mir mit das diese Bestandteil von qt3 ist.
An dieser stelle habe ich dann aufgehört, weiter dinge nachzuinstallieren, weil ich für das Programm nicht so viele alte Programme/Bibliotheken nach installieren wollte bzw. auch compilieren müsste. Weil qt3 zu alt ist was ich bei Andreas gesehen hatte 
Würde ich diesen Weg weiter verfolgen, wäre ich aber mit Sicherheit noch zum Ziel gekommen.
Die Brave KI ist echt gut in Zusammenfassen von Webseiten 
Als eine ähnliche Alternative die mit weniger Abhähigkeiten aus kommt, habe ich badcopy gefunden. Das in Go geschrieben ist und selbständing läuft. Es arbeitet nur etwas anders, indem es nicht einfach die fehlenden Lücken aus lässt, sondern diese mit nullen füllt.
Um das Gleiche verhalten wie den Unstoppable Copier zu haben, müsste man die Bereiche, die mit nullen gefüllt wurden, entfernen und hintereinander stumpf zusammenfügen.
LG Sebastian
|