
猿人学-JS逆向第一届第2题

猿人学-JS逆向第一届第2题
hello,大家好,这里是Xxi,
今天给大家带来猿人学-JS逆向第一届的第2题
题目内容
目标网站:https://match.yuanrenxue.cn/match/2
题目2:提取全部5页发布日热度的值,计算所有值的加和,并提交答案。
加密分析
我们先来分析一下加密内容
1 | cookie: m=0fabf61d4bc80ce1855b9faa426e924e|1749466601000; sessionid=你的sessionid; |
sessionid:跟上题一样,指的是你本身的账号id
那这时候就剩下m值了,所以加密部分就是在m值的加密
加密定位
这题的加密位置是在cookie的加密
这道题cookie的加密机制是每隔30秒左右进行cookie的密文更新,
要进行cookie加密的定位要使用一段hook脚本:
1 | (function (){ |
第一步:监听脚本
在cookie刷新后,就会断住
第二步:执行hook脚本
将hook_cookie的代码段执行,然后关闭脚本监听
点击下一步的时候会出现一个无限debugger,跟上一题教的方法一样,直接解开就行
这时候,m值就会在脚本里面显示:
第三步:加密定位
我们先看一下调用的堆栈:
当前是停在set,也就是我们的脚本位置
那我们往下面的堆栈去看,
点开后出现了document,然后这个堆栈用的也是ob混淆的方法,
按照以往的经验来看,原文应该是想表达:document.cookie=xxxxxx
那我们有两个方法可以验证是否是在这里进行了加密:
1.选中代码段,将鼠标悬停,会显示原文内容:
2.将混淆部分在控制台输出:
由此可以判断,就是这个堆栈进行的加密
解ob混淆
和上一题一样,放到猿人学的解混淆工具里面进行解混淆
判断是否解混淆成功的依据是,代码能不能读的通读得懂
逆向过程
将加密的堆栈进行解ob混淆后,我们将解混淆后的代码拿来分析:
1 | function _0x3aee97(_0x10bf65, _0x5b59ce) { |
_0x5158ae:空值
_0x5b59ce:无用
_0x10bf65:时间戳
_0x38278c:时间戳传入进行加密
加密部分改写
1 | function _0x3aee97() { |
将加密部分改写后,进行补环境,具体方法就是:差什么就补什么
补环境是个很费时间的事情,只能是慢慢抠,没什么难点。
因为每个人的混淆后的函数名都不一样,这里就不展示代码了,
有需要的也可以联系我微信获取js代码,微信:weixi040917
解题代码
1 | import requests |
运行结果答案为:248974
结语
这是我的第一篇教学文章,感谢各位的支持。
后续会继续更新下去,还请多多支持,有不懂的地方可以直接与我交流和指正!
微信:weixi040917
- 标题: 猿人学-JS逆向第一届第2题
- 作者: Xxi | 晞晞的小世界
- 创建于 : 2025-06-09 18:53:58
- 更新于 : 2025-06-09 12:42:04
- 链接: https://xixixi.cc/2025/06/09/猿人学-JS逆向第一届第2题/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。