2015-02-11 42 views
-1

我有兩個字符串:如何在VB.NET中替換字節?

Dim Original_Hex_Bytes as string = "616572646E61" 
Dim Patched_Hex_Bytes as string = "616E64726561" 

然後,我有一個二進制文件,我需要搜索Original_Hex_Bytes與Patched_Hex_Bytes替換它們; ?我卻不知道偏移哪裏開始寫新的字節:(

我怎樣才能做到這一點

如果需要的話,我也知道如何爲十六進制的字符串轉換成字節,我用這個:

Private Function Hex_To_Bytes(ByVal strinput As String) As Byte() 
     Dim i As Integer = 0 
     Dim x As Integer = 0 
     Dim bytes(strinput.Length/2) As Byte 
     Do While (strinput.Length > i + 1) 
      Dim lngDecimal As Long = Convert.ToInt32(strinput.Substring(i, 2), 16) 
      bytes(x) = Convert.ToByte(lngDecimal) 
      i += 2 
      x += 1 
     Loop 
     Return bytes 
    End Function 
+0

你有什麼麻煩?你能打開並閱讀文件嗎? – 2015-02-11 16:27:46

+0

未指定偏移量的主要問題是,如果序列出現多次,您可能會更改錯誤的字節。 – 2015-02-11 18:27:33

回答

0

您可以使用BinaryReader和BinaryWriter類來實現這一點。 但是在這種情況下,由於您不知道文件結構,需要讀取整個文件並掃描它以搜索字節數組,並且會更易於使用ASCII字符串,如aerdna和andrea 當您知道文件的結構更適合於處理數據結構來操縱其內容。