猿人学第二题记录

猿人学第二题记录

加密分析

**首先还是抓包来查看明文的数据返回
查看数据
找到返回数据的请求,查看它的请求头,发现是get请求(验证发现不能直接请求,去看它的cookie

通过多次对比调试,发现就是m是主要的cookie,前一个带的是一个10位的时间戳,m是一个加密+“|时间戳”
在这里插入图片描述
cookie的话可以直接使用hook,定位到这个cookie生成的地方,再进行跟栈

这里hook工具用的是fiddler中的编程猫插件
在这里插入图片描述
跟栈到生成的位置,可以发现这句话特别长
在这里插入图片描述
先输出看看各个函数的值,看m是在哪儿生成的,稍微整理了一下,相当于是函数中传了一个函数的参数,找到了最里面传入的值:
在这里插入图片描述
通过对其中的内容逐渐的输出,可以看到找到了这个m的值:

那么m的值就是下面这个代码 + “|” + 时间戳
在这里插入图片描述

扣代码

首先将加密的那段地方扣下来,发现传入的第二个参数就是13位时间戳,可以直接先写死

先将目前能看见的缺少的函数扣下来,运行之后再缺啥补啥

记得加上 window = global
在这里插入图片描述
再将其他的继续扣下来
在这里插入图片描述
再补了这个之后出现了内存占满的情况,所以应该是在某个地方进入了死循环,可以在浏览器中运行代码(防止因为nodejs中环境问题导致),打断点调试看看
在这里插入图片描述

运行到这里的时候,发现一直在这个for循环中,所以看看是如何进入到这个循环的
在这里插入图片描述
找了一下关系之后,发现有一个判断,发现可能是上面这个三元表达式在捣鬼
在这里插入图片描述
于是直接将前面这个判断的值改为true试试,发现能继续执行后面的语句了,出现了新的未定义函数
在这里插入图片描述
混淆中有时候会对混淆的顺序进行打乱,于是将这个自执行函数添加到代码中,发现又内存溢出了,现在又进行debug调试
在这里插入图片描述
直接在这个函数前面打上断点调试,发现进了“setCookie”之后又出不去了,于是查看是因为什么导致的

发现是在这里导致的,取决于_0xa791b4的值,原本是false,现在我将他改为true试试
在这里插入图片描述
发现不再进入循环了

在添加这个函数之后,发现这个函数出现了报错,将这个函数后的括号删掉,有括号就是一个自执行函数,其中有的内容确实还未定义。
在这里插入图片描述
再继续补了好多之后,出现了:
在这里插入图片描述
将它补充在最上面

window.navigator = {}

后面又继续补代码,可以这样缩起来再复制,不然容易漏掉
在这里插入图片描述
终于当我补完了代码之后,使用console.log进行输出的时候,出现了这个错误:
在这里插入图片描述
于是在console哪里打上断点调试一下

进入之后是这个,重写了console并塞了个死循环
在这里插入图片描述
于是我学习了一下别人的写法

所以我使用了下面这种输出格式:

log = console.log //写在最前面,这样虚拟机里

log(a)

然后将时间戳和"|"补上
在这里插入图片描述
然后在python中调用,获得数据:
在这里插入图片描述

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值