http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 14817|回复: 8

[咨询站长] C#对于 eval加密的JS 有什么办法解密获取跳转URL

[复制链接]
发表于 2014-5-7 14:28:05 | 显示全部楼层 |阅读模式
1金钱
最近由于需要取得A网页中的一个链接对于的URL(经过了一次跳转)。

通过C#代码取得了代码
发现代码是加密的

<!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="pragma" content="no-cache" />
            <noscript><meta http-equiv="refresh" content="0; url=/"></noscript>
            <script>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}('(3(){(3(i,s,o,g,r,a,m){i[\'E\']=r;i[r]=i[r]||3(){(i[r].q=i[r].q||[]).D(C)},i[r].l=1*A B();a=s.F(o),m=s.G(o)[0];a.K=1;a.J=g;m.z.I(a,m)})(H,L,\'p\',\'//9.v-7.d/7.x\',\'2\');2(\'w\',\'y-u-4\',\'n.d\');O 6=M;3 5(){Y(6)11;6=10;8.b=k}2(\'Z\',\'15\',8.b);2(\'h\',\'13\');k=\'14://9.W.j.f/Q/P/X?t=c-e&m=N&R=c-e\';2(\'h\',\'S\',\'直达链接\',\'V\',\'j.f\',{\'U\':5});T(5,12)})()',62,68,'||ga|function||redirect|redirected|analytics|location|www||href|joyo010b|com|22|jp||send||co|optbqx|||smzdm||script|||||27058866|google|create|js|UA|parentNode|new|Date|arguments|push|GoogleAnalyticsObject|createElement|getElementsByTagName|window|insertBefore|src|async|document|false|AN1VRQENFRJN5|var|product|gp|tag|event|setTimeout|hitCallback|ht|amazon|B00J2PQOS6|if|set|true|return|1000|pageview|http|page'.split('|'),0,{}))
</script>
        </head>
    </html>

但是通过网页的EVAL解密,可以得到解密后的JS。

由于我是要在winform程序中处理这个解密后的跳转URL,因此想咨询各位达人

有什么办法可以在winform中对获取的代码进行解密。(含有加密的跳转链接是 http://haitao.smzdm.com/go_ht/277659/0



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-5-7 14:38:52 | 显示全部楼层
执行JS,可以在本站搜索一下,
回复

使用道具 举报

 楼主| 发表于 2014-5-7 14:41:14 | 显示全部楼层
但是他的JS是eval加密过的
怎么办呢
1、先获取加密的JS
2、然后通过C#的函数解密加密后的JS
3、然后在查找网址吗?

如果是的话
您论坛有执行JS的函数,可是如何解密EVAL呢?
回复

使用道具 举报

发表于 2014-5-7 14:54:19 | 显示全部楼层
给你个解密函数:
[C#] 纯文本查看 复制代码
        private string Eval(string stringjs)
        {
            string MyJs = "function Eval(code){code2=code.replace(/^eval/,'');return eval(code2);}";
            object[] _params = new object[1];
            _params[0] = stringjs;
            MSScriptControl.ScriptControl js = new MSScriptControl.ScriptControl();
            js.Language = "javascript";
            js.AddCode(MyJs);
            string result = js.Run("Eval", _params);//NET4.0以下为js.Run("Eval",ref _params).ToString();
            return result;
        }
回复

使用道具 举报

发表于 2014-5-7 14:58:44 | 显示全部楼层
解密的部分为eval(加密部分),注意它的范围。
回复

使用道具 举报

 楼主| 发表于 2014-5-7 15:36:02 | 显示全部楼层
cload 发表于 2014-5-7 14:54
给你个解密函数:
[mw_shl_code=csharp,true]        private string Eval(string stringjs)
        {

谢谢你
太给力了
我试试看
回复

使用道具 举报

 楼主| 发表于 2014-5-7 16:19:48 | 显示全部楼层
非常感谢你帮了我的大忙,真的太感谢你啦!
楼上的解答是可以的
已经测试
非常厉害!
回复

使用道具 举报

发表于 2014-5-8 10:26:17 | 显示全部楼层
使用工具跟踪JS 最简单的办法就是:在被eval调用的地方下段,当执行完这个JS之后到临时JS文件中找找,肯定有一段被还原之后的JS代码
回复

使用道具 举报

 楼主| 发表于 2014-5-15 23:57:47 | 显示全部楼层
秋日的枫叶 发表于 2014-5-7 15:36
谢谢你
太给力了
我试试看

要使用MSScriptControl需要引用com组件 Microsoft Script Control 1.0。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 08:50

© 2014-2021

快速回复 返回顶部 返回列表