js逆向研究【响应结果解密思路与案例实战1】

什么是响应结果加密

我们在爬虫过程中,抓包之后,针对内容关键词搜索无法定位到数据接口,并在响应的接口内发现有编码/不可读的长字符串等,我们可以判定其为响应结果加密。

如何针对将响应结果还原为可读的数据

  1. 如果响应结果有特殊关键词,优先搜索特殊关键词
  2. 如果没有特殊关键词,搜索关键词JSON.parse
    两者结合js断点调试与控制台输出的方式,还原函数与依赖,完成逆向js代码的构建。

案例分析

加密响应的请求

待解密的数据

关键词搜索 encrypt_data

定位解密js文件
找到疑似解密代码

断点定位调试

断点调试定位到解密函数
在这里插入图片描述

继续调试,还原js代码

将代码复制到编辑器,命名为xx.js

将yc.decode改个名字,直接换成yc,便于代码阅读。
在这里插入图片描述

还原yc.decode函数

如下图所示,先在return所在的一行最左侧打一个断点,然后再yc.decode中间的灰色部分点击一下,也断一次。
在这里插入图片描述
刷新网页,查看断点效果,大概如下面所示。【页面中断】
在这里插入图片描述
鼠标放在yc.decode中间,看到有函数的定义位置,点进去。【进入到一个d函数,该函数就是yc.decode函数】
在这里插入图片描述
直接复制该函数的全部内容到编辑器,并运行,补充依赖。【执行过后报错,u没定义】
在这里插入图片描述
浏览器在u位置断点,并在控制台输出u的值。【u为一个字符串,值为/[\t\n\f\r ]/g】
在这里插入图片描述
在这里插入图片描述
补充u值到yc函数内,再次运行。【再次报错,i没定义,使用上面同样的方法,在i位置断点,并使用控制台输出i的值为字符串ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/】
在这里插入图片描述
在这里插入图片描述
将i补充到函数内。【yc函数运行没问题了,接下来是找出ide函数】
关闭yc函数的断点,在ide函数位置打上断点,结果如下:
在这里插入图片描述

还原ide与ude函数

将鼠标移到ide关键字附近,进入ide函数定义位置。【ide函数很长,将函数定义位置直接全部复制到编辑器内】
在这里插入图片描述
再次运行编辑器内的代码,补充ide函数内的依赖【发现ude(e)函数没有定义】
使用上面的方法,在浏览器m = ude(e)位置打断点,进入ude函数的定义位置,并将ude函数完整定义复制到编辑器内。

最后执行代码,输出了响应的json数据,逆向成功。
在这里插入图片描述

案例总结

这里我们发现响应结果的encrypt_data字段加密,我们使用浏览器搜索与断点调试的方法将js代码扣下来,还原了解密过程。中间函数有依赖需要补充,我们也是通过断点调试和控制台输出的方法补充依赖。
主要的逆向流程如下:

  1. 使用关键字搜索encrypt_data,定位到加密文件
  2. 使用加密文件的来源面板搜索关键字encrypt_data定位到解密函数位置
  3. 使用断点调试与控制台输出结合的方式还原yc.decode函数【并补充依赖】
  4. 使用断点调试与控制台输出结合的方式还原ide函数与ude函数 并补充依赖】
  5. 输出结果
  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jesse_Kyrie

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

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

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

打赏作者

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

抵扣说明:

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

余额充值