VBS从字符串运行代码

时间:2013-06-25 22:34:27

标签: vbscript hex

我有一个存储十六进制数据的字符串(\ xEA \ x ...)。无论如何使用vbs运行该代码?也许做某种类型的转换到函数指针或类似的东西。

我正在尝试做的C版本将是:

unsigned char opcode[] = "\xc0\x...."
main()
{
    int (*run)() = (int(*)())opcode;
    run();
}

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以将函数指针(或函数引用)与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

您不能使用的唯一字符是结束括号:]