如何在VB.NET中替换字节?

时间:2015-02-11 16:04:16

标签: vb.net replace hex byte

我有两个字符串:

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

1 个答案:

答案 0 :(得分:0)

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