- 博客(103)
- 收藏
- 关注
原创 01.浏览器自动化webdriver源码分析之启动函数
先获取一个名为WEBDRIVER_TARGET_ADDR的环境变量,这个变量是用于链接已经开启的浏览器,是的,需要先把浏览器打开,然后webdriver回去链接,而不是先运行webdriver。最后是进入主循环,这里先线程初始化,然后看是websockst还是http模式,前者双向,后者单向。日后,网络爬虫也好,数据采集也好,自动化必然是主流。脚本简单,资料一大堆,浏览器也只是个执行者,所以关键在于webdriver如何接受、处理、发送消息,所以重点源码webdriver源码。
2025-04-22 22:34:15
793
原创 12.Chromium指纹浏览器开发教程之RendererProcessHost传递
Chromium指纹浏览器开发教程之RendererProcessHost传递
2025-04-19 00:47:01
768
原创 8.Chromium指纹浏览器开发教程之Visual Studio调试多进程
Chromium指纹浏览器开发教程之Visual Studio调试多进程
2025-04-19 00:30:55
264
原创 Python3.5源码剖析 | 字符串对象创建
首先需要明白,在Python3.5的源码里,我们操作的文本字符串是以unicode的形式存在的。 如果字符串中仅仅包含ASCII,那么会通过c文件中的PyUnicode_New函数进行创建,创建的结构体是PyASCIIObject,该结构体的内容如下: 仅ASCII的字符串初始化会把state中的ascii和compact都进行设置,其中的ascii用于表明字符串是否是纯ASCII,compact用于表明是否是紧凑型字符串,如果是紧凑型字符串,会仅申请一块内容地址用来存放结构和和数据(结构
2022-06-05 18:42:27
537
原创 JS逆向 | 瑞数四代补环境获取$_ts和eval
使用了Hook Cookie之后,很容易就定位到cookie生成点,堆栈从eval往上,就是首页HTML的call入口了。eval执行的这个_$xa就是VM文件中的很大的自执行函数,而且进去之后,一开始就会获取$_ts中的内容,那么这两个东西本地生成该怎么做呢?很简单,这个eval里的代码是通过HTML首页中的自执行函数和外链中的$_ts生成的,那么我们直接本地把它们拷贝下来运行就能得到了。 直接运行肯定是会报错的,那就补环境:w...
2022-03-19 20:46:36
4132
原创 H5的APP逆向方法
注:小肩膀新课程《安卓逆向百例》,讲解一百个APP的实战,1999¥。 现在的app开发有很多框架,不再是单纯的Java和so了。不同框架开发的app,有不同的逆向方法。1. 常见的Java和so2. 普通的H5 app3. uni-app4. react native app5. flutter6. ......本篇文章来简单聊一聊H5的app如何逆向。H5的app通常...
2022-03-16 09:25:42
7594
原创 JS逆向 | 瑞数四代入门指南
瑞数的难点在于繁琐,只要有耐心就可以解决。可是小白往往无法过掉最开始的反调试,也没办法定位到cookie加密的位置,更对瑞数没有基本的了解。无限debugger推荐使用右键单击‘永不在此暂停’,当然也可以本地替换(FD\chrome都可以)和清除定时器,但并不推荐。 再来看一张图,然后回答几个问题。 1.怎么知道rs的cookie是服务器返回的,还是本地生成的?看菜单栏中的HttpOnly,打上√的是服务器返回的,所以要扣的是8...
2022-03-16 09:24:33
7785
1
原创 chromium浏览器定制 | 随机canvas画布
许多人想看chromium随机canvas画布,那我就教一下大家。 canvas指纹检测网站: 在我们的定制浏览器之下,每次随机canvas和颜色: 首先,我们需要知道,在fingerprintJS中,检测canvas,使用的是如下代码:fillrect是用来规定大小的,fillstyle是用来改变颜色的。这里我讲讲fillrect:这里边一共四个参数,但是随机的时候数字不要过大,过大的话也会出问题,超出范围的画布会统一显...
2022-02-22 00:59:03
6588
原创 极验滑块加密JS分析(一)
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!小肩膀教育2022零基础一站式安卓逆向安全教学直播课2月19日开课!还不报名?极验的滑块滑动之后可以很清晰地看到请求包:我们需要的就是w的值,直接定位到调用堆栈:一直向上跟就可以找到一个o值:在往上就可以看到一些加密参数生成的地方:var u = r[$_CAGEe(750)]() , l = V[$_CAGEe(342)](gt[$_CAGEe(209)]
2022-02-13 16:35:54
1129
原创 chromium浏览器定制 | 高匿名爬虫随机指纹
JavaScript的逆向内卷愈发严重,瑞数搞了许久也我头痛不已。我在《零基础一站式高级网络爬虫就业班》中讲了浏览器的指纹检测,也有不少网站要求补环境,相信不少同学都有所了解。补环境,补来补去就是模拟浏览器,爬虫总归是要获取数据的,何不从浏览器底层入手,直接魔改chromium,打造一个高匿名爬虫浏览器出来呢?我们使用的客户端浏览器其实和人是一样的,都具有独一无二的特征,如果只用一个浏览器频繁访问,势必会触发风险控制。那是否有方法避开浏览器指纹呢?其实前端的JavaScript计算浏...
2022-02-06 15:42:55
6686
原创 JS逆向 | 拼多多anti_content参数
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!以下内容都是小肩膀教育之后爬虫课程会讲解的,感兴趣在文章末尾扫码联系购买课程。anti_content存在多种扣法,今天讲一种较为简单的方法。anti_content加密JS分析网页端是个AJAX,搜索我的书《反爬虫AST原理与还原混淆实战》,当然不要在这个网站买,盗版太多了,请支持正版。直接下拉在XHR页就能找到请求包,主要是其中的anti_content。全局搜索anti_content后,在
2022-01-23 12:48:30
4181
原创 JS安全防护算法与逆向分析——babel混淆JS代码
使用Babel操作AST抽象语法树混淆JS代码const parser = require("@babel/parser");const traverse=require("@babel/traverse").default;const t=require("@babel/types");const generator=require("@babel/generator").default;const fs=require("fs");const jscode=fs.readFileSyn
2020-05-17 14:15:44
1333
原创 JS安全防护算法与逆向分析——使用babel生成JS代码
const types=require("@babel/types");//生成节点,判断类型const generator=require("@babel/generator").default;//生成代码const fs=require("fs");/* function losenine(a,b){ var c=1000; var d=a+b+c; return "losenine"; }*/var node=types.
2020-05-17 13:15:57
486
原创 JS安全防护算法与逆向分析——webpack改写方案
webpack改写方案XHR断点我们发现要扣的代码特别多,而且循环嵌套,会引用其他包,需要的代码太多了,有八万多行。最外边是一个括号包含webpack,是一个数组,压入了许多数据。但是这些文件都是直接被压入的,里边导入的包没有运行。(window.webpackJsonp = window.webpackJsonp || []).push([[2], { "+Wzn": function(l, t, n) { "use strict"; n.d(t.
2020-05-15 23:03:11
2409
1
原创 JS安全防护算法与逆向分析——JS Hook
JS Hook声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。一、JS Hook原理与作用JS Hook原理非常简单,现在将一个最简单的例子,比如有这样一个函数function test(a,b){ return a+b;}我们可以直接在console里边修改这个函数,比如如下这样:var _test=test;test=function(a,b){ console.lo
2020-05-14 21:20:27
1907
2
原创 JS安全防护算法与逆向分析——Chrome开发者工具
Chrome开发者工具声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。一、打开开发者工具有时候网站为了反调试,会禁止你打开开发者工具,或者有的小说网站还会禁止你复制,这些都是通过JS做到了,因为JS就是用来和人交互的嘛。不过开发者工具可是我们逆向的基础,不打开可不行,打开开发者工具有以下几种方式,读者可以自行选择。1.F12打开开发者工具(有时候会被禁用)2.某个元素上点击右键检查(有时候会被禁用)
2020-05-14 16:30:36
820
原创 JS安全防护算法与逆向分析——淘宝登录JS加密算法
淘宝登录JS加密算法声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。淘宝作为国内最大的网络零售商,对于用户信息安全的保护可谓固若金汤。本文将讲解淘宝在用户登录时如何将用户的个人信息加密以达到保护用户数据安全的目的。我们在淘宝的登录页面输入自己的用户名和密码以登录的时候,会发现在NETWORK选项卡中有一个POST请求包。我们向下翻滚以查看我们发送的数据,会发现它们已经面目全非,而且多出..
2020-05-12 15:27:24
3493
4
原创 JS安全防护算法与逆向分析——问卷星自写算法
问卷星自写算法声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。在学校里经常会填写调查问卷,那这些调查问卷到底需要我们的什么信息呢?传输的时候是否会把我们的个人信息传输上去?再就是我们填写的选项到底是以怎样的形式传输的,让笔者为您详述。笔者为了测试,自己创建了一个问卷星,接下来我选择前两项,点击提交,抓包看看到底会传输什么数据。依然是我们的POST请求包,不过这次后边有一大堆的参数,我们来详细.
2020-05-10 16:33:27
990
原创 JS安全防护算法与逆向分析——新浪微博登录JS加密算法
新浪微博登录JS加密算法声明:本教程从安全角度出发讲解,只为增加读者的安全知识,提升读者数据安全意识,以及对于病毒和钓鱼网站的防护能力。绝无其他任何目的与用途。新浪微博作为国内最大的即使分享社交平台,其用户基数庞大,为了进一步维护网络社交环境,阻止机器人等无用用户涌入,微博必然会提高用户登录的门槛(增强其数据加密算法)以防范爬虫机器人的存在。可事实上,就算新浪微博再怎么将其防护算法复杂化,我们依然会看到我们的个人账户上出现一些垃圾粉丝(机器人),那它们是怎么做到登录的呢?微博又是如何应对它.
2020-05-10 14:16:59
1193
2
原创 10.Erlang 记录与宏文件
一、记录1.创建记录-record(person,{name,age=0,gender="none"}).2.读取记录start(N)-> NewPerson= #person{name=N}, pprint(NewPerson).pprint(N)-> io:format("~p ~p ~p",[N#person.name,N#pers...
2020-03-21 20:04:51
231
原创 9.Erlang 二进制操作
一,为什么使用二进制类型?使用低级别的编程更加可靠,而且相比于元组和列表更加节省空间。有时候大量结构化的数据必须在计算机之间相互移动,我们就需要确保数据尽可能高效传播,利用一切可以存储的位置,每个位置尽可能含有较多的信息。二,二进制类型1.内置函数转化二进制1>A={test,1,2,3,[1,2,3]}.{test,1,2,3,[1,2,3]}2> Bin1=t...
2020-02-26 09:51:48
816
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人