知乎 补环境逆向学习

声明:此代码仅供个人测试和学习目的使用,不得用于商业用途。使用此代码的风险由用户自行承担,作者不承担任何法律责任。通过使用此代码,即表示您接受并同意此声明。

 1.入口定位:

首先抓包分析,发现请求头中带有我们需要逆向的参数

 载荷和响应数据都没有什么需要注意的。

直接全局搜索试试呢?

运气很好,全局能搜索到

断住了,控制台输出看看

 发现和目标一致,继续深入,找到生成值的函数

终于,找到生成值的函数了

进入函数内部看看


2.逆向分析

 发现是一个webpack,我们可以通过webpack找到加载器扣核心代码再补环境

先找到核心代码的调度模块,经过发现是1514模块

怎么找到调度1514模块的调度器呢?直接全局搜索1514,被调度器包裹的就是loder

找到loder了,找到模块了,现在直接补环境就行了

webpack核心思路

首先找到调度器loder------》再找到加密函数所在的模块-----》调度器调用此模块------》调用成功后调用加密的函数------》传入加密函数的参数-----》生成逆向值

 

我们使用调度器调度了1514的函数然后发现D函数是生成值的函数,所以我们 尝试使用webpack的D函数去生成一个值

发现竟然能出值?不过不用想肯定是一个假值。因为我们还没开始做任何补环境的操作

 如果你想测试一下算法是否是一个假值,可以将随机的数都搞成固定的。可能是时间戳?

也可能是random方法。比如:

 把获取时间戳的函数置空或者返回一个固定数字,发现结果一样的再变化。再试试random

发现random返回固定数字后,生成的值是一样的了。同样的方法试试我们生成的值

明显不一样,所以是一个假值。这也是一种测试的方法,大家可以学习一下

3.补环境开始

首先挂一个proxy代理之后,发现webpackChunkheifetz非常干扰我们,我们可以加个条件把它去掉

这下只有这个--ZH--了,

补完之后,直接加个if判断把它去掉,避免干扰我们

最后window对象也算是补完了,但依然是一个假值,我们继续补别的环境

补完navigator之后值发生了变化但依然是假值

把几个能补的都补上之后,发现依然有毛病,

看看document有个toString,想想是不是检测tostring返回值了呢?,我们把document的toString 给尝试补上

讲所有对象都加上代理之后,报了getElementById的错误,我们去mdn上面搜一下,看看是函数还是什么,最后补成这样,就能过检测了

剩余的部分就直接缺啥补啥就行了。 

4.测试

5.有任何逆向需求,联系作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值