猿人学题库第九题——更复杂的动态js加密——日常采坑

44 篇文章 3 订阅
37 篇文章 58 订阅

猿人学题库第九题——更复杂的动态js加密

 

1.  首先 进入 浏览器的开发者工具,

打开就是 无限debugger,

这次不能用 never pause here 过无线debugger,后面发现无法调试,直至卡死

               

如果没有出现无限debugger,可能需要先把 cookie的sign参数删除,然后刷新

这里是用 document 发起的请求,谷歌是抓不到包的,所以要用火狐或fiddler工具抓包,

抓到请求后 会发现 script文件,里面是个js文件,在这里设置 cookie的sign参数,然后在reload,重新加载页面

点击 调用栈 ,查看JS 文件,一看很多 'x73\x75\x52' 这些编码字符串,先用 ob反混淆工具 得到 易读的JS(注意把 script 标签去掉)

                

复制 解混淆 后JS代码后,可以直接 搜索到 sign 参数,接下了就打断点调试了

可以看到 最后一个靓丽的紫色代码,location['reload']() 就是重新加载

2. 调试JS代码

为了方便调试,我直接复制代码在 浏览器的Sources面板下的snippet模块下运行调试

首先 新建一个 New snippet 文件,然后粘贴反混淆后的JS代码,右击点击运行 

会发现 还是 无限debugger,这里用到了sojson的加密混淆,可以去拿这个 案例 反出来看看

 

sojson具我所知,感觉就是多了个反调试话,它检测了 代码的格式化(因为只有格式化后的代码太好打断点调试)

我的思路:

1.  了解检测的方式,就是用 正则 匹配是否有空格 来判断代码是否格式化

2.  在所有的 正则下面都打下断点调试,RegExp正则对象,然后使用 test 比对代码,是否比对出有空格,没有则为true,反之。

3.  把 检测JS代码的地方,把原JS方法的空格和换行全部清掉变成一行即可过检测

4.  然后再把 源代码的debugger给删除掉,这时这个 无线debugger的方法不会被卡死

5.  在ob反混淆后是可以搜索到sign参数的,在sign参数哪里打上断点,前面全部过掉后会在 sign断点 断下

6.  在生成 sign 参数的时候,调用的时间函数Date,把时间改成题目中的特定的时间 1589023846363 即可,获取对应的 sign 值

 

总结:

这里主要 是需要ob反混淆代码出来,更好的易读JS代码,然后就是一个sojson加密混淆,把所有的正则检测JS代码格式化的地方全部过掉,就可以正常的调试原有的JS逻辑代码了,就能找出真是的参数值。

 

 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.含笑.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值