2017-02-12 4 views
0

Ich habe eine verschleierte (p,a,c,k,e,d) Funktion von JavaScript.JavaScript "Packed" -Funktion in CSharp

string value = @"eval(function(p,a,c,k,e,d) 
      {while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]); 
      return p} 
('3("3b").3a({39:\"5://1b.1a.19.8:18/38/v.37\",36:\"5://1b.1a.19.8:18/i/35/34/33.32\",31:\"\",30:\"2z\",2y:\"2x\",2w:2v,2u:\"7\",2t:\"2s\",2r:[],2q:{2p:\'#2o\',2n:22,2m:\"2l\",2k:0}});b f;b k=0;b 6=0;3().2j(2(x){a(6>0)k+=x.17-6;6=x.17;a(0!=0&&k>=0){6=-1;3().2i();3().2h(2g);$(\'#2f\').j();$(\'h.g\').j()}});3().2e(2(x){6=-1});3().2d(2(x){16(x)});3().2c(2(){$(\'h.g\').j()});2 16(x){$(\'h.g\').2b();a(f)2a;f=1;$.29(\'5://12.9/15-28/27.15?26=25&24=23&21=20-1z-1y-1x-1w\',2(14){$(\'#1v\').1u(14)})};3().1t(\'1s\',2(){b 13=3().1r();13.1q(\'1p\',2(){11.10(\'z-y\')[0].w[1].1o=\"5://12.9\";11.10(\'z-y\')[0].w[1].1n=\"<u>1m - 1l 1k 1j & 1i</u>\"});a($.c(\'4\')==\"d\"){t.s(\"5://r.q.p/o/7.n\",\"m 9 1h\",e,\"l\")}1g{t.s(\"5://r.q.p/o/d.n\",\"m 9 1f\",e,\"l\")}});2 e(){$.c(\'4\')==\'7\'?4=\'d\':4=\'7\';$.c(\'4\',4);1e.1d.1c()};',36,120,'||function|jwplayer|primaryCookie|http|p02887336|html5||to|if|var|cookie|flash|switchMode|vvplay|video_ad|div||show|tt2887336|button2|Switch|png|images|tv|flashx|static|addButton|this|center||childNodes||featured|jw|getElementsByClassName|document|streamin|container|data|cgi|doPlay|position|8777|213|211|95|reload|location|window|Flash|else|HTML5|Storage|Sharing|Video|Free|Streamin|innerHTML|href|contextmenu|addEventListener|getContainer|ready|on|html|fviews|fb98c55a544241de2464a88086a6b0c9|1486917733|186|182|2887336|hash||2ca0tpqawtre|file_code|view|op|index_dl|bin|get|return|hide|onComplete|onPlay|onSeek|play_limit_box|false|setFullscreen|stop|onTime|backgroundOpacity|Arial|fontFamily|fontSize|FFFFFF|color|captions|tracks|start|startparam|primary|326|height|580|width|2638|duration|skin|jpg|lhl2j9yhfp1s|00085|01|image|mp4|rwi7bsgc5huzcg3h5fpsfen3362uwfp4cyzyo2mavczsvbbx4tnesmwhdteq|file|setup|vplayer'.split('|')))" 

Ich versuche jint zu verwenden, um den Wert der oben function zu interpretieren und zu erhalten, aber wenn ich die Aussage in jint engine ausführen wirft es eine Ausnahme für jwplayer is not defined.

Ich weiß, warum die Ausnahme ausgelöst wird, aber ich möchte nur den Wert von oben erhalten. Aber jint führt die ganze Funktion und endet dann mit einer leeren Funktion, die nicht existiert und wenn es versucht, es auszuführen, wird eine Ausnahme ausgelöst.

Ich möchte nur, dass es den Wert in einer Zeichenfolge zurückgibt, und es sollte es nicht weiter ausführen. Ich habe bereits versucht, nach einer Antwort zu suchen, aber bisher nichts gefunden.
Ich verwende den Code wie folgt:

Jint.Engine jEngine = new Jint.Engine(); 
var linkString = jEngine.Execute(value).GetCompletionValue().ToString(); 
var arrayFile = linkString.Split(' ', '\n'); 

ist etwas, was ich bin hier fehlt? Wenn jemand etwas Licht darauf werfen kann. Das wird sehr geschätzt werden. Danke

+0

Erstens, das ist nicht gültig C# -Code, den Sie gepostet haben, sieht aus, als ob Sie die doppelten Anführungszeichen nicht korrekt entkam. Zweitens liegt der Fehler wahrscheinlich daran, dass Ihre verschleierte Funktion versucht, eine Methode oder ein Objekt mit dem Namen 'jwplayer' (scheinbar ein eingebetteter Video-Player) aufzurufen. – DavidG

+0

Ich weiß, es ist eine Methode/ein Objekt, aber wie kann ich das sicherstellen? Jint' nennt es am Ende nicht? Ich brauche nur den Rückgabewert, der in der Hauptfunktion generiert wurde. – Ahmar

+0

Nun können Sie sehen, dass es 'p' zurückgibt, was der erste Parameter ist, der der erste String-Parameter ist, der an ihn übergeben wird. – DavidG

Antwort

0

Ich denke, das Problem war eval am Anfang der gepackten Funktion. Nach dem Abrufen des Werts wurde der Code ausgeführt. Also habe ich den eval Teil entfernt und jetzt funktioniert es wie erwartet.