我有一个存储十六进制数据的字符串 (\xEA\x...)。无论如何使用vbs运行该代码?也许对函数指针或类似的东西进行某种类型的转换。
我正在尝试做的 C 版本是:
unsigned char opcode[] = "\xc0\x...."
main()
{
int (*run)() = (int(*)())opcode;
run();
}
太感谢了。
您可以将函数指针(或函数引用)与 GetRef 函数一起使用:
dim fp : set fp = GetRef("ShowMessage")
call fp("Woosh")
function ShowMessage(msg)
msgbox msg
end function
要使其适用于函数命名通常为非法字符的任何字符串(如十六进制数据中的反斜杠),您可以在函数声明中使用方括号:
dim fp : set fp = GetRef("99 problems")
call fp()
' note: functions normally cannot start with a digit or contain spaces
function [99 problems]()
msgbox "but this aint one"
end function
唯一不能使用的字符是右括号:]