Ich habe dieses Zitat (unten) einige Male gelesen, zuletzt hier , und bin ständig verwirrt darüber, wie dd
man etwas patchen kann, geschweige denn einen Compiler:
Das Unix-System, das ich vor 30 Jahren in der Schule verwendet habe, war in Bezug auf RAM und Festplattenspeicher sehr begrenzt. Insbesondere das
/usr/tmp
Dateisystem war sehr klein, was zu Problemen führte, wenn jemand versuchte, ein großes Programm zu kompilieren. Natürlich sollten die Schüler sowieso keine "großen Programme" schreiben; Bei großen Programmen handelte es sich normalerweise um Quellcodes, die von "irgendwo" kopiert wurden. Viele von uns kopiert/usr/bin/cc
zu/home/<myname>/cc
, und verwendetdd
die binäre Patch zu verwenden ,/tmp
statt/usr/tmp
, die größer war. Dies machte das Problem natürlich nur noch schlimmer - der von diesen Kopien belegte Speicherplatz spielte damals eine Rolle und wurde jetzt/tmp
regelmäßig gefüllt, sodass andere Benutzer ihre Dateien nicht einmal bearbeiten konnten. Nachdem sie herausgefunden hatten, was passiert war, taten die Sysadmins achmod go-r /bin/* /usr/bin/*
was das Problem "behoben" und alle unsere Kopien des C-Compilers gelöscht.
(Betonung meiner)
Die dd
Man-Page sagt nichts über das Patchen aus und ich glaube nicht, dass es trotzdem sinnvoll sein könnte, dies zu tun.
Könnten Binaries wirklich gepatcht werden dd
? Hat dies eine historische Bedeutung?
od
eine Datei für die Byte-Hex-Codes, den benötigten Offset finden, über die Bearbeitung undbs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
den Patch direkt in entscheiden.