2011-09-03 10 views
22

Ho un file binario e voglio sostituire il valore A2 all'indirizzo DEADBEEF con qualche altro valore, ad esempio A1.Come sovrascrivere alcuni byte di un file binario con dd?

Come posso fare questo con dd? Se ci sono altri strumenti che possono farlo, si prega di suggerire. Ma ho intenzione di farlo su iPhone, quindi posso lavorare solo con gli strumenti Unix di base.

risposta

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

Questo non funziona sulla mia macchina. 'somefile' finisce troncato dopo il byte modificato. – gromain

+0

Tuttavia, funziona quando 'conv = notrunc' si trova alla fine del comando. 'printf '\ xa1' | dd of = somefile bs = 1 seek = $ ((0xdeadbeef)) conv = notrunc' – gromain