当前位置: 首页 > news >正文

Reverse DevTools | 逆向调试工具 使用手册

【作者主页】:小鱼神1024

【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系作者立即删除!

前言

首先问小伙伴一个问题,你们在逆向工程时,有没有遇到过以下问题?

  • 1、如何快速定位到加密参数位置?
  • 2、如何判断还原的算法是否正确?
  • 3、如何快速过debugger?

为了解决以上问题,我们通常的解决方案是 Hook。但是,大量的 Hook 又难以维护和操作;同时,Hook 还可能被反调试工具检测到,导致 Hook 失效。

那有没有一款好看且实用的浏览器插件来解决呢?

答案是:有的,它就是 Reverse DevTools | 逆向调试工具。我会定期更新该插件,欢迎小伙伴们关注。

谷歌商店扩展地址:Reverse DevTools | 逆向调试工具

最新的 crx 文件,请移步到知识星球下载。同时有好的建议或问题,欢迎在知识星球中提出。

Reverse DevTools | 逆向调试工具

使用说明

安装插件后,点击插件图标,即可打开插件面板。

Reverse DevTools | 逆向调试工具

打开一键开关按钮,即可开启插件功能。

由于后续插件会不断更新,功能会越来越多,所以如果只想使用部分功能时,可在 配置 里开启具体的功能模块。

Reverse DevTools | 逆向调试工具

变量固定

为了什么要使用 变量固定 功能呢?

在逆向过程中,我们经常需要调试一些加密参数,比如:signtoken等,这些可能是通过标准或者非标准的算法生成的,那如何验证我们的算法是否正确呢?

通常在算法加密是有 时间戳随机数 参与计算的。如果不做变量固定,即使入参相同,每次加密的结果也会不同,所以我们需要固定 时间戳随机数,这样就可以验证我们的算法是否正确了。

Reverse DevTools | 逆向调试工具

Date.now 为例:

Reverse DevTools | 逆向调试工具

从上述图中可以看出,Date.now 的值一直是 1715937679000,也就是说,Date.now 的值被固定了。同时,Date.now.toString()Function.prototype.toString.call(Date.now) 的值都为 function now() { [native code] },可以看出,我们也做了 反Hook检测 处理。

这样的话,参数参数,随机变量也相同,如果加密结果也是也一样的,就说明我们的算法是正确的。否则,算法就是错误的。

举个案例说明:

零点 大佬写的 HOOK对抗 小游戏,网址:深邃矿洞(第二关)

Reverse DevTools | 逆向调试工具

这个小游戏的规则很简单,通过HOOK方式实现挖矿【1次】通关。通过点击 开始挖矿 发现,它的金币是随机生成的,所以我猜测是通过 Math.random() 生成的。

Reverse DevTools | 逆向调试工具

通过查看源码,发现源码使用了控制流平坦化,搜索找到了 Math.random()

游戏规则是:累计金币达到100即可通关,所以,需要将 Math.random() 固定为 100。如下:

Reverse DevTools | 逆向调试工具

刷新网址后,分别点击 开始挖矿通关验证 各一次。如下:

Reverse DevTools | 逆向调试工具

从上图可以看出,在不打开浏览器控制台的情况下,我们实现了Hook小游戏的通关。

Hook注入

使用 Hook注入 功能前,需要先在配置中开启 Hook 功能模块。

Reverse DevTools | 逆向调试工具

移除debugger

在逆向过程中,我们可能会遇到一些网站使用了 debugger 来防止调试。比如:aHR0cHM6Ly9kZXd1LmNvbS8=

Reverse DevTools | 逆向调试工具
Reverse DevTools | 逆向调试工具

打开浏览器插件,开启 移除debugger 功能,刷新网址后,debugger 被移除。简直不要太爽了。

JSON.stringify

在逆向过程中,如果遇到 json 序列化后的加密参数,可以尝试使用它,快速定位到加密参数位置。比如:aHR0cHM6Ly9oNS53YWltYWkubWVpdHVhbi5jb20vd2FpbWFpL21pbmRleC9ob21l

Reverse DevTools | 逆向调试工具
Reverse DevTools | 逆向调试工具

刷新网页后,发现瞬间 debugger 到了加密参数位置。通过堆栈就可以一步一步分析了。

XMLHttpRequest.open

它的作用,类似 xhr 断点:

Reverse DevTools | 逆向调试工具

一起试试吧。hook关键词设置为:shopList

Reverse DevTools | 逆向调试工具

刷新网页后,发现瞬间 debugger 到了请求发送位置。然后通过堆栈就可以一步一步分析了。

Hook注入 其他参数就不一一举例了。玩法很多,大家自己探索吧。

其他功能

新功能,还在持续更新中…,

功能更新后,在知识星球通知大家哦!

相关文章:

  • 机器学习深度学习基本概念:logistic regression和softmax
  • VScode 中文符号出现黄色方框的解决方法
  • 通用外设驱动模型(四步法)及配置GPIO步骤
  • 云原生系列之本地k8s环境搭建
  • 【pyqt】(十二)文本框
  • 神经网络中梯度计算求和公式求导问题
  • 2025年渗透测试面试题总结-字某某动-安全研究实习生(一面)(题目+回答)
  • BFS(七)662. 二叉树最大宽度 数组下标模拟存储二叉树
  • “深入浅出”系列之杂谈篇:(8)SQL Server 真的比不上 MySQL 吗?
  • 大模型中的剪枝、蒸馏是什么意思?
  • 【mlops】Cube Studio云原生机器学习平台架构解析
  • unity 让两个物体相遇时候刚体互不影响
  • Python计算程序用时方法大全(基础,高精度,装饰器,无侵入式,格式化时间输出)
  • K8s 1.27.1 实战系列(五)Namespace
  • GEFFEN/GF-SPMS8分布式电源强电控制器
  • 【408考研网络】2024考研原题计算机网络知识点总结(共六题)
  • 维度建模维度表技术基础解析(以电商场景为例)
  • linux上将sh脚本文件打包成二进制程序文件
  • 深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题
  • 微电网协调控制器ACCU-100 分布式光伏 光储充一本化
  • 人民日报:莫让“假自杀”淹没“真求助”
  • 宋鹍已任首都机场集团有限公司董事长、党委书记
  • 第78届世界卫生大会20日审议通过“大流行协定”
  • 4月22城新房价格上涨:上海一二手房价环比均上涨,核心城市土地热带动市场热度提升
  • 半年不到再换岗:伊春市委常委、政法委书记方春彪任伊春森工集团党委书记
  • 中科院合肥物质院迎来新一届领导班子:刘建国继续担任院长