使用BinaryWriter(VB.NET)进行十六进制编辑

使用BinaryWriter(VB.NET)进行十六进制编辑,vb.net,Vb.net,我正在Hex Workshop中打开一个.exe文件,我想编辑这一行: 使用BinaryWriter的VB.NET如何实现这一点?该行表示exe的IP。我想有一个程序,其中包括一个文本框,你把新的IP。到目前为止,我已经: Using writer As BinaryWriter = New BinaryWriter(File.Open("C:\localhost.exe", FileMode.Open)) writer.BaseStream.Position = ??

我正在Hex Workshop中打开一个.exe文件,我想编辑这一行:

使用BinaryWriter的VB.NET如何实现这一点?该行表示exe的IP。我想有一个程序,其中包括一个文本框,你把新的IP。到目前为止,我已经:

Using writer As BinaryWriter = New BinaryWriter(File.Open("C:\localhost.exe", FileMode.Open))
            writer.BaseStream.Position = ???
            writer.write???
            End Using

那么,我应该把它放在什么位置,写什么类型的?字节?谢谢。

找到字符串中第一个字符的偏移量并使用此方法:

Private Sub Patch(ByVal TargetFile As String, ByVal FileOffset As Long, ByVal NewValue() As Byte)
    Try
        Dim br As BinaryReader = New BinaryReader(File.Open(TargetFile, FileMode.Open))
        br.BaseStream.Position = FileOffset
        Dim byteB As Byte
        For Each byteB In NewValue
            If (byteB.ToString <> String.Empty) Then
                br.BaseStream.WriteByte(byteB)
            Else
                Exit For
            End If
        Next byteB
        br.Close()
    Catch
    End Try
End Sub
或者使用以下命令代替字节数组:

System.Text.Encoding.ASCII.GetBytes("127.0.0.8") 'It'll change 127.0.0.1 to 127.0.0.8

只要确保字符串的第一个字符有正确的偏移量

也许你应该看看这个:或者看看其他类似的代码:你所问的问题听起来并不太难,在简单阅读BinaryWriter之后就可以发现。很难将IP解释为除知识产权以外的任何东西,通常由许可协议覆盖,该协议规定您不能这样做。如果您指的是指令指针,那么请注意,您实际上是在攻击该文件中的数据,而不是代码。如果您不知道该数据在文件中的位置,那么就不太可能找到它。除了用工具。就像一个十六进制查看器。更改文件只需使用FileStream,请使用Seek+Write。
System.Text.Encoding.ASCII.GetBytes("127.0.0.8") 'It'll change 127.0.0.1 to 127.0.0.8