HEX("48 6F 6F 6B 43 61 6C 6C 62 61 63 6B") = ASCII("HookCallback")
HEX("47 65 74 41 73 79 6E 63 4B 65 79 53 74 61 74 65") = ASCII("GetAsyncKeyState")
No si... es obvio que eso es formato Hexadecimal, mi sensación de extrañez viene dada a que el término "hex type" no significa absolutamente nada, y hay dos nombres codificados (HookCallback, GetAsyncKeyState) en lugar de uno (GetAsyncKeyState) por lo que no tiene equivalencia con lo que el usuario intentaba dar a mostrar como equivalente, así que no llegaba a estar muy claro lo que el usuario busca.
Además de que detectar esos bytes/strings en un archivo executable no lo convierte en virus como tal, ya que para empezar el nombre "HookCallback" en realidad puede ser cualquier otro nombre que el desarrollador haya querido darle a la función de callback del hook (
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nc-winuser-hookproc ), aparte de que esto no tiene por que implicar que sea un código malicioso, ni mucho menos el uso de la función
GetAsyncKeyState.
Por ende, considerar que un exe se trata de un virus simplemente por encontrar uno de esos dos strings, o ambos, me parece completamente inapropiado/inefectivo, más que nada por que cualquier código que use la función
GetAsyncKeyState para otros menesteres y/o que haya declarado un hook de cualquier tipo (y aunque este fuese un hook del teclado o el ratón no-malicioso) y casualmente haya declarado una función con el nombre "HookCallback", no se salvará de un falso positivo en la frente por un "escaner" de este estilo.
Pero lo q no se como es que Obtuvieron esa Signatura HEXADECIMAL.
Puedes convertir un string a ese formato hexadecimal delimitado por espacios en blanco, así por ejemplo:
Dim names As String() = {"HookCallback", "GetAsyncKeyState"}
Dim hexNames As String() = Array.ConvertAll(names, Function(str) BitConverter.ToString(Encoding.Default.GetBytes(str)).Replace("-"c, " "c))
For Each str As String In hexNames
Console.WriteLine(str)
Next str
Saludos.