2012-04-19 10 views
0

バイナリファイル内の特定の16進オフセットの内容をC#に置き換えるにはどうすればよいですか?C#の特定の16進オフセットを置換する

私のオフセットは0x33347で、その内容は06です。06を17に変更したいと思います。どうすればいいですか?私はヘックス編集の経験がほとんどないので、自分自身を何とか描くことができず、失われてしまった。

答えて

2

ストリームを読み取り/書き込みモードで開き、オフセットまで読み込み(ストリームがシークをサポートするかどうかを調べる)、バイトを書き込んだり、ストリームをフラッシュして閉じます。

3

FileStreamを使用して、ストリームのPositionをオフセットに設定してから、バイトを書き込みます。

これは、現在のコンテンツを必要なもので上書きします。

using(var fs = new FileStream("path to file", 
           FileMode.Open, 
           FileAccess.ReadWrite)) 
{ 
    fs.Position = 0x33347; 
    fs.WriteByte(Convert.ToByte(0x6)); 
} 
+0

ありがとうございました。この例は私を助けました。 – Lazze

関連する問題