Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

Mr.li's Blog

Welcome to my Blog!
爬虫——请求参数逆向
登陆参数类 新浪博客登陆 Input输入: Username账号 password密码 params请求参数: https://login.sina.com.cn/sso/prelogin.php?entry=boke&callback=sinaSSOController.preloginCallBack&su=MTUyMzIxMzEy&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.19)&_=1654090585990 entry: boke——固定值 callback: sinaSSOC ...

每周一个开源项目——ddt-sharp-shooter
ddt-sharp-shooter 这是一个基于 Pynput 的 DDT 工具。基本原理在于,得知风力、角度、距离的情况下,参考力度表得出发射力度,而后发射。 其中,风力、角度通过 ddddocr(An awesome captcha recognition library)识别,屏距通过标记屏距测量框、敌我位置来推算,力度通过按压时长来体现,具体见这里。 使用到的库: screeninfo、pillow、ddddocr、pynput、py2app pynput: 控制和监视输入设备;类似的有PyHook3(监视键鼠)、pywin32 (模拟键鼠) ddddocr:识别验证码,这边 ...

开源项目代码阅读记录
爬虫系列 抢购、秒杀 taobao_seckill 淘宝秒杀物品:分为selenium版和request网络请求版,微小的区别在于,api先请求的是购物车的物品信息,selenium则是勾选选择框。 流程大致都相同:①keep_wait等待临近抢购时间----->②将需要的信息缓存住,不再刷新(比如要抢购的物品信息、cookies…)----->③进行结算(/点击按钮)----->④提交订单(/点击按钮)----->⑤支付订单(/点击按钮); 使用browsercookie来管理浏览器cookies——从浏览器提取保存的cookies的工具。它是一个很有 ...

JS逆向-webpack打包网站实战
[TOC] Webpack逆向 webpack打包是前端js模块化压缩打包常用的手段,特征明显,比如下方的形式的代码就是webpack分发器 123456// 分发器!function(x){ function xx(n){ return ..call(**.exports, ***, ***.exports, xx) }}() 又或者更直观的表现n[“xxx”]这种,你可以大概知道了这是调用了webpack打包的js模块代码。 webpack打包后JS依赖模块代码的固定结构: 12345678(this["webpackJs ...

Python进阶
xxxatrr家族 hasattr() 用于判断对象是否包含对应的属性。 hasattr 语法:hasattr(object, name) setattr() setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。如果属性不存在会创建一个新的对象属性,并对属性进行赋值。 setattr() 语法:setattr(object, name, value) getattr() getattr() 函数用于返回一个对象属性值。 getattr(object, name[, default]) object – 对象。 name – 字符串, ...

mitmproxy拦截代理——PC版HttpCanary
HttpCanary HttpCanary是Android系统下功能最强大的网络分析工具(IOS的是Thro),支持TCP/UDP/HTTP/HTTPS/WebSocket等多种协议,可以视为Android平台下的Fiddler和Charles。 ★强大的调试功能 断点指定请求,支持修改数据再提交。 注入器支持,创建自定义规则修改返回数据包(★静态注入)。 支持对网络请求重发、编辑重发、批量重发等操作。 配置黑名单或者白名单,自由指定目标抓包。 支持数据包屏蔽,比如屏蔽客户端发向服务器的指定数据包。 mitmproxy 顾名思义,mitmproxy 就是用于 MITM 的 proxy, ...

爬虫App——夜神模拟器xposed+inspeckage
头一次接触到App参数加密的,因此需要对加密参数进行反编译,了解到有工具inspeckage可以方便的来找寻加密参数。而其使用的条件为 手机已ROOT 在Xposed框架下运行 于是开始在夜神模拟器上捣鼓安装xposed、inspeckage。 安装 xposed框架 在不少地方都下载了xposed框架,但都不太使用,后来了解到模拟器的xposed是专用的,根据夜神模拟器官网介绍的夜神模拟器如何安装xposed框架后,决定还是在模拟器的应用商店进行安装xposed,下载安装后的名称为"xposed 派大星"。 下载安装后立马打开还是会显示没安装,需要点击" ...

