Bueno hola foro, Como dice el titulo, tengo un
Escanear Hexadecimal para identificar archivos, Pero es lento y segun me he documentado se puede mejorar si :
1) Convierto la cadena Hex a Bytes.
2) Obtengo los Bytes del archivo .
4) Comparo la Cadena Hex convertida a Bytes con los Bytes del archivo.
Bueno ahora lo que tengo hecho hasta ahora : Cadena Hex Almacenada en una variable XML:Dim xml = <?xml version="1.0"?>
<signatures>
<signature>
<name>Archivo1</name>
<hex>58354f2150254041505b345c505a58353428505e2937434329377d2445494341522d5354414e4441</hex>
</signature>
<signature>
<name>Archivo2</name>
<hex>f649e7cc1e00d37e7f3bc85fff3486ac6de91433aa3a39ef1b114d37b534b8323f6ff67132638a3fe2f2afb4aaf9b7e3b4669bb3cab028298aab533c5d73546cdd396fd58c2c7734c50bca68eb709b889a086fb3db5f8ae533a4d5816e8c5f560983695efa14e291c204b1316e657773</hex>
</signature>
</signatures>
Aquí el código para leer el XML y Convertirlo a Bytes:Private Sub hexttoBytes()
Dim Str As New StringBuilder
For Each signature As XElement In xml.Root.Elements
stringToByteArray(signature.<hex>.Value)
Next
End Sub
Public Shared Function stringToByteArray(text As String) As Byte()
Dim bytes As Byte() = New Byte(text.Length \ 2 - 1) {}
For i As Integer = 0 To text.Length - 1 Step 2
bytes(i \ 2) = Byte.Parse(text(i).ToString() & text(i + 1).ToString(), System.Globalization.NumberStyles.HexNumber)
Next
Return bytes
End Function
Aquí el código para Obtener los Bytes del archivo a comparar ' Opendia IS OPENFILEDIALOG
Dim result As DialogResult = OpenDia.ShowDialog()
If result = Windows.Forms.DialogResult.OK Then
Dim path As String = OpenDia.FileName
Try
Dim bytesFile
As Byte() = File.
ReadAllBytes(path
)
' BytesFile es donde se almacenan Los Bytes del archivo a comparar
' Necesito saber Como los Comparo con los Otros Bytes que antes eran HEX
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
AHORA LAS DUDAS, SEGÚN LO QUE TENGO ECHO , No logro Como hacer Para Comparar los Bytes que antes eran HEX con los Bytes del archivo. Lo que quiero lograr seria algo como esto : 'Donde BytesFiles es el Archivo y BytesHex eran la Cadena Hex que ahora son Bytes
' En caso de que los Bytes sean Iguales. lanza el mensaje de que encontró el archivo o no.
If bytesFile = BytesHex then
Msgbox("Archivo Coincide")
else
Msgbox("Archivo No Coincide")
end if
Gracias De Antemano