优秀工具|使用Reqable替换处理过的动态混淆js

news2024/12/23 8:15:05

关注它,不迷路。       

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

1. 目标地址

这篇文章  爬虫神器|这是我过Debugger检测最简单的方法,没有之一  简单的介绍了 Reqable 工具的使用,本文再次介绍下 它的 脚本功能。

需要分析的网站:

https://www.flyscoot.com/en

通过多次抓包分析,发现它的核心js是动态的,至少变量名是经常在变化的,如第一次抓包的js:

91159d88c97294223d5cd1d7c3f30e20.png

而清空缓存后,再次抓包,又变成这样了:

6fa464577d64b45a86879b1b41fefb3a.png

我们知道,混淆的js,调试起来非常的痛苦,能不能给它简单的还原一下,将还原后的代码替换再调试?

2. 准备工作

1.先从星球下载还原的AST文件:

https://t.zsxq.com/12dsy8slw

2.打开  Reqable 工具,确保可以正常抓包,然后打开 它的脚本功能:

7db86ddd0e9f804b5f8dcad38db52d7d.png

3. 编写代码

1.右键点击上面的按钮,选择 新建脚本 : 

679664abe5ce2a2e13d82508c106dbd4.png

2.编辑脚本,改写响应 :

b481198c8f7e7037d8b10fd749cd3c1f.png

3.具体的改写如下:

def onResponse(context, response):
  # Update status code
  # response.code = 404


  # APIs are same as `onRequest`
  if "https://www.flyscoot.com/g-Then-And-meeting-beding-O-Scena-Quarre-allowt-" == context.url:
      print ("Inject Success!")


  # Done
  return response

先判断,后打印,看看是否能成功:

79be2505eb9461b23d2f2ae7bd13d13b.png

成功打印了 "Inject Success!",说明注入成功了。

4.再次编辑脚本,将动态的混淆代码进行还原,然后再替换:

# API Docs: https://reqable.com/docs/capture/addons


from reqable import *
import os


def onRequest(context, request):
  # Print url to console
  # print('request url ' + context.url)


  # Update or add a query parameter
  # request.queries['foo'] = 'bar'


  # Update or add a http header
  # request.headers['foo'] = 'bar'


  # Replace http body with a text
  # request.body = 'Hello World'


  # Map with a local file
  # request.body.file('~/Desktop/body.json')


  # Convert to dict if the body is a JSON
  # request.body.jsonify()
  # Update the JSON content
  # request.body['foo'] = 'bar'


  # Done
  return request


def onResponse(context, response):
    
  # Update status code
  # response.code = 404


  # APIs are same as `onRequest`
  if "https://www.flyscoot.com/g-Then-And-meeting-beding-O-Scena-Quarre-allowt-" == context.url:
      print ("Inject Success!")
      with open("C:\\Users\\admin\\Desktop\\0925\\ob.js","w",encoding = "utf-8") as fp:
          fp.write(str(response.body))
      os.system("node C:\\Users\\admin\\Desktop\\0925\\main.js C:\\Users\\admin\\Desktop\\0925\\ob.js C:\\Users\\admin\\Desktop\\0925\\ok.js")
      response.body.file('C:\\Users\\admin\\Desktop\\0925\\ok.js')
  return response

代码说明:

with open("C:\\Users\\admin\\Desktop\\0925\\ob.js","w",encoding = "utf-8") as fp:
      fp.write(str(response.body))

这是将响应的混淆js写入到 ob.js 文件中,因为 response.body 是 字节类型,因此需要先转成字符串才可以。

os.system("node C:\\Users\\admin\\Desktop\\0925\\main.js C:\\Users\\admin\\Desktop\\0925\\ob.js C:\\Users\\admin\\Desktop\\0925\\ok.js")

调用 os.system 命令,将其还原,当然,先确保该目录已安装 babel库。

response.body.file('C:\\Users\\admin\\Desktop\\0925\\ok.js')