toy reimplementation of an event loop in Python[翻译]
事件循环的一个小故事 Translated from: https://github.com/AndreLouisCaron/a-tale-of-event-loops 我最近被伯克利大学的研究员Nathaniel J. Smith关于 asyncio 的惊人见解所困。他的文章《关于后async/await世界中异步API设计的一些想法》( Some thoughts on asynchronous API design in a post-async/await world) 使得我 在最近大量使用asyncio后,对它有了一些(略)复杂的感受。 虽然这或多或少是他文章的重点,但他认为 ...

selenium不行的工作,pyppeteer上
验证码问题 该网站对频率检测十分敏感,很快就会出现"按住"验证码,模拟按住倒不难,但是按完以后有时并不能解决验证… 但是意外发现,在“无痕模式”下进行重新登录后,就可以解决验证…但是通过requests进行模拟登录后cookies还是无效。 解决方案: 既然模拟不行,那么就手动,因此想用selenium来模拟点击登陆。但是因为俄罗斯的问题,无法登陆。 于是只好更换selenium为pyppeteer。之前就听说了pyppeteer是可以代替selenium的模拟神器,相比Selenium 不太方便的地方:比如速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动 ...

V-P-N(Vmess)与Charles无法共用问题解决
最近需要抓一个需要翻墙才能访问的网页的包,发现VPN直连时会导致 Fiddler 和 Charles 抓包工具无法正常进行抓包,网上找了以后发现了一些解决方案:Github:VPN直连,导致 Fiddler 和 Charles 抓包工具无法正常进行抓包解决方案 ——试了貌似没用、windows下,实现vpn访问下的charles抓包设置中无网络问题的解决——收此启发指导了在charles的Proxy->external proxy允许其他端口代理 1.找到VPN软件的代理端口proxy port 我这边使用的是vmess,可以在选项->参数设置中查看,需要明确的参数是端口和协议, ...

使用Python转义实现前端加密算法-记录笔记
环境安装 123pip uninstall cryptopip uninstall pycryptodomepip install pycryptodome 前面两个卸载命令是为了防止一些安装环境问题,具体请看文章 pycryptodome AES加密 加密模式 AES 加密最常用的模式就是 ECB模式 和 CBC 模式,当然还有很多其它模式,他们都属于AES加密。ECB模式和CBC 模式俩者区别就是 ECB 不需要 iv偏移量,而CBC需要。 AES加密使用参数 以下参数都是在python中使用的。 参数 作用及数据类型 秘钥 加密的时候用秘钥,解密的时候需要同样的秘钥才能解出来; 数 ...

总得学点Elasticsearch吧
倒排索引 反向索引(inverted index)更熟悉的名字是倒排索引。 什么是倒排索引: 倒排索引也叫反向索引,通俗来讲正向索引是通过key找value,反向索引则是通过value找key。 举个具体的例子:我们一般是通过标题来找文章内容,即通过目录(正向索引);而反向索引的运用场景就是通过内容来找到是哪一篇文章(标题,作者……),而怎么建立反向索引呢?怎么更快更好地找到结果呢?这个就是搜索引擎做的事了、 正向索引:例如一个“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。那我们就可以直接通过对"文档1"Document这个结构 ...

算法与数据结构——滑动窗口、尺取法
Sliding window algorithm is used to perform required operation on specific window size of given large buffer or array.滑动窗口算法是在给定特定窗口大小的数组或字符串上执行要求的操作。 This technique shows how a nested for loop in few problems can be converted to single for loop and hence reducing the time complexity.该技术可以将一部分问题中的嵌 ...

[翻译]设计Pastebin.com(or Bit.ly)系统
设计Pastebin.com (or Bit.ly)系统 注:本文档直接链接到系统设计主题中的相关领域,以避免重复。请参考链接内容来了解总体的讨论要点、利弊权衡以及替代方案。 **设计Bit.ly**是一个类似的问题。只是Pastebin还具有一个额外的功能,即存储粘贴的内容,而不是原始的未缩短过的url。 第一步:列出用例和约束的大纲 确定应用场景:收集需求和范围问题;提问来弄清阐明用例和约束,讨论来作出假设。 在没有面试官来阐明清这些问题的情况下,我们将定义一些用例和约束。 用例 我们将确定问题的范围,只处理以下使用情况 用户:输入一段文本后,获得一个随机生成的链接 过期 ...

