爬虫如何快速定位到加密入口

2023-11-16

这里有多种定位加密入口方法
  1. 通过打全局xhr断点找到加密入口
    可以将在**+**处点击添加xhr断点,可以针对某个值进行打xhr断点。在这里插入图片描述

  2. 直接通过关键字找到加密入口 在前面文章讲述过https://blog.csdn.net/zhp980121/article/details/124086510?spm=1001.2014.3001.5501

  3. 通过F12的网络,找到接口url在旁边进入发送请求的JavaScript文件给上断点在通过堆栈找到加密入口。
    在这里插入图片描述

  4. 通过hook,来定位到函数入口并且打上断点
    简单的hook cookie——document.cookie
    相当于要匹配cookie中 TSdc75a61a,匹配到就给上debugger

var code = function(){
    var org = document.cookie.__lookupSetter__('cookie');
    document.__defineSetter__("cookie",function(cookie){
        if(cookie.indexOf('TSdc75a61a')>-1){
            debugger;
        }
        org = cookie;
    });
    document.__defineGetter__("cookie",function(){return org;});
}
var script = document.createElement('script');
script.textContent = '(' + code + ')()';
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

hook url中的值(MmEwMD)

var code = function(){
var open = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function (method, url, async){
    if (url.indexOf("MmEwMD")>-1){
        debugger;
    }
    return open.apply(this, arguments);
};
}
var script = document.createElement('script');
script.textContent = '(' + code + ')()';
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

hook
定位headers中的关键参数生成位置

var code = function(){
var org = window.XMLHttpRequest.prototype.setRequestHeader;
window.XMLHttpRequest.prototype.setRequestHeader = function(key,value){
    if(key=='Authorization'){
        debugger;
    }
    return org.apply(this,arguments);
}
}
var script = document.createElement('script');
script.textContent = '(' + code + ')()';
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);

最简单的hook方式

Object.defineProperty(document,'cookie',{
set:function(val){
    debugger;
    return val;
}
})
  1. 内存漫游
    程序的运行原理非常简单,所有的功能都是基于AST Hook构建的,其大致流程:
    访问目标网站时设置浏览器走我们自定义的代理服务器,这个代理服务器要支持能够使用代码处理请求,这里选择的是anyproxy。
    在代理服务器这里,对请求做处理,对于JavaScript响应和HTML响应里的JS代码,使用AST实时处理,注入Hook逻辑。
    Hook逻辑就是所有涉及到变量改动的地方都经过我们的Hook方法,以此实现页面上所有的变量值变动都可以捕获到,你可以把这理解为内存中变量级别的抓包监控。
    抓到的变量会被保存到一个变量数据库中,然后当你访问页面请求了带加密参数的请求之后,从Chrome开发者工具的Network中把那个加密参数复制出来, 切换到console调用本工具提供的api在变量数据库中搜索一下,就能搜索到存储这个字符串的变量及变量所在的代码位置, 单击代码位置可以自动切换到Source面板并自动定位到变量位置。
    然后在此处打断点往前找加密逻辑抠出来就好了,如果有多个加密参数或者加密参数为多个地方拼接生成,无脑重复此步骤即可。