将响应的结果替换成还原后的文件。我们来看看效果:

797e3be4be1d1db64f4d2929d8680b48.png

从日志窗口可以看到,确实进行了处理,看看网页上的代码:

578870e9c02207de0a6b4d288cffad1c.png

可以确认,是替换后的js,nice!

基本上后续替换动态的混淆js,也就是这套路。

今天的文章就分享到这里,后续分享更多的技巧,敬请期待。

下面的课程是我和 风佬一起开的,大家有需要的可以咨询我,相比基础课,新增了魔改nodejsAST反混淆进阶小程序逆向及部分补环境的内容。现在优惠价 2599元,还送一年AST 入门与实战 知识星球,先到先得。

e65485b3a0348f1645c65b2ada5d29d4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt地铁智慧换乘系统浅学( 二 )将存储的站点线路信息绘制到graphicsView(图形视图部件)

绘制 容器使用测试 画一个黑点到QGraphicsview中准备工作代码 绘制所有站点信息画线路信息准备工作代码 实现放大缩小功能放大缩小按键和建立与槽函数的连接槽函数实现效果如下bug 容器使用 Qt地铁智慧换乘系统浅学( 1) 测试 画一个黑点到QGraphicsvie…

JupyterNotebook的快捷键

Jupyter Notebook 有两种键盘输入模式:1、命令模式,键盘输入运行程序命令;这时的单元框线是蓝色。2、编辑模式,允许你往单元中键入代码或文本;这时的单元框线是绿色的。 一、命令模式 (在编辑模式下按键 Esc键进入命令…

RISC-V 指令

RISC-V指令都是32位长。 文章目录 R-Type指令格式:I-Type指令格式:S-Type指令格式:B-Type指令格式:U-Type指令格式:UJ-Type指令格式:J-Type指令格式:R4-Type指令格式:F-Type指令格式:vC-Type指令格式:CB-Type指令格式:CIW-Type指令格式:CL-Type指令格式:R-Type指…

华为云Stack的学习(八)

九、华为云Stack网络服务介绍 1.网络服务概览 1.1 租户界面的网络服务 租户登入ManageOne运营面后,可在服务列表中查看到网络服务。用户使用网络服务前管理员需要在Service OM上提前创建好外部网络。 1.2 华为云Stack网络服务全景图 1.3 网络服务承载网元 2.虚拟…

SpringMVC 学习(七)JSON

9. JSON 9.1 简介 JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级数据交换格式,采用独立于编程语言的文本格式储存和表示数据,易于机器解析和生成,提升网络传输效率。 任何 JavaScript 支持…

IntelliJ IDEA 上 使用git 合并其他分支,合并某一个提交

git 合并其他分支 找到git——>merge… 选择需要合并的分支,不能选和当前分支一样噢 合并,推送即可 合并某个提交到其他分支 点击左下角git——>右键切换分支——>选择需要合并的分支——>选择需要合并的代码——>ch 推送即可

一篇文章彻底搞懂熵、信息熵、KL散度、交叉熵、Softmax和交叉熵损失函数

文章目录 一、熵和信息熵1.1 概念1.2 信息熵公式 二、KL散度和交叉熵2.1 KL散度(相对熵)2.2 交叉熵 三、Softmax和交叉熵损失函数3.1 Softmax3.2 交叉熵损失函数 一、熵和信息熵 1.1 概念 1. 熵是一个物理学概念,它表示一个系统的不确定性程度,或者说是…

redis(3)-hiredis-API函数的调用

1.API函数查询 http://github.com.redis/hiredis 2.直接在hiredis目录下新建 test_redis.c 2.1创建文件: 目录下有hiredis 2.2编译 添加环境变量 2.3运行 ./a.out 直接运行 redis-cli get itc…

算法-贪心+优先级队列-IPO

算法-贪心优先级队列-IPO 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/ipo/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 回溯法 2.1 思路 2.2 代码 class Solution {int result 0;public int findMaximizedCapital(int …

基于ARM+FPGA的ISA总线/MMи总线接口转换设计在轨道交通的应用

总线广泛应用于计算机、工业生产及各种测试设备。ISA总线为IBM公司推出的基于80286CPU的PC/AT微型计算机用扩展总线标准,MMи总线是俄罗斯国内自行设计的专用测试总线,主要用于程控单元模块与MMи总线之间数据及控制信息的交换。在某型导弹测…

竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

HBase基础架构及存储原理

一、HBase介绍 HBase是Hadoop生态系统中的一个分布式、面向列的开源数据库,具有高可伸缩性、高性能和强大的数据处理能力。广泛应用于处理大规模数据集。 HBase是一种稀疏的、分布式、持久的多维排序map 稀疏:对比关系型数据库和非关系型数据库&#xf…

ubuntu下网卡插入网线后仍然不连接

网卡驱动已经安装,在settings里可以看到该网卡设备,但是插入网线后仍然不会连接: 鼠标点击也无效。 可尝试: 1. ifconfig找到该网卡,比如我的网卡是 enx0826ae3e81aa 2. sudo ifconfig enx0826ae3e81aa down sud…

OpenCV两张图片实现稀疏点云的生成

1 E矩阵 1.1 由F到E E K T ∗ F ∗ K E K^T * F * K EKT∗F∗K E 矩阵可以直接通过之前算好的 F 矩阵与相机内参 K 矩阵获得 Mat E K.t() * F * K;相机内参获得的方式是一个较为复杂的方式,需要使用棋盘进行定位获得,我们这里直接使用了 OpenMVG 提…

C语言学习(1)—— 环境安装和配置

运行C语言和C程序需要安装MinGW和VSCode。 一. 安装MinGW 1、进入官网下载MinGW:https://sourceforge.net/projects/mingw-w64/files/ 2、解压缩 3、配置环境变量 4、检查是否安装成功 二. 安装VSCode 1、进入官网下载VSCode:https://code.visualstud…

中国制造让苹果跪服,将再增加一家中国高科技供应商

日前产业链人士指出由于京东方的OLED面板有力地制衡韩国面板厂商三星和LGD,促使他们降价,而且技术也不错,因此正计划再引入一家中国OLED面板厂商,以进一步促进OLED面板的竞争。 早期苹果的OLED面板完全由三星供应,由此…

SR800-D 5G工业路由器:将无人驾驶汽车的通信能力提升到极限

​大家好!欢迎来到今天星创易联的课堂,我是你们的通信老师,今天我们将讨论无人驾驶解决方案,其中包括SR800-D 5G工业路由器的运用。 首先,让我们聚焦于无人驾驶技术的重要性。无人驾驶汽车正在迅速崛起,这种…

【服务端 | Redis】如何使用redis 有序集合实现股票交易的订单表(价格优先、时间优先)

前两天倒腾redis的有序集合时,自己发现了一个问题,redis的有序集合在score相同的情况 下是如何排序的? 通过谷歌搜索,发现了一些线索,在score相同的情况下,redis使用字典排序,不过不是太明白什…

【红帽】跟着学习如何使用桌面访问命令行

今天我们分享一些红帽Linux的知识,记得关注,会一直更新~ ▶1、以student用户身份并使用student作为密码登录workstation 1.1.在workstation上,从GNOME登录屏幕中单击student用户帐户。系统提示输入密码时,请输入student。 1.2.…

Tuxera NTFS 2022 for Mac破解版百度网盘免费下载安装激活教程

Mac打不开移动硬盘”有多种原因,解决办法也不尽相同。它可能是安装的NTFS for Mac读写软件版本和当前macOS系统的兼容问题、或者是Mac没有正常连接硬盘等等。本篇文章就将为您罗列出导致“Mac打不开移动硬盘”的原因和解决办法。 为此不得不使用著名的Tuxera NTFS …