爬虫如何快速定位到加密入口
这里有多种定位加密入口方法
通过打全局xhr断点找到加密入口
可以将在**+**处点击添加xhr断点,可以针对某个值进行打xhr断点。直接通过关键字找到加密入口 在前面文章讲述过https://blog.csdn.net/zhp980121/article/details/124086510?spm=1001.2014.3001.5501
通过F12的网络,找到接口url在旁边进入发送请求的JavaScript文件给上断点在通过堆栈找到加密入口。
通过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;
}
})
- 内存漫游
程序的运行原理非常简单,所有的功能都是基于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’),找到加密入口
由有其他加密入口方法可以在评论区评论,或者私聊交流。有不懂的也可以直接私聊解释。
爬虫如何快速定位到加密入口相关推荐
- 【网络爬虫教学】一分钟带你快速寻找JS加密入口(二)
Hi,大家好,欢迎大家参阅由IT猫之家精心制作的JS实战系列教学课程,我是作者叮当猫,在上期教学中,我们学习了如何快速分析基于Header授权加密协议,同时我们也初次接触到了钩子(hook)的概念,钩 ...
- 如何通过 Tampermonkey 快速查找 JavaScript 加密入口
在很多情况下,我们可能想要在网页中自动执行某些代码,帮助我们完成一些操作.如自动抢票.自动刷单.自动爬虫等等,这些操作绝大部分都是借助 JavaScript 来实现的.那么问题来了?在浏览器里面怎样才 ...
- c++字符串加密_【网络爬虫教学】快速定位拼多多加密算法入口(四)
Hi,大家好,欢迎大家参阅由IT猫之家精心制作的JS实战系列教学课程,我是作者叮当猫,在本期教学中,我将引导大家快速寻找出加密函数的入口,本期教学仍然是以并爹爹(某多)旗下的某个商城作为目标,在此之前 ...
- 拼多多爬虫python_【网络爬虫教学】快速定位拼多多加密算法入口(四)
Hi,大家好,欢迎大家参阅由IT猫之家精心制作的JS实战系列教学课程,我是作者叮当猫,在本期教学中,我将引导大家快速寻找出加密函数的入口,本期教学仍然是以并爹爹(某多)旗下的某个商城作为目标,在此之前 ...
- 使用MAP文件快速定位程序崩溃代码行
作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统 造成巨大的损失.但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现 ...
- 使用MAP文件快速定位程序崩溃代码行(转)
作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失.但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程 ...
- 安卓逆向_7 --- 六种快速定位关键 Smali 代码的方法 ( 去掉 RE 广告 )
哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=34 具体用法,看视频教程( 去掉 RE 的 结束广告 ) 6 种定位关键代码的方法,当然还有其他 ...
- 使用Arthas快速定位SpringBoot接口超时问题的神器
使用Arthas快速定位SpringBoot接口超时问题的神器 文章系转载,便于整理和分类,原文地址:https://mp.weixin.qq.com/s/Nm_QGzCtwY08Dd1XOtPaaw ...
- STM32网址大全(快速定位网址查找资料)
关注.星标公众号,不错过精彩内容 本文主要给大家介绍快速找到STM8.STM32软件工具.文档资料的方法和技巧. 一.网站 ST官网:www.st.com ST社区:www.stmcu.org.cn ...
最新文章
- 想改善风险管理工作吗?做些基础性工作吧
- 如何到达永生?揭示科学之美
- php basic syntax
- android 定时打电话教程
- csds原装的Markdown文档
- helm安装_安装 helm 包管理工具
- WinRAR 4.00 beta1 简体中文版
- 这些孩子对计算机游戏上瘾英语,沉迷网络游戏高中英语作文
- 遥感学习笔记(八)——遥感影像
- linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate 【转】
- btb和oto,btc模式是什么意思
- windows状态栏里显示实时网速
- Mini-USB、Micro-USB(Micro-B)、Type-C等接口
- 免费内网穿透端口映射工具-网络通
- python 企业邮箱发送邮件
- Python 之正则表达re.compile()与re.findall()详解
- C4D移动工具无法移动对象?轴动但是对象不动?
- 换个格式输出整数 蓝桥杯 C语言
- matplotlib bar3d画3d柱状图
- 关于Maven项目里所有代码凭空消失的问题
热门文章
- Airtest快问快答,你们想问的这里都有!(第1期)
- 牛客选靓号即拼多多20200410笔试第三题
- 字体设计欣赏应注重这几点
- BI分析工具Qlik有趣的扩展性:基于Web的应用程序QMC
- sklearn安装后无法调用的问题
- 美的楼宇科技数智电梯产业园于佛山奠基开工;TCL电子2022年前三季度全球智屏销量1662万台 | 美通企业日报...
- php构造函数和析构函数到底干嘛用的
- .Net 基于Memcache集群的分布式Session
- Java实习生,应具备哪些知识能力
- python实现灰色关联法(GRA)