749 1 分钟

猿人学反混淆刷题平台:https://match.yuanrenxue.com/match/2 # 第三题: 抓取 5 页商标的数据,获取出现频率最高的申请号 # 打开 fiddler 抓包,发现请求页面数据之前还请求了一个页面 本来以为简单,请求数据之前需要请求一下另一个 url,却被下面的 js 代码带跑偏。 放到脚本请求一下,返回过来一段 js 代码。 # 大概猜到,加密跟这段 js 代码有关系,直接扣出来放到 pycharm 里格式化 ( ctrl+alt+l ), 分析一下这段代码 # 上图可以清晰看出这段代码,核心部分应该就是 eval 中的字串,在 debugger...
2.3k 2 分钟

猿人学反混淆刷题平台:https://match.yuanrenxue.com/match/2 # 第二题:抓取五页热度值,求和 # 打开控制台,看加密字段,发现有 debugger 反调试, 直接 Never pause here , 上一题讲过。 分析请求参数, cookie 里面的 m 应该就是加密字段。 # cookie 加密, 我们直接 hook 一下 cookie 的设置 先打一个 script 断点,主要是为了在 cookie 生成之前做一些操作, source -> Event Listener Breakpoint ->...
7k 6 分钟

猿人学反混淆刷题平台:https://match.yuanrenxue.com/match/1 # 第一题:抓取五页机票价格,求平均 # 首先刷新页面抓包,有个 500ms 的定时器,用来执行 debugger , 常规的反调试手段,直接右键选择 Never pause here # 切到 Network 界面,查看 XHR 请求,确定下图链接就是获取数据的接口 # 分析请求参数,确定关键点,这里的 m 参数看上去极大可能就是关键的加密参数 # 下面打个 XHR 断点,跟堆栈,找到 m 的生成位置 复制链接的关键域名 match.yuanrenxue.com/api/match...
809 1 分钟

# 正则非获取匹配 (?:pattern) 非获取匹配,匹配 pattern 但不获取匹配结果,不进行存储供以后使用。这在使用或字符 “(|)” 来组合一个模式的各个部分是很有用。例如 “ industr(?:y\|ies) ” 就是一个比 “ industry\|industries ” 更简略的表达式。 (?=pattern) 非获取匹配,正向肯定预查,在任何匹配 pattern 的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows (?=95|98|NT|2000)” 能匹配 “Windows2000” 中的 “Windows”,但不能匹配...
2.2k 2 分钟

scrapy 框架访问链接时,post 请求的几种姿势;在使用 scrapy 进行爬虫编写的时候,经常会遇到一些 post 请求,根据不同的 header 往往会有不同的参数提交方式。 # Query String Parameters 这种是相对简单的,参数可以直接拼接在 url 中,在 url 中 ? 后面的部分即为请求的参数,并以 & 分隔开来。 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36...
1.2k 1 分钟

# ADB 常用指令 adb shell getprop ro.build.version.release # 获取系统版本adb shell getprop ro.build.version.sdk # 获取系统 api 版本adb shell dumpsys window | findstr mCurrentFocus # 获取 apk 包名和当前进程名,或者后面 findstr FocusedWindowadb shell getprop ro.product.cpu.abi # 查询手机信息(32 位 / 64 位)adb shell pm list package #...
164 1 分钟

# 日期比较 from datetime import datetimelast_date = datetime.strptime(pubtime, "%Y-%m-%d")curr_date = datetime.today()del_day = curr_date - last_dateif del_day.days < 2: # 判断是否小于两天 pass
516 1 分钟

使用 python 导入模块的时候,明明路径没问题,确报错: ImportError: No module named myModule下面提供两种解决思路: # 将模块添加到环境变量,然后再 import 文件目录如图所示: --test_jjj # 文件夹 -- test2 # 文件夹 -- test1.py # py 模块 -- mian.py # py 模块# main.pyimport sysimport osp = os.getcwd() + "/test2" # os.getcwd () 获取当前工作目录sys.path.append(p) #...
438 1 分钟

有时候明明修改了代码,当你 git push 的时候,确提示: Everything up-to-date , 解决办法:在 git push 之前需要 commit 一下,git 三部曲 git add *git commit -m "some msg"git push -u origin master假如上面操作无效,请使用下面的办法: # 创建新分支 git branch newbranch # 查看分支是否创建成功 git branch --list成功会输出下面 log *master newbranch # 然后切换到新创建的分支 git...
1.7k 2 分钟

有时候我们可能需要在同一台电脑上配置多个 SSH Key ,比如公司项目使用的是 GitHub ,个人开发用的是码云 Gitee 。这个时候我们可能需要有两个 SSH Key , 主要解决思路是生成 ssh 密钥的时候设置不同的文件名区分,本教程基于 windows 环境。 # 1. 使用指令生成 github 的 key,一路回车就可以在用户目录下生成 .ssh/id_rsa.pub ,因为我之前生成过一次,所以有 overwrite 的选择。 $ ssh-keygen -t rsa -C "你的git邮箱地址"​ 完成即可看到如下图的 log: # 2. 用命令...