I have read this quote (below) several times, most recently here, and am continually puzzled at how
dd can be used to patch anything let alone a compiler:
The Unix system I used at school, 30 years ago, was very limited in RAM and Disk space. Especially, the
/usr/tmpfile system was very small, which led to problems when someone tried to compile a large program. Of course, students weren't supposed to write "large programs" anyway; large programs were typically source codes copied from "somewhere". Many of us copied
/home/<myname>/cc, and used
ddto patch the binary to use
/usr/tmp, which was bigger. Of course, this just made the problem worse - the disk space occupied by these copies did matter those days, and now
/tmpfilled up regularly, preventing other users from even editing their files. After they found out what happened, the sysadmins did a
chmod go-r /bin/* /usr/bin/*which "fixed" the problem, and deleted all our copies of the C compiler.
dd man-page says nothing about patching and a don't think it could be re-purposed to do this anyway.
Could binaries really be patched with
dd? Is there any historical significance to this?
oda file for the byte hex codes, find the offset you need, decide on your edit, and
bs=$patchsize count=1 seek=$((offset/bs)) conv=notruncyour patch right on in.