介绍
查看搜索的接口,很明显需要这几个参数
{
keyword: "2N7002",//搜索输入的关键词 font_ident: "945a41f33fc9693c", //如下图,第一次访问的页面 返回的html里找 v: "69" //时间戳 t: "8" //加密1 s: "8fc0bf84f" //加密2 }
讯享网

加密分析
这种一大坨代码的,我最喜欢的是通过xhr - 启动器 根据Ajax往上跟栈


这里看到n就是要发送的数据,下断点后 参数有在这,n是函数的参数,所以再往上看谁调用的它(看谁传的)
搜索得到 this.currentParams = a.deserializeParams(this.options.remote.params)

this.options又等于t.extend(!0, {}, o, t.fn.pagination.defaults, i) i是上面传过来的

懒得写了,直接一直往上跟,跟到混淆的那地方

这里偷懒大法 神技-ast(只解了个大数组就好看多了)
很明显 这里就到站了。


讯享网_0x36dfe8['v'] = JSON["stringify"](new Date()["getTime"]()); 4 == _0xc145e3["pageType"] && (_0x36dfe8["search_type"] = 1); '{}' !== JSON["stringify"](_0xc145e3["filterParams"]) && (_0x36dfe8["se_item"] = _0xc145e3["se_item"], _0x36dfe8["params"] = _0xc145e3["filterParams"]); _0x36dfe8 = _0x3ea76b["getSpecialKey"](_0x36dfe8);
这里 获取了v之后,对象_0x36dfe8就改变了,看到是进行了getSpecialKey函数的操作,所以这行下断点,再单步走进去看。
俩参数就在这里完成的
下面就要开始把js代码扣下来用了。

扣代码
times_int = int(times) // times是时间戳 _0x5d4ff8 = 0 _0x24ee4f = times[len(times) - 1:] print(_0x24ee4f) s = str(math.ceil(times_int / int(_0x24ee4f)))
现在讲扣js代码吧
全选代码复制粘贴到notepad++
折叠,搜索,改写

主要的生成函数 在_0x54521b 对象里,理论只要把它弄下来就好
但是 因为混淆的,还要扣大数组啊,解密函数啊,Object啊
我用的ast解版,所以 偷懒了
思路:
1.这个自执行,_0x54521b是传入的参数,这里去掉自执行函数改写_0x54521b 定义空对象
然后window肯定要带上的。

2.改写t和s的返回方式

3.就这样跑一下代码,会提示_0x39a116未定义,去网站代码复制一下这个对象
这是个混淆的,增加你代码阅读难度,,可以用ast解。。这里直接复制吧

再跑一下,应该就差最后一个了 ,提示_0x54521b.md5未定义还是啥来着
这里去补一下魔改的md5代码,
想直接从网站扣的,哎,难顶 太难扣了,直接找个通用的吧

这两个值被改了,改写,再补到对象上,再小小的修改下代码就完成了。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/39793.html