ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

猿人学 第六题 js混淆 - 回溯

猿人学 第六题 js混淆 - 回溯 发现加密参数m和q先破解m找到发请求的位置点进去进来之后就会发现d就是请求体在这里下个断点发现r就是m的加密函数参数分别是时间戳和1进来之后到这里我又继续跟了几步发现不太好整所以全撸下来最后一点代码稍微改一下function z(pwd, time) { var n _n(jsencrypt); var g (new n); var r g.encode(pwd, time); return r; } console.log(z(1787699812000, 1))然后运行报错缺少window在最前面补上window global但是经过观察发现在代码里人家自己也定义了window这个一定要干掉因为他会覆盖掉我们在外面定义的再次运行运行完了但是输出不理想说明有环境检查从上面的位置开始一步步往里跟按我下面的步骤这样一步步往里跟跟的同时在我们的js代码里用console.log对比变量的值当到这里时发现网站上 this.DB 28 我们的代码显示undefined就基本找到问题了搜索查找DB的赋值位置在我们的代码里也找到这个位置发现这个位置根本没有执行观察到上面 !![]])(![] !![] !![]))这一大坨明显是环境检测去浏览器看一下是多少直接给他定死定死之后直接跑通了至于我们最开始提到的请求参数其实第一次发是一个第二次发就是前两个每次发请求都要带上前面每次的时间戳并且第几次发m就要运行几次en function (t, p) { for (var i 1; i 5; i){ ret z(t); if (p i) return ret; } }源码下载 猿人学/06题 js混淆-回溯
返回列表