使用jint解码Jsfuck

时间:2017-04-02 11:17:24

标签: javascript c# jint

我试图使用jint来解码jsfuck,并且基于这个项目:https://github.com/enkhee-Osiris/Decoder-JSFuck(它是我发现的唯一可以正确解码jsfuck的人)。以下c#无法正常工作:

Jint.Engine engine = new Jint.Engine();
engine.SetValue("code", jsfuck_string);
string result = engine.Execute(@"function decode() {
return (/\n(.+)/.exec(eval(code.value.replace(/\s+/, "").slice(0, -2)))[1]);
}").GetValue("decode").ToString();

我收到以下异常:Line 2: Unexpected token ILLEGAL

1 个答案:

答案 0 :(得分:0)

看起来您想在Jint中运行以下JavaScript代码:

function decode() {
    return (/\n(.+)/.exec(eval(code.value.replace(/\s+/, "").slice(0, -2)))[1]);
}

但是,C#逐字字符串中的""(即@"...")仅代表一个"个字符。你实际上是在尝试运行这个JS代码,因为有一个不匹配的"字符,这个代码无效:

function decode() {
    return (/\n(.+)/.exec(eval(code.value.replace(/\s+/, ").slice(0, -2)))[1]);
}

尝试使用""replace(/\s+/, "")替换C#逐字字符串""""中的''