나는이 인용문 (아래)을 여러 번 읽었으며, 가장 최근에 여기 에서 컴파일러는 물론 모든dd
것을 패치하는 데 어떻게 사용할 수 있는지에 대해 계속 당황합니다 .
30 년 전에 학교에서 사용한 유닉스 시스템은 RAM과 디스크 공간이 매우 제한적이었습니다. 특히
/usr/tmp
파일 시스템이 매우 작아서 큰 프로그램을 컴파일하려고 할 때 문제가 발생했습니다. 물론, 학생들은 어쨌든 "큰 프로그램"을 작성해서는 안됩니다. 큰 프로그램은 일반적으로 "어딘가"에서 복사 한 소스 코드입니다. 우리 중 많은 사람들이 복사/usr/bin/cc
에/home/<myname>/cc
, 그리고 사용dd
사용하는 바이너리 패치/tmp
대신/usr/tmp
더 큰이었다을. 물론, 이로 인해 문제가 더 악화되었습니다. 이러한 복사본이 차지하는 디스크 공간은 그 당시 문제가되었으며 이제는/tmp
정기적으로 채워져 다른 사용자가 파일을 편집하지 못하게합니다. 그들이 무슨 일이 있었는지 알아 낸 후, 시스템 관리자는chmod go-r /bin/* /usr/bin/*
문제를 "수정"하고 C 컴파일러의 모든 사본을 삭제했습니다.
(엠파 시스 마인)
dd
사람이 페이지는 패치에 대해 아무것도 말하지 않는다 그리고이 어쨌든 할 작정 재가 될 수 있다고 생각하지 않습니다.
바이너리가 실제로 패치 될 수 dd
있습니까? 이것에 대한 역사적 의미가 있습니까?
od
바이트 16 진 코드를위한 파일, 필요한 오프셋을 찾고, 편집을 결정하고bs=$patchsize count=1 seek=$((offset/bs)) conv=notrunc
, 패치를 바로 적용하십시오.