我有两个字符串:
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 :(得分:0)
您可以使用BinaryReader和BinaryWriter类来实现此目的。 但在这种情况下,由于您不知道文件结构,需要读取整个文件并扫描它以搜索字节数组,并且更容易使用ASCII字符串作为aerdna和andrea。 当您知道文件的结构更适合使用数据结构来操作其内容时。