Saya telah membaca kutipan ini (di bawah) beberapa kali, paling baru di sini , dan saya terus-menerus bingung bagaimana dd
bisa digunakan untuk menambal apa pun apalagi kompiler:
Sistem Unix yang saya gunakan di sekolah, 30 tahun yang lalu, sangat terbatas dalam ruang RAM dan Disk. Terutama,
/usr/tmp
sistem file sangat kecil, yang menyebabkan masalah ketika seseorang mencoba menyusun program besar. Tentu saja, siswa tidak seharusnya menulis "program besar"; program besar biasanya kode sumber disalin dari "suatu tempat". Banyak dari kita disalin/usr/bin/cc
ke/home/<myname>/cc
, dan digunakandd
untuk menambal biner untuk menggunakan/tmp
bukan/usr/tmp
, yang lebih besar. Tentu saja, ini hanya memperburuk masalah - ruang disk yang ditempati oleh salinan ini memang penting hari itu, dan sekarang/tmp
terisi penuh, mencegah pengguna lain bahkan mengedit file mereka. Setelah mereka mengetahui apa yang terjadi, para sysadmin melakukanchmod go-r /bin/* /usr/bin/*
yang "memperbaiki" masalah, dan menghapus semua salinan kami dari kompiler C.
(Penekanan milikku)
Halaman dd
manual tidak mengatakan apa-apa tentang menambal dan tidak berpikir itu bisa bertujuan ulang untuk melakukan hal ini.
Bisakah binari benar-benar ditambal dd
? Apakah ada signifikansi historis untuk ini?
od
file untuk kode hex byte, menemukan offset yang Anda butuhkan, memutuskan mengedit, danbs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
patch Anda tepat di dalam.