Вы можете включить Microsoft.JScript в ваши ссылки на проекты.
Посмотрите пример из Рика Страла о том, как вы можете использовать Eval для получения ваших результатов.
Вот реализация, которую мне удалось отработать после некоторой отладки и изменений. Он возвращает тот же результат, что и ваш пример. Одна из проблем заключается в том, что .Net, похоже, не работает с переменной «arguments» функции. Поэтому я добавил 5 переменных в эту функцию, чтобы она заработала. Кажется, самое большее, что передается 3.
package Pack
{
class JSEval
{
public function MyEval(inputhash : String) : String
{
var ___ = 0;
var _= '';
var ____ = '';
var _______;
var ______;
var _____;
var ____ = (_ = function(_, __, ___) {
____ = '';
(___ = ___ ? ___ : (_____(_) - __));
for (; ___; --___) ____ += (function(_, __) {
return ______(_, __)
})(_, __++);
return ____;
})
var mywin = new Object();
mywin.decoded_hashes = {};
mywin.dec_hash = function(hash) {
(function(__) {
mywin.decoded_hashes[hash] = _(__, 8, _____(__) - 12) + _(__, 0, 5);
})((function(__) {
var ____ = '';
for (___ = 0; ___ < _____(__); ++___) ____ += ______(__, _____(__) - ___ - 1);
return mywin[_______(88, 11, -13)] ? __ : ____;
})((function(input) {
var res = mywin[_______(103, -2)] ? '' : '____';
for (var i = 0; i < _____(input); ++i) res += (function(input) {
return input > 111 ? (121 - input) : _______(input);
})(input.charCodeAt(i));
return res;
})((function(__) {
_______ = function(a,b,c,d,e) {
var arguments = new Array();
if( a != undefined )
arguments.push(a);
if( b != undefined )
arguments.push(b);
if( c != undefined )
arguments.push(c);
if( d != undefined )
arguments.push(d);
if( e != undefined )
arguments.push(e);
var _ = '';
var __ = 0;
for (var i = 0; i < arguments.length; ++i) _ += String.fromCharCode(__ += arguments[i]);
return _;
};
______ = function(__, ___) {
return __.charAt(___);
};
_____ = function(__) {
return __.length;
};
____ = (_ = function(_, __, ___) {
____ = '';
(___ = ___ ? ___ : (_____(_) - __));
for (; ___; --___) ____ += (function(_, __) {
return ______(_, __)
})(_, __++);
return ____;
})(__, 3, 3);
____ += _(__, 0, 2) + _(__, 8);
return ____;
})(hash))));
}
mywin.decodehash = function(hash) {
mywin.dec_hash(hash);
return mywin.decoded_hashes[hash];
}
return mywin.decodehash(inputhash);
}
}
}