2011-09-03 22 views
22

Tôi có một tệp nhị phân và tôi muốn thay thế giá trị A2 tại địa chỉ DEADBEEF với một số giá trị khác, nói A1.Làm thế nào để ghi đè lên một số byte của một tệp nhị phân với dd?

Tôi làm cách nào để thực hiện việc này với dd? Nếu có các công cụ khác có thể thực hiện việc này, vui lòng đề xuất. Nhưng tôi dự định làm điều này trên iPhone vì vậy tôi chỉ có thể làm việc với hầu hết các công cụ Unix cơ bản.

Trả lời

45
printf '\xa1' | dd conv=notrunc of=somefile bs=1 seek=$((0xdeadbeef)) 
+0

Điều này không hoạt động trên máy của tôi. 'somefile' sẽ bị cắt bớt sau byte đã sửa đổi. – gromain

+0

Tuy nhiên, nó hoạt động khi 'conv = notrunc' nằm ở cuối lệnh. 'printf '\ xa1' | dd = = somefile bs = 1 seek = $ ((0xdeadbeef)) conv = notrunc' – gromain

Các vấn đề liên quan