dex0423 的博客

记录工作学习的点点滴滴。

JS逆向:JS 逆向方式破解某验滑块验证码

1. 抓包分析 打开某验的 demo,点出验证码图片,分析 network 中的请求以及参数变化 请求与参数: 1、 Request URL: https://www.geetest.com/demo/gt/register-slide?t=1640096834809 返回: challenge: "5bd76b0b1c9388a667bba39af5cfd71e" gt: "01...

JS逆向:JS 中常见的加密算法及逆向特征

1. 取盐算法 取盐 算法,也叫 摘要算法,是对数据进行一系列运算后,截取一部分关键值进行校验。因此运算过程 不可逆,无法还原出加密前的 初始文本。 取盐算法得到的结果长度一般是固定的,无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。一般地,只要输入的文本不同,对其进行摘要以后产生的摘要消息也必不相同,但相同的文本输入必会产生相同的输出。 1.1. MD5 逆向特征 ...

JS逆向:Hook 技术原理以及在 JS 逆向中的相关应用

Hook 技术原理 Hook 是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,也可以强制结束消息的传递。 简单来说,修改原有的 JS 代码就是 Hook。 Hook 技术之所以能够实现有两个条件: 客户端拥有 JS 的最高解释权,可以决定在任何时候注入 JS,而服务器无法阻止或干预。服务端只能通过检测和混淆的手段...

Redis:Redis 使用注意事项

修改 redis.conf 前先做备份 修改之前先备份一份默认的初始化配置文件,以备不时之需。 Redis 字符串 最大字符串为512M,但是生产环境一般不用大字符串。 Redis 添加元素 江湖规矩一般从左端Push,右端Pop,即LPush/RPop。 set 无序集合 set 无序集合,主要应用于 去重、过滤; SPOP: – spop 从集...

Redis:Redis 无序集合 Set 常用命令解读

前言 在Redis中,集合(Set)是一个无序的字符串数据集,且该数据集中的元素具有唯一性(即不存在重复的元素)。 在下面的文章中,列举了日常工作中我们常用的 Set 集合命令: SADD SADD命令用于将指定元素添加到集合中,并返回实际添加的元素个数(即不包括已经存在的元素个数)。当指定的元素在集合中已经存在时,将忽略该元素。若指定的键不存在,在执行操作前将创建一个新的空集合。 ...

Python:继承、单继承 和 多继承

1. 继承 什么是继承 继承是一种创建新的类的方式; 新创建的叫子类; 被继承的叫父类、超类、基类; 示例: ``` class Animal(): # 创建一个父类 Animal … def init(self): … prin...

Python:并发 & 并行、同步 & 异步、阻塞 & 非阻塞

1. 并发 & 并行 1.1. 并发 在一个 时间段内,多个程序 在 同一个 CPU 上 运行; – 但实际任一个时刻点上只有一个程序在处理机上运行; 1.2. 并行 在一个 时间点上,多个程序 在 多个 CPU 上 运行; 2. 同步 & 异步 同步 & 异步 概念属于 I/O 操作范畴, 2.1. 同步 代码调用 I/...

Python:实例方法、静态方法和类方法

1. 实例方法 什么是实例方法 – 只有实例化对象之后才可以使用的方法,称为 类方法; – 一般在类中定义的方法,都是 类方法; – 该方法的第一个形参接收的一定是对象本身,即 self; 示例: ``` class Animal(): … def eat(self): … print(“animal eat”) … … c...

Python:多态、鸭子模型和抽象基类

1. 多态 什么是多态 多态,指的是一种事务具有多种形态; python是一种动态语言,默认支持多态,同一个方法 调用 不同的类对象 ,执行的 结果各不相同; 多态实现 继承:不同子类 继承 同一父类; 重写:子类重写 同一个方法,保证执行结果各不相同; 示例 ...

Python:协程中 Task 和 Future 的理解及使用

1. Task 概念及用法 Task,是 python 中与事件循环进行交互的一种主要方式。 创建 Task,意思就是把协程封装成 Task 实例,并追踪协程的 运行 / 完成状态,用于未来获取协程的结果。 Task 核心作用:在事件循环中添加多个并发任务; 具体来说,是通过 asyncio.create_task() 创建 Task,让协程对象加入时事件循环中,等待被调度执行。 ...