来自C#内的Eval()javascript代码

时间:2012-07-13 13:22:44

标签: c# javascript

我想eval()并从我的C#程序运行这个javascript代码,但它甚至都不会调试。 我怎么能这样做?

string jsFunc = "eval(function(p,a,c,k,e,d){while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+c+'\\b','g'),k[c])}}return p}('8 4=\'6/13!)!6/12))6/19))))2!,!18*!16!15*!,!:14*-!17:9*!,!26***<\';8 5=\"\";20(3=0;3<4.24;3++){10(4.7(3)==25){5+=\'\\&\'}11 10(4.7(3)==23){5+=\'\\!\'}11{5+=21.22(4.7(3)-1)}};5;',10,27,'|||i|s|m|Nbui|charCodeAt|var||if|else|bct|spvoe|521|8477|_|73|2689|njo|for|String|fromCharCode||l{�ength|28|4451'.split('|')))";

        JSEval.JSEval eval = new JSEval.JSEval();
        string expression, result;

        Console.Write("Выражение: ");
        expression = jsFunc;

        try
        {
            result = eval.Eval(expression).ToString();
        }
        catch
        {
            result = "!!!";
        }

1 个答案:

答案 0 :(得分:3)

如果我被允许根据可用的细节进行猜测,那么一个潜在的问题是字符串中的奇怪字符序列:

...||l{�ength|28|4451'.split('|')))";

也许你应该删除{�并重新运行代码。

详细说明“代码不调试”这个短语的其他含义: