今天继续来做一个webpack案例:糖堆webpack
找加密参数+定位加密位置
负载加密:
我们用xhr断点定位:

xhr断下来的栈没有加密参数,先往上一个栈看:

上一个栈加密参数是传过来的,咱直接看最下面一个栈:

没有传参看不懂,先不看,顺着往上找看一下能不能缩小范围:

这里n是密文但是不是外部传入的,很可能是在函数内部加密之后这里的n同步变成了密文,我们打上断点看看:

防止运行过去我们打两个断点,然后触发,往下运行一下:

此时还是明文,但执行完这里的代码后n变成了密文,说明加密逻辑就在这里,这里是个三目运算符,看一下执行❓后还是:后:

执行❓后,运行一下的代码:

啥也没有,重新触发接口(因为我们虽然在控制台啥也没运行出来但是为了防止有影响,需要重新触发接口),进函数:

依旧明文,一步一步运行观察右侧作用域:

加密位置已经找到了:

扣代码+补环境
找到加密位置将核心代码扣下来,并运行:
这里我们可以扣里面的函数,但我觉得webpack更简单,所以我用webpack拿下r:

将r拿下来,然后再r赋值的地方打上断点,刷新网页:

进入n中到加载器的地方,观察一下加载器,后面有模块,只复制加载器:

将函数入口注释掉,然后运行看报错:

补上window对象,再运行:

设置全局变量导出加载器,运行:

补上这句话开始补模块:
console.log('所需模块:', e) // 不是次次都是e看,加载器参数
运行查看所需模块:

一直补即可,或者可以批量补,方法在之前讲过,补完之后长这样:

然后运行看报错:

o在这里:

然后补过来再运行:

补上密码再运行:


补上i,再运行:

不报错了,封装一下并输出一下结果:

完成了✌
697

被折叠的 条评论
为什么被折叠?



