Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 在bin文件中搜索字节并查找地址?程序设计_Binary - Fatal编程技术网

Binary 在bin文件中搜索字节并查找地址?程序设计

Binary 在bin文件中搜索字节并查找地址?程序设计,binary,Binary,例如,是否可能: Dim B1() as byte = {&H20 , &H20, &H20} Dim B2() as byte = {&H30 , &H30, &H30} Dim B3() as byte = {&H40 , &H40, &H40} Dim File() As Byte = My.Computer.FileSystem.ReadAllBytes("C:\.....file.bin")

例如,是否可能:

Dim B1() as byte = {&H20 , &H20, &H20}
Dim B2() as byte = {&H30 , &H30, &H30}
Dim B3() as byte = {&H40 , &H40, &H40}
Dim File() As Byte = My.Computer.FileSystem.ReadAllBytes("C:\.....file.bin")
是否可以搜索:如果File()包含B1()debug.write(找到它的地址),如果没有,则搜索B2如果找到,如果没有,依此类推,直到它全部完成? 是否可以将字节数组存储在文本文件中,并使其逐行循环,直到结束,并列出所有找到的和未找到的? 例如,文本文件将包含:20,20,20 30,30,30 40,40,40 然后一行一行地穿过它们? 到目前为止,我设法找到了一个,但我不知道如何使它在许多地方循环

 Function ByteMatch(ByVal Source As Byte(), ByVal Match As Byte()) As Integer
            For I As Integer = 0 To Source.Count - 1
                Dim Matched As Boolean = False
                If Match(0) = Source(I) Then
                    For J As Integer = 1 To Match.Count - 1
                        Matched = True
                        If Match(J) <> Source(I + J) Then
                            Matched = False
                            Exit For
                        End If
                        If Matched Then Return I
                        Exit For
                    Next J
                End If
            Next I
            Return -1
        End Function
    
     Public Sub FindBytes()
            Try
                Dim B() As Byte = My.Computer.FileSystem.ReadAllBytes(Form1.FILE_LOCATION)
                Dim C() As Byte = {&H9, &H4, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H10, &HF, &H0, &HF, &H6A, &H1F, &H7F, &HF, &H5D, &H1F, &H0, &H0}
                Dim P As Integer = ByteMatch(B, C)
                If P = -1 Then
                Else
                    Debug.Write(P.ToString)
                End If
            Catch ex As Exception
            End Try
        End Sub
函数ByteMatch(ByVal源为Byte(),ByVal匹配为Byte())为整数
对于I,作为整数=0到Source.Count-1
匹配为布尔值的尺寸=False
如果匹配(0)=源(I),则
将J作为整数=1进行匹配。计数-1
匹配=真
如果匹配(J)源(I+J),则
匹配=错误
退出
如果结束
如果匹配,则返回I
退出
下一个J
如果结束
接下来我
返回-1
端函数
公共子FindBytes()
尝试
Dim B()作为Byte=My.Computer.FileSystem.ReadAllBytes(Form1.FILE\u位置)
Dim C()作为字节={&H9,&H4,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&HF,&H6A,&H1F,&H7F,&H5D,&H1F,&H0,&H0}
Dim P作为整数=字节匹配(B,C)
如果P=-1,那么
其他的
Debug.Write(P.ToString)
如果结束
特例
结束尝试
端接头
提前谢谢