零基础爬虫第一天
文章平均质量分 69
sugar椰子皮
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【node源码-6】async-hook c层修改以及测试
只是这个FSREQCALLBACK 等不明显,回头改成对应的函数名试试。这个输出的太多了,还是要修改成过滤的模式,也没有输出tostring。回调函数的tostring, 但是一直获取不到业务代码app.js的堆栈。突然想起来,这里没有必要也不应该输出堆栈,否则日志量就太夸张了。位置:D:\Code\C\node\src\async_wrap.cc。emm 这个不是给人看的,是给机器看的。但是这个貌似c层也有解决方案。其实就是把上面的js 逻辑写到下面的cc里。测试一下异步hook。原创 2025-12-24 20:06:16 · 194 阅读 · 0 评论 -
【node源码-5】Async Hooks使用
init 的特殊性同步调用:在创建异步资源时立即执行可能递归:如果你在 init 中创建新的异步操作,会再次触发 init性能影响:每个异步操作都会触发,高频场景下开销大before/after 的配对总是成对出现(即使回调抛异常)可以用来实现上下文传递(CLS - Continuation Local Storage)用来测量异步回调的执行时间destroy 的不确定性可能延迟调用(依赖 GC)某些类型可能不会触发 destroy不能依赖 destroy 做关键的清理工作。原创 2025-12-23 21:13:23 · 628 阅读 · 0 评论 -
【node阅读-3】Execution__Call分析
直接关系:这是V8 函数调用的统一入口(对象访问(Interceptor 触发点)。函数调用JSEntrystub → 栈帧 → 执行。:Proxy 或自定义 getter/setter 在Invoke内部触发。Dispatcher:Fast API(C++ 绑定)或 IC(JS 缓存)都在Invoke分支处理。这段代码就是 V8 处理对象访问(this/Interceptor)和函数调用(Dispatcher/JSEntry)的核心实现,Node.js 的fn->Call最终走的就是它。原创 2025-12-23 20:25:23 · 840 阅读 · 0 评论 -
【node源码-2】Node.js 启动流程
↓↓LoadEnvironment() → StartExecution() → 选择入口 JS↓↓↓你的 app.js 执行 → 进入事件循环(uv_run()) → 直到进程结束你的 app.js 顶层代码执行(同步部分)↓异步任务注册(setTimeout、fs.readFile 等) → 进入 libuv 事件循环↓事件循环运行(uv_run()) → 处理所有异步回调、微任务↓事件循环清空 → 返回退出码↓NodeMainInstance::Run() 返回↓。原创 2025-12-23 20:06:41 · 583 阅读 · 0 评论 -
【node阅读-1】node架构了解
上篇还是唐突了,上来直接打田英,被秒的毫无还手之力。于是先搜了一下整体攻略。原创 2025-12-18 20:27:05 · 812 阅读 · 0 评论 -
【node阅读-0】下载编译node
是 C++ 标准库(头文件)提供的智能指针之一,用于自动管理动态分配对象的生命周期,支持多个指针共享同一个对象的所有权。共享所有权:多个shared_ptr可以指向同一个对象,当所有shared_ptr都销毁或重新指向其他对象时,才会自动删除底层对象。引用计数:内部使用一个引用计数器(reference count)记录有多少个shared_ptr共享这个对象。拷贝/赋值时:计数 +1析构或 reset 时:计数 -1计数降为 0 时:自动delete管理的对象。原创 2025-12-17 23:32:39 · 795 阅读 · 0 评论 -
【补环境框架】序
最近在研究补环境框架的实现,发现了一些有意思的东西。现有的框架虽然能用,但代码量大得离谱。本文会深入分析现有方案的工作原理和致命缺陷,最后提出一个基于V8魔改的优化思路。原创 2025-12-15 23:51:21 · 941 阅读 · 0 评论 -
【爬虫框架-8】其他
batch_size。原创 2025-12-15 22:09:35 · 1218 阅读 · 0 评论 -
【爬虫框架-7】日志追踪实现
在分布式爬虫系统中,一个初始请求可能会派生出数十子请求(列表页→详情页→评论页→下一页…),这些请求分布在不同的消费者进程中执行。如何追踪整个任务链的执行状态、性能瓶颈以及调用关系,成为系统可观测性的核心挑战。原创 2025-12-15 22:08:36 · 612 阅读 · 0 评论 -
【爬虫框架-6】中间件的另一种写法实现
中间件(Middleware)是爬虫框架中的拦截器模式实现,它允许你在请求发送前和响应返回后插入自定义逻辑。原创 2025-12-10 13:21:30 · 574 阅读 · 0 评论 -
【爬虫框架-5】实现一下之前的思路
其实之前写的redis 统计,虽然是看起来有用,但是后来有评论给了新的思路,就是发布的时候 直接新定义新的队列。即同一份代码,发布的时候 预定义新的队列比如 批次号1201009_task1 ,1201010_task1 ,然后只要确定能自己自动消费即可。这是任务 发布的demo ,通过判断单个任务的is_success,收集到当前这个队列中发布任务的情况。当然,既然是类静态方法, 传入的类参数 是要有个重新实例化的地方:_get_or_create_spider_instance。原创 2025-12-10 13:18:12 · 191 阅读 · 0 评论 -
【爬虫框架-4】统计的用法
当然,这个做法在当前看来也不是最优解,也希望能有幸和读到的人一起探讨。# 在这里可以打点:任务执行成功后续还需要根据监控的四大黄金指标不断完善。更多文章,敬请关注gzh:零基础爬虫第一天next~原创 2025-12-07 07:58:53 · 1316 阅读 · 2 评论 -
【爬虫框架-3】闭包的用法
这也是我的第一版做法,把类相关的信息传过去,消费的时候冲洗构造实例。同时还要维护一个实例缓存,避免每次都重新从meta参数转实例。如果你需要记录一些状态(比如计数),通常会写一个类。但如果逻辑很简单,用类有点“杀鸡用牛刀”,闭包是更好的选择。有时候我们定义了逻辑,但不想立刻执行,而是想把逻辑和参数打包好,等需要的时候再执行。4.闭包的终极形态:装饰器(Decorator)装饰器就是:接受一个函数,返回一个闭包。外部变量是没问题的(如例1),但如果要。外部变量(如例2的计数器),必须使用。原创 2025-12-07 07:56:16 · 312 阅读 · 0 评论 -
【爬虫框架-2】funspider架构
如果能看到这里,说明这个流程基本已经了解了。其实就是一个同步的,先publish任务扔进队列,然后启动消费,采集+ 解析+入库。当然,任意一个部分出错+重试,都有funboost 兜底来重试,这个框架简直是绝了。爬虫有相当多的参数功能就可以直接用funboost。就是这里动态创建队列的时候,官方文档给了demo ,动态生成队列 ,以及使用类方法。但是动态生成队列 +使用类方法 就有点麻烦了。根据解析名创建队列。在上述代码中,有一个。这个我们回头再解决~原创 2025-12-05 21:45:30 · 712 阅读 · 0 评论 -
爬虫框架-1】如何使用 Funboost 解决之前的问题
有,funboost.原创 2025-12-04 21:15:07 · 1238 阅读 · 0 评论 -
【爬虫框架-0】从一个真实需求说起
当我第一次接到这个需求时,觉得很简单:每天早上 08:00 自动采集10000条商品数据,采集完成后立即验证数据完整性,然后生成报表推送到业务系统。用 Scrapy 写个爬虫,加个定时任务,不就搞定了?08:00 - 触发采集任务08:??- 采集什么时候结束?08:??- 数据验证要等到什么时候才能开始?这个看似简单的"等待采集完成"的需求,让我重新审视了爬虫框架的设计。初始队列:10000 个 URL↓第一轮采集:9800 成功,200 失败 → 200个自动重试↓。原创 2025-12-04 20:00:00 · 1370 阅读 · 0 评论 -
安卓篇-unidbg初步测试
jni不知道自己可能会用到哪些java函数,但是这个abstractJni已经实现了一些基本函数如 stringClass.getBytes 如果有新的 就需要我们自己补一些。:目前app的进度是c层的md5魔改 已经做好,又套了一层java层的加密。刚好可以再熟悉一下unidbg。下一篇加个registernative的函数 和oncreate的函数在app 中。先看下app 的反编译的结果,很明显,源码很清晰 ,之前的混淆方式一点用没有。最新版的app ,作为demo测试一下。unidbg代码如下。原创 2024-07-20 21:23:34 · 350 阅读 · 0 评论 -
基础篇-appdemo升级
接之前gitee,想做个许多按钮的app,包括各种加密,检测等。突然想到可以做一个类似yrx的web题目列表样式的app,开始试一下。原创 2024-07-11 03:14:20 · 127 阅读 · 0 评论 -
md5在ida中的识别
ida中 识别md5 ,先右键转为hex 或者按h在ida中当然也可以使用搜索search imdate-value 搜索立即数 0x67452301;这是上面的init中的state一个数···原创 2024-06-23 08:32:45 · 803 阅读 · 0 评论 -
嵌入md5
一些set和get 是对基本变量的绑定 ,有用的只有这个 onMd5Click。cmakelists.txt : 把两个cpp 都导入。接下来进入正题,要在安卓中导入cpp,fragment中调用。原创 2024-06-19 01:40:05 · 112 阅读 · 0 评论 -
鸽鸽鸽 ~
同时也有一个基于react的前端xpath 可配置界面, 基于scrapy crawlspider的通用爬虫想法正在实现,基本功能如下。在gitee上放了个仓库,正向写个app的demo,方便逆向及hook。鸽了好久不想写东西。有初步demo 了就挂链接。原创 2024-05-28 01:29:52 · 276 阅读 · 0 评论 -
yrx第一题补环境
先在浏览器中试一下,发现浏览器正常输出,由于预先知道了是md5的魔改和aes 的魔改。魔改算法暂时水平还不够,只能先补补环境。先运行一下,发现报错,抛出异常了,我们把正常js 放浏览器看一下。今天来挑战一下入门级别的 猿人学第二届第一题(作者说简单到离谱) 我信个g~老头子坏得很。如图,代码是直接发送的请求,token是在发送的时候生成的。通过调试发现,如果浏览器的话, 就直接返回 0xbb76994f。稍微跟一下,就会发现js是在match1.js 中。但是和浏览器对比了一下,哎值不一样。原创 2024-04-29 23:19:10 · 141 阅读 · 0 评论 -
某h5set参数
对比一下标准算法,加密一致,分别是md5和sha256. ijk计算好以后,body对象通过sha256加密,生成新的一个json去获取h5sec.这个js 用了ob 混淆,为了省头发,全量抠一下拿下来。这个js 是用ast 预先大概处理了一下,只还原了函数,本地覆盖一下即可。通过对图二和图1 断点分析,可以发现在进入sign 以后有了h5set参数。是个异步函数,执行到刚才的js里 ,会返回个json,包含h5st 的参数。依然在还原过的js里寻找,会在上面发现如下的函数。这是图1 附近的一些js,原创 2024-02-22 16:46:23 · 265 阅读 · 0 评论 -
so入门分析
看一下堆栈 在jadx中,直接看 at com.maihan.tredian.net.MhRequestUtil.a(MhRequestUtil.java:19)在上层函数,用objection hook一下 确定了这个函数。说明 tzrd 是java 层的加密,账密iv都有了。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。拖进去打开一下 ,是导出函数、 f5 反编译一下。把这个参数解密一下: base64。去hook一下 这个 base64。实际上就是最后加了一串这个参数。原创 2024-01-22 15:50:09 · 943 阅读 · 0 评论 -
基于fart的x60的整体加固测试
fart x60拖壳原创 2024-01-22 12:22:40 · 1405 阅读 · 0 评论 -
ndk基础
jniEnv 每个线程都有一个 每个线程生成的地址都不一样 主和子 env 的地址不一样。java nativate interface 允许java和 其他语言的交互。安卓 x86 v7a v8a app里面要提供,安卓才能跑起来。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。java层声明和调用 类似c++ .h。**jni创建java对象 构造函数 **javavm 每个进程只有一个。java 和cpp怎么关联。jnienv 获取方式。原创 2024-01-19 02:41:55 · 101 阅读 · 1 评论 -
ndk开发学习
jniEnv 每个线程都有一个 每个线程生成的地址都不一样 主和子 env 的地址不一样。java nativate interface 允许java和 其他语言的交互。安卓 x86 v7a v8a app里面要提供,安卓才能跑起来。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。java层声明和调用 类似c++ .h。**jni创建java对象 构造函数 **javavm 每个进程只有一个。java 和cpp怎么关联。jnienv 获取方式。原创 2024-01-16 23:51:38 · 88 阅读 · 1 评论 -
fart加固概略及优化
fart原创 2024-01-09 17:33:19 · 402 阅读 · 0 评论 -
安卓篇-webview调试以及源码修改
webview调试原创 2024-01-08 14:54:37 · 1122 阅读 · 1 评论 -
c++入门学习笔记
c++原创 2024-01-05 00:14:06 · 505 阅读 · 1 评论 -
pixel6编译&kernelsu
首先按文档的方法,走了推荐的办法,下载androidImageKitchen,将AnyKernel3中的image 导出来后,按流程unpackimg ,repacking。然后在b站看到别人用的 android13-5.10.107_2022-11-**boot.img.gz **fastboot flash boot boot_new.img 后失败。aosp 内核 驱动。原创 2024-01-03 22:50:54 · 1046 阅读 · 1 评论 -
逆向系列-小程序1
偶然发现 ,有个绿色的exe 挺好用,全名 unwxapp.exe ,可以解出来app.js,app.json。开始小程序系列,用了解包的第一个工具,结果解出来没有app.js 和app.json。报错处理–直接把值置空。原创 2023-12-19 23:05:41 · 1132 阅读 · 5 评论
分享