Patch
修補二進製文件的含義?
我試圖通過在手冊頁的範例中修補二進製文件來理解它的含義
xxd
:Patch the date in the file xxd.1 % echo "0000037: 3574 68" | xxd -r - xxd.1 % xxd -s 0x36 -l 13 -c 13 xxd.1 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
- 這是否意味著編輯二進製文件,或者就像在維基百科中一樣
更新檔是一種軟體,旨在解決問題1或更新電腦程序或其支持數據。
- 它們
xxd
有何patch
不同,它們是否相似?- 這個例子試圖做什麼?
打更新檔就是修改文件的意思,意思是修改一般很小。該用法來自一般英語用法,其中更新檔是一個小的修改(例如,一塊布)。對於文件,更新檔並不總是修復。
更新檔是描述如何修改一個文件或一組文件的一系列指令。在 unix 世界中,更新檔通常是
diff
命令的輸出,描述文本文件中的更改。這種意義上的更新檔描述了在文件中添加、刪除或修改行的修改。該patch
實用程序應用這些指令來修改一個文件或一組文件。它試圖聰明地將多個更新檔應用於同一個文件,因為第一個更新檔可能會導致阻止應用第二個更新檔的更改,因為該文件不再處於預期狀態。因為它們diff
的patch
操作非常基於行,所以它們不太適合二進製文件。
xxd
是用於處理二進製文件的通用實用程序。它的功能之一是在文件中進行修改。例如,命令xxd -r - xxd.1
意味著應用在標準輸入上描述的修改。範例更新檔(即修改指令)的0000037: 3574 68
意思是:從偏移量0x37
(即十進制的 55)開始,將接下來的三個字節替換為 0x35、0x74 和 0x68(即三個字元5th
)。