通过C#调用,实现js加密代码的反混淆,并运行js函数

前一篇我测试了vba调用htmlfile做反混淆,并执行js加密函数的代码。本文换成C#实现。

联系QQ:564955427

C#操作JS函数,可以通过ScriptControl组件,但这个组件只能在x86进程下运行。如果在X64下,可以使用Htmlfile组件。

C#调用com组件需要使用CreateInstance,当然也可以通过调用vb.net中的CreatObject来实现,或者反编译vb.net里面的CreatObject来修改成C#代码,只要解决了这个问题,剩下的就好办了。

通过调用htmlfile实现所需的功能,具体参考vba代码。

C#代码不再赘述。

 

 

本文地址:http://www.cnblogs.com/Charltsing/p/CSharpEval.html

 

 

给个测试方法

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('(1(){1 4(0){6(0){2 0};2 5};7 3=4();8(3)})();',9,9,'a|function|return|ret|test|123|if|var|alert'.split('|'),0,{}))

  

1. 打开 谷歌 或者 火狐 浏览器
2. 按 F12 打开控制台
3. 把代码复制进去
4. 删除开头 eval 这4个字母
5. 按回车键 

结果如下

"(function(){function test(a){if(a){return a};return 123};var ret=test();alert(ret)})();"

  

posted @ 2016-10-04 23:01  Charltsing  阅读(2901)  评论(0编辑  收藏  举报