ast-hook 工具
https://github.com/cc11001100/ast-hook-for-js-RE
效果如下:
简单的来说就是可以通过找加密值来找到加密入口。
当sign加密值jakddnja1267933,直接hook.search(‘jakddnja1267933’),找到加密入口
在这里插入图片描述
由有其他加密入口方法可以在评论区评论,或者私聊交流。有不懂的也可以直接私聊解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫如何快速定位到加密入口 的相关文章

  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 如果替换路径中的最后一个元素,React Router v6 useNavigate() 不会导航

    我有一个具有以下功能的反应组件 const handleNavigate clientId gt console log clientId navigate dashboard clients clientId console log 显示
  • 如何使用 JavaScript 将当前页面设置为 about:blank?

    我遇到的情况是服务器可能在当前地址上不可用 因此我想检测到这一点并将页面重定向到 about blank 页面 我该如何使用 JavaScript 来做到这一点 window location href about blank
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 具有两组子组件的 React 组件

    我正在创建一个组件 需要接收两组子组件并放置在组件的两个不同部分中 let CreditCardForm icons fields gt div div div div icons div div div fields div let Cr
  • 如何在 JS Rails 响应中包含 HTML?

    我有一个响应 HTML 和 JS AJAX 查询的 FooController app controllers foo controller rb class FooController lt ApplicationController l
  • 在 Javascript 中动态添加事件处理程序

    我在使用 Javascript 时遇到了一个奇怪的问题 我得到的是一个特定格式的字符串 我将尝试用它创建一个表 该表每行只有一个单元格 字符串的格式为 每个单元格 行 需要显示内容 将传递给的参数onmouseover当用户将鼠标移动到显示
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • 缩放事件侦听器之前的 Javascript OpenLayers

    我正在尝试将 OpenLayers 设置为在缩放开始之前不显示矢量图层 并使其在缩放结束后重新出现 我已经像这样建立了缩放结束部分 map new OpenLayers Map map element eventListeners zoom
  • 使用 javascript 禁用按钮:FF 与 IE

    我有一排按钮 它们都会创建一个我想在新选项卡中打开的 pdf 文件 这样按钮页面就会保持在顶部 并且 pdf 会打开以进行打印 为了防止单击按钮两次 我禁用该按钮 如下所示 我使用 python
  • jQuery 在 Chrome 下发现错误元素

    我使用 jQuery 迭代 HTML 表 并动态填充每行的行号 通过在文本框中填充行号 function updateRowNums myTable find tr each function index this find input i
  • 限制 jQuery id 字符串吗?

    简而言之 我的问题是字符串在 jQuery 中作为可搜索 id 或可搜索内容有什么限制 更新 我得到了 ID 部分 但不是为什么我什至无法使用该字符串搜索 html 内容 对于任何愿意告诉我一个正则表达式来将模式从 MM dd yy HH
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • 为什么从浏览器上传到 S3 时出现 403 错误?

    因此 我尝试查看此处之前的答案 但似乎没有任何效果 我正在使用 Dropzone 它似乎发出 OPTIONS 请求来获取所有允许的 CORS 相关信息 但它似乎没有正确返回 因此 通过查看 Chrome 开发工具 我有以下请求标头 Host
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • 允许使用 grunt browserify 进行全局转换

    我已将 jQuery 添加为 html 文件中的脚本标记 并将其添加到package json与一起工作browserify shim如下 browserify transform browserify shim browserify sh
  • 在角度控制器中监听文档事件

    如何捕获角度控制器中的事件 我有文档级事件 所以我需要在角度控制器中捕获事件 这可能吗 Update 我有独立的 js 文件来处理来自相机的一些操作 document addEventListener myCameraEvent handl
  • 使用 javascript Array reduce() 方法有什么真正的好处吗?

    reduce 方法的大多数用例都可以使用 for 循环轻松重写 对 JSPerf 的测试表明 reduce 通常会慢 60 75 具体取决于每次迭代内执行的操作 除了能够以 函数式风格 编写代码之外 还有什么真正的理由使用reduce 吗
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma

