总体来说算是比较easy的js加密 由于涉及到部分隐私 就简单说下该参数的加密思路 以马蜂窝为例 该网站使用的是CNZZ统计流量 首先抓包看参数,如图 可以比较清晰地看到 cnzz的统计是发起的这个get请求 然后看下这些参数 我们不确定的参数有 id / cnzz_eid / umuuid / rnd ,除了这几个 其他的应该都是常量或者可以轻易伪造的 如时间戳以及屏幕大小等 为了搞清楚这几个参数的来由 我们可以再次刷新页面重新抓一次包(可以换个浏览器)看看有什么变化 可以看到 变化的有 cnzz_eid / umuuid / rnd 这几个参数 其他的都是不变的常量了(时间戳那个有变化 可以不用管 比较明显的) 于是接下来需要做的就去网站上看js看源码 逆向解析这几个参数! cnzz_eid: rnd: umuuid: 可以在网页的js源码里轻易地找到这几个参数生成的方式,这里重点讲一下umuuid,其他两个参数都比较容易地直接用python重写,这个参数需要用到pyexecjs来模拟,并且经过测试,主要也是由这个参数来决定你的这次伪造是否有效。 先下个断点,可以看到this.a.R这个参数就是我们要的umuuid,然后去追溯它的来源 这里可以看到a一开始是一个空的集合,它的值是后续的js赋值上去的,继续找a.R 这里可以看见a.R是通过Ba这个方法生成的,我们用node.js模拟运行一遍,把该复用的方法全部剔出来,把document和window操作全部替换调即可。 OK 大功告成 Ending Github传送门 持续更新ing (欢迎各种star与fork) 联系方式: 442891187(QQ) 如有权益问题可以发私信联系我删除