Patch

修補二進製文件的含義?

  • July 29, 2011

我試圖通過在手冊頁的範例中修補二進製文件來理解它的含義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. 這是否意味著編輯二進製文件,或者就像在維基百科中一樣

更新檔是一種軟體,旨在解決問題1或更新電腦程序或其支持數據。

  1. 它們xxd有何patch不同,它們是否相似?
  2. 這個例子試圖做什麼?

打更新檔就是修改文件的意思,意思是修改一般很小。該用法來自一般英語用法,其中更新檔是一個小的修改(例如,一塊布)。對於文件,更新檔並不總是修復。

更新檔是描述如何修改一個文件或一組文件的一系列指令。在 unix 世界中,更新檔通常是diff命令的輸出,描述文本文件中的更改。這種意義上的更新檔描述了在文件中添加、刪除或修改行的修改。該patch實用程序應用這些指令來修改一個文件或一組文件。它試圖聰明地將多個更新檔應用於同一個文件,因為第一個更新檔可能會導致阻止應用第二個更新檔的更改,因為該文件不再處於預期狀態。因為它們diffpatch操作非常基於行,所以它們不太適合二進製文件。

xxd是用於處理二進製文件的通用實用程序。它的功能之一是在文件中進行修改。例如,命令xxd -r - xxd.1意味著應用在標準輸入上描述的修改。範例更新檔(即修改指令)的0000037: 3574 68意思是:從偏移量0x37(即十進制的 55)開始,將接下來的三個字節替換為 0x35、0x74 和 0x68(即三個字元5th)。

引用自:https://unix.stackexchange.com/questions/17553