七麦网app榜单链接:https://www.qimai.cn/rank
七麦网analysis参数激活成功教程请查看妄为写代码,链接为:https://mp.weixin..com/s/1E_ONUnMwTFozd9-dB70Yw
前言
在此非常感谢【 妄为写代码】,我一直都没有接触过js混淆这块,想找个简单的js混淆学习,也没有接触过chrome的断点调试,通过作者的讲解,已经了解了chrome的断点调试,也学会了使用snippets进行js测试,也了解了打断点的需要注意的函数,收获很大,再次感谢。该作者还有其它网站解析的原创文,有几篇写的也很好,有需要的朋友可以关注下。
写这篇意义,1.记录自己的学习情况;2.在原文的情况下,进一步完善。
问题
原文只分析到,第一页的情况,获取了第一页的analysis,但是如果滚动条往下滚,可以发现analysis是有了新的变化,同时需要以下7个参数,并且你继续往下滚,每次的analysis都是会变的。

查看断点,发现出现以下函数:

解决
其实最终还是要进入到这个函数体里面:

红色框框的代码是转折的重点,一步步点击,你可以看到,这个函数把参数都放进m这个数组里面去了,同时绿色的框框,把m数组进行了排序,生成了一个字符串。可以看出,就是把所有参数合并在一起了。再往下走,你会发现进入了v函数

就是原文里面讲的v函数。把拼接的参数,先运行一遍v函数,运行完你会发现m变成这个了

再往下运行,你会发现,最终的m是这样

获取到这个m就成功了,后面跟原文一样,执行v(C(m_str,b_str))就行
这里说一个改动的地方,原文是取了44的长度,这里直接返回整个长度。
在此附上我所有的代码
qimai .js
function C(a, n) {
// n || (n = s()), a = a["split"](""); for (var t = a["length"], e = n["length"], r = "charCodeAt", i = 0; i < t; i++) a[i] = m(a[i][r](0) ^ n[i % e][r](0)); return a["join"]("") } function m(n) {
var t = "fromCharCode"; return String[t](n) } function v(n) {
return n_fun(encodeURIComponent(n)["replace"](/%([0-9A-F]{2})/g, function (a, n) {
return m("0x" + n) })) } function n_fun(t) {
var n; n = e_from(t.toString(), "binary"); return q_fromB(n) } function e_from(t_str, b)
讯享网

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