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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

楼主: 站长苏飞

[教程] 根据传入的JS方法名和参数执行JavaScript

[复制链接]
发表于 2018-3-6 17:49:51 | 显示全部楼层

function calcActualValue(usageType, vehiclePurpose, purchaseValue, usedMonths){
    if(Number(purchaseValue) == 0){
        return "";
    }

    var rate = getDeprecationRate(usageType, vehiclePurpose);
    var actualValue = isNaN(rate) ? Number(purchaseValue)
        : Number(purchaseValue) * (1 - Math.min(rate * usedMonths, 0.8));

    return actualValue;
}

function getActualValue(usageType, vehiclePurpose,
                        purchaseValue, registerDate, inceptionDate) {
    if(!purchaseValue){
        return "";
    }

    if(!usageType || !vehiclePurpose){
        return purchaseValue;
    }

    var regDate = registerDate ? new Date(registerDate.replace(/\-/g, "/")) : new Date();
    var icpDate = inceptionDate ? new Date(inceptionDate.replace(/\-/g, "/")) : new Date();

    var usedMonths  = icpDate.getMonth() - regDate.getMonth()
        + (icpDate.getFullYear() - regDate.getFullYear()) * 12;

    if(regDate.getDate() > icpDate.getDate()){
        usedMonths = usedMonths - 1;
    }

    return calcActualValue(usageType, vehiclePurpose,
        purchaseValue.toString().replace(/,/g, ""), usedMonths);
}


我在C#写的调用代码:HttpHelper.JavaScriptEval(strjs, "getActualValue('101','01','66700','2016-04-22','2018-03-07 00:00')");

请问为什么会报调用的目标发生了异常呢?如果是js报错,那请问能不能看到那行出错了呢?还有如果这js使用了JQuery或者其他的js那要怎么解决呢?


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-3-6 17:59:48 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-3-6 18:00:16 | 显示全部楼层
看到这帖子真是高兴!
发表于 2019-6-1 21:33:38 | 显示全部楼层
请教苏神,下面是Winform程序,执行的时候也报
System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生
调试的时候出现这个报错,我已经改成X86
报错的地方(红色部分):
                private static Type SetScriptControlType(string strJs, object obj)
                {
                        ExecJsHelper.type.InvokeMember("Language", BindingFlags.SetProperty, null, obj, new object[]
                        {
                                "JScript"
                        });
                        ExecJsHelper.type.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, obj, new object[]
                        {
                                strJs
                        });

                        return ExecJsHelper.type;
                }
是什么原因呢?谢谢!
private void button3_Click_1(object sender, EventArgs e)
        {
            string strJs = string.Empty;
            string strPath = "D:\\Dev\\other\\snake\\snake\\BDZH.js";

            using (StreamReader sr = new StreamReader(strPath,Encoding.Default))
            {
                strJs = sr.ReadToEnd();
            }

            if (strJs != string.Empty)
            {
                string strContent = HttpHelper.JavaScriptEval(strJs, "getTeamList()");
                txtBox1.Text = strContent;
                webBrowser1.DocumentText = strContent;
            }
        }
发表于 2019-8-22 16:54:36 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-8-25 11:35:12 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-12-12 00:31:55 | 显示全部楼层
也是好东西
发表于 2020-10-10 17:55:30 | 显示全部楼层
你好,我想问下,怎么可以利用这个获取js混淆后的代码呢?

