J'ai lu cette citation (ci-dessous) à plusieurs reprises, dont la plus récente ici , et je suis toujours perplexe quant à la manière dont dd
on peut utiliser pour patcher n'importe quoi, sans parler d'un compilateur:
Le système Unix que j'avais utilisé à l'école, il y a 30 ans, était très limité en RAM et en espace disque. En particulier, le
/usr/tmp
système de fichiers était très petit, ce qui posait problème lorsque quelqu'un essayait de compiler un programme volumineux. Bien entendu, les étudiants n'étaient pas censés écrire de "gros programmes" de toute façon; les grands programmes étaient généralement des codes sources copiés "quelque part". Beaucoup d' entre nous copiés/usr/bin/cc
à/home/<myname>/cc
, et utilisédd
pour patcher le binaire à utiliser au/tmp
lieu de/usr/tmp
, qui était plus grande. Bien sûr, cela ne faisait qu'aggraver le problème: l'espace disque occupé par ces copies importait de nos jours et se/tmp
remplissait maintenant régulièrement, empêchant les autres utilisateurs de modifier leurs fichiers. Après avoir découvert ce qui s’est passé, les administrateurs système ont fait unechmod go-r /bin/* /usr/bin/*
qui "corrige" le problème et supprime toutes nos copies du compilateur C.
(Souligné par moi)
La dd
page de manuel ne dit rien sur les correctifs et ne pense pas qu'il pourrait être modifié pour le faire de toute façon.
Les binaires pourraient-ils vraiment être corrigés dd
? Y at-il une signification historique à cela?
od
un fichier pour les codes hexadécimaux, trouvez le décalage dont vous avez besoin, décidez de votre édition et debs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
votre correctif directement dans.