理了一天彻底弄懂元类——分享给你一起弄懂
这是一个在看开源代码时配到了单例元类写法后的一个原理贴,可以帮你彻底弄清元类、以及__new__和__call__,相信我,看完你绝对会有收获。 首先,关于元类的结论说在前头,先有个印象——小总结: 现在我们能知道为什么元类必须继承type了:因为我们实例化对象Foo(xxx)时调用了type.__call__,而type.__call__又会调用type.__new__因此如果type子类重写实现了__new__(返回的类实例对象的类型作控制)、__call__(对实例化的流程做控制),则可以对类对象的类型和类属性起到自定义的功能,而重写就必须继承type=>需要元类必须继承typ ...

PlantUML作图
最近在看开源代码,有些项目的架构和执行逻辑都非常有学习、借鉴意义,因此想作图可视化记录下来。 在写文档的过程中,经常需要进行画图。虽然说现在有很多类似viso之类的可视化画图工具,但是还是要花费大量时间在拖拉组件上,效率十分低下。而Plantuml与markdown类似,本质上是也算一门可以快速画图的设计语言,学习起来也很方便,学完后直接书写、不需要拖拽就能做出规整的图,能大大节约在布局上细枝末节的时间。 此外,PlantUML在vscode, webstorm都有相关的插件可以使用。 在线体验网站有很多使用的样例介绍,在此我就不过多介绍了。本文会以我使用到的功能图来提醒说明一下一些语法规 ...

研究生work——地图匹配
地图匹配 概念: 地图匹配(Map-Matching)是将运营车辆的有序的GPS位置关联到电子地图的路网上,将GPS坐标下采样序列转换为数字路网坐标序列的过程;本质上是平面线段序列的模式匹配问题( Alt等,2003) 地图匹配是一种将原始GPS位置映射到路网上的路段的过程,以创建对车辆所走路线的估算。 两个主要的地图匹配用例 乘车结束时,计算驾驶员行进的距离,以计算票价。——路线图匹配(EORMM) 实时 ,为ETA团队提供准确的位置并做出调度决策,并在rider应用程序上显示驾驶员的汽车。——实时地图匹配(RTMM) 不同点在于,实时地图匹配的要求比较高,必须低延时,因此相比 ...

深入学习使用Spring
From : https://www.bilibili.com/video/BV1fr4y1Y7UH?p=6 创建bean的方式: 声明式 <bean></bean> <bean></bean>: 通过xml来配置bean 123456789101112131415161718192021222324252627282930<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...

私有Gitlab配置SSH连接
SSH连接并不是像http连接一样,输入用户名和密码就可以了。SSH连接需要一些额外的配置 生成SSH秘钥和公钥 查询有效邮箱 首先要确定使用的邮箱,是不是自己认为的邮箱,比如我以为是chenli@sucsoft.com结果,却发现是399-chenli@sucsoft.com,那么按照自认为的邮箱申请的keys那自然不会work。——一般情况不会有歧义邮箱出现,但我这边确实跟想的不太一样 查询方法(一)——新建项目 创建空的仓库,提示中提及的邮箱就是有效邮箱 查询方法(二)——个人Preference 打开User Settings->Profile,其中有Email、 ...

Golang protoc的使用
使用Grpc需要有protoc的支持, 但默认安装的/Go/bin目录下只有go.exe、gofmt.exe两个可执行文件,因此要使用protoc的话,需要自己去下载 在https://github.com/protocolbuffers/protobuf/releases中下载Windows64的压缩包,为$protoc -go_out=. *.proto使用到的命令可执行文件 编写.proto文件, 如下所示 1234567891011121314151617syntax = "proto3";# 注意, 这边使用的是go_package, 类似的还有jav ...