随机推荐

  • coverage代码覆盖率测试工具:基本原理分析与使用

    coverage环境描述 本文环境python3 5 2 coverage版本4 3 1 coverage概述 代码覆盖率工具主要是为了检查测试用例覆盖了多少业务处理代码 在Django项目中 通过编写的测试用例 来检查后端业务逻辑接口的逻
  • Struts2验证框架

    1 Struts2提供了验证框架 功能强大而且简单易用 帮助用户做了很多事情 使得用户不必从头开发 那么一个好的验证框架需要考虑哪些因素呢 1 验证功能的复用性 比如都是对一个int数据类型的验证 验证的是它的数据范围 如果验证功能抽象的好
  • Intellij IDEA炫酷的插件

    1 日晒主题 Solarized Themes 背景图可是另外的插件设置的哈Background Image Plus 在 IntelliJ 系列编辑器 中循环显示随机背景图像 可以通过设置页 Settings gt Appearance
  • 别再问我怎么Python打包成exe了!

    作者 Python进阶者来源 Python爬虫与数据挖掘 阅读文本大概需要 10 分钟 前言 也许我们不一定是专业的程序员 但是我们仍然可以通过代码提高我们的效率 尽量少加班 多陪陪媳妇 如果有 再不行 让代码替我们干着重复的工作 我们有节
  • BigDecimal保留两位小数

    天行健 君子以自强不息 地势坤 君子以厚德载物 每个人都有惰性 但不断学习是好好生活的根本 共勉 文章均为学习整理笔记 分享记录为主 如有错误请指正 共同学习进步 BigDecimal保留两位小数 保留两位小数 1 setScale 2 D
  • vue脚手架-上传图片 编辑修改图片(三)

    需求 点击编辑图案的时候 需要弹出框 里面除了能修改图片信息之外 还得能够更换图片 此篇文章主要讲述如何更换图片 因为时更改单张图片的 所以特别想更换头像 有没有 因此我使用了element ui中的更换头像的插件来写的 H5中更换图片的部
  • Flutter 完整示例

    经过这一段对 Flutter 的了解和接触 掌握如何完整使用 Flutter 开发一个项目 实际上 在 Flutter 中 一切皆 widget 我们的界面都是由各种 widget 堆叠出来的 一个 Flutter 工程涉及以下几个要点 工
  • WINDOWS窗体应用程序与WPF应用程序的区别?

    WINDOWS窗体应用程序与WPF应用程序的区别 用WPF更容易做的漂亮 感觉有以下几个大区别 WPF的线程模型和winform的线程模型不同 WPF到处用到数据绑定 winform在列表中才用的多 WPF支持3D winform本身没有
  • Ubuntu20.04安装NVIDIA混合精度计算库apex全流程及各类报错问题解答

    目录 一 安装CUDA 二 安装apex 三 各类报错问题解决 3 1 C 编译错误 3 2 Apex优化算子错误 3 3 CUDA错误 3 4 g 或gcc错误 背景 跟李沐老师一起探索RTX 3090的深度学习浮点运算性能 需要安装ap
  • 登录界面BootStramp模板

    一 效果图 二 代码部分
  • CPU内存磁盘IO过高问题处理

    CPU占用过高分析 可以用top命令查看哪一个进程占用cpu高 或者哪一个占用内存大 top 13 55 32 up 59 days 19 18 2 users load average 0 00 0 04 0 09 Tasks 161 t
  • 获取一周登陆3次以上的用户数,mysql

    select count 1 from select userId count distinct date format createTime Y m d from session user where date format create
  • PLSQL Developer连接远程数据库方式

    作者 Frank bettterMan 来源 CSDN 原文地址 https blog csdn net xintonghanchuang article details 60869189 1 直接通过IP连接 1 输入对应数据库用户名与密
  • 使用gradle创建 Java 工程

    如果显示连接超时 换网 不要用校园网 1 随便目录 在用cmd呼出终端 2 在终端输入gradle init 初始化 gradle init 2是项目 依稀记得 1是2的简化版 这里选2 我学的是java 所以3 这里选语言 三个默认 这里
  • OpenStack架构详解

    1 OpenStack概述 OpenStack既是一个社区 也是一个项目和一个开源软件 它提供了一个部署云的操作平台或工具集 其宗旨在于 帮助组织运行为虚拟计算或存储服务的云 为公有云 私有云 也为大云 小云提供可扩展的 灵活的云计算 Op
  • 【第四章】详解Feign的实现原理

    1 1 Feign概述 这篇文章主要讲述如何通过Feign去消费服务 以及Feign的实现原理的解析 Feign是Netflix开发的声明式 模板化的HTTP客户端 Feign可以帮助我们更快捷 优雅地调用HTTP API Feign是个H
  • VitePress开发记录(二)之LaTeX语法支持

    前言 当我在我的博客网站更新我的吴恩达机器学习笔记时 出现了一个情况 VitePress默认的markdown it解析器似乎无法渲染LaTeX数学公式 于是我去VitePress官方中查看issue是否有解决的方案 官方给出的解答是 这里
  • 华为OD机试真题-模拟商场优惠打折【2023Q1】

    题目内容 模拟商场优惠打折 有三种优惠券可以用 满减券 打折券和无门槛券 满减券 满100减10 满200减20 满300减30 满400减40 以此类推不限制使用 打折券 固定折扣92折 且打折之后向下取整 每次购物只能用1次 无门槛券
  • SpringBatch文章系列-SPL表达式的使用

    参考例子
  • 爬虫如何快速定位到加密入口

    这里有多种定位加密入口方法 通过打全局xhr断点找到加密入口 可以将在 处点击添加xhr断点 可以针对某个值进行打xhr断点 直接通过关键字找到加密入口 在前面文章讲述过https blog csdn net zhp980121 artic