比如下面这种:

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}('v w={\'x\':6,\'u\':\'兼职阎王\',\'t\':\'/6/q\',\'r\':\'-1\',\'s\':\'/6/y\',\'z\':\'F话\',\'G\':[\'/3/J/5/4/E-D.2\',\'/3/J/5/4/p.2\',\'/3/J/5/4/B.2\',\'/3/J/5/4/C-H.2\',\'/3/J/5/4/n.2\',\'/3/J/5/4/f.2\',\'/3/J/5/4/c.2\',\'/3/J/5/4/d.2\',\'/3/J/5/4/b.2\',\'/3/J/5/4/a.2\',\'/3/J/5/4/7-8.2\',\'/3/J/5/4/9.2\',\'/3/J/5/4/e.2\',\'/3/J/5/4/g.2\',\'/3/J/5/4/m.2\',\'/3/J/5/4/k-h.2\',\'/3/J/5/4/j.2\',\'/3/J/5/4/o-i.2\',\'/3/J/5/4/l.2\',\'/3/J/5/4/A-11.2\',\'/3/J/5/4/18.2\',\'/3/J/5/4/I.2\',\'/3/J/5/4/19.2\',\'/3/J/5/4/17.2\',\'/3/J/5/4/16.2\',\'/3/J/5/4/13-.2\',\'/3/J/5/4/14.2\',\'/3/J/5/4/1b.2\',\'/3/J/5/4/1a-1h.2\',\'/3/J/5/4/1i.2\',\'/3/J/5/4/1g.2\',\'/3/J/5/4/1f.2\',\'/3/J/5/4/1c-.2\',\'/3/J/5/4/1d.2\',\'/3/J/5/4/1e.2\',\'/3/J/5/4/15.2\',\'/3/J/5/4/12.2\',\'/3/J/5/4/P.2\',\'/3/J/5/4/Q.2\',\'/3/J/5/4/R.2\',\'/3/J/5/4/O-N.2\',\'/3/J/5/4/K.2\',\'/3/J/5/4/L.2\',\'/3/J/5/4/M.2\',\'/3/J/5/4/S.2\',\'/3/J/5/4/T.2\',\'/3/J/5/4/Z.2\',\'/3/J/5/4/10.2\',\'/3/Y.2\'],\'X\':U,\'V\':\'/6/\',\'W\':0};',62,81,'||jpg|ManHuaKu|42buqieryu|JianZhiYanWang|40257|1601989128ejz9|YaRWnHZLrg6|1601989127BeT68jA3XuibOTQ1|1601989129NW3xhmxF9w2BOora|1601989130L9IprKAXZddkyYSy|1601989132CfbPbm2gjTMTKMyS|1601989131OX5rXsZEqAb9NWPJ|1601989125E7MxhGfhBDJ0E8Nj|1601989133FxY_eOfoWdshfP3Z|1601989124ROXw2bOsGQR0nxV0|13amKzoWR|8dcx|1601989121V9MO6scyY3kNzuTJ|1601989122nF0CsT|1601989119hhpjyFqaCIi0w_oD|1601989123h945JZ5FSQfIWkKs|1601989134e2xFd363J8sPs_Oi|1601989120mxAHvYXDtqw|1601989137S8TvtRUaEmmd6zvf|09|ncid|pcid|cid|btitle|var|cInfo|bid|08|ctitle|1601989117QH|1601989136g4suR_Md8kAGZydt|16019891351|WS0PwE7|16019891392syyFZGD|42|fs|tP1lrMQCLzbvmA|1601989116hL74Klxfgw_cWa1F||1601989091x3RNgYHlsZgkSemU|1601989090pGJv3LsHENuLvm5E|1601989089U6McDjOTOPGcv0O1|uP7ufThR|1601989092f1kAlFD|16019890953gIQ6Oy9hI_13Y7x|1601989094OqRVay6sO63SjfHw|1601989093OBWKBWymhKudHXaY|1601989088VkQHsQWFkLlpVsvV|160198908799_8fQ1HxWNajold|49|burl|bs|fc|222|1601989086vaz3rGVUPlMi5bhE|1601989084KQdmF9xVFstG79j0|UjgrrAGIvlkZG|1601989098yIpYKjFiu8jTwq5R|1601989111gshXsikQtH2l2Cf|1601989110pH6nymHP5ITQQmld|1601989099IyI7zbqG2n0WYMc6|1601989112_jlsoOovFmKbhFHE|1601989113flHhyIUSMVM9Yc1f|16019891164VX_pgnrjWN19Jda|1601989114cBUDuPKlguEdWysq|1601989106TXpn_k5T_FPc|16019891089VktxH9I5SvZKuWi|1601989102n7MeyFBrov4vrEO|160198910122mG1AlBJN0CsVUq|1601989100OUfGixttHZ30_49A|1601989103cR03tz1upXDHVyKq|160198910483M50AkYkdoUnvrD|ksR|1601989105o_jX3jreRxe1rTDl'.split('|'),0,{}))

有一些工具是可以直接反js混淆的,比如:https://www.html.cn/tool/js_beautify/
咱们这个js可以做到这种功能吗
发表于 2020-12-17 10:08:44 | 显示全部楼层
回复

使用道具 举报

发表于 2021-6-22 17:58:19 | 显示全部楼层
感恩无私的分享与奉献
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-19 17:16

© 2014-2021

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