- 博客(273)
- 资源 (10)
- 收藏
- 关注
原创 [007]爬虫系列 | RPC调用简单示例
一、背景 至于RPC是什么,本篇文章不做详细解答!请自行百度查看。二、效果 远程服务器发送参数,本地客户端调用相关主函数,将返回结果发送给服务器!输入相关变量返回相关Token!!!三、实现本文主要通过Websocket实现RPC调用!3.1编写Websocket服务端process.stdin.setEncoding('utf8');var WebSocketServer = require('ws').Server,wss =...
2021-08-12 18:11:49
2068
1
原创 [007]爬虫系列 | 没有油候&Fiddler如何Hook?!!!
一、找到首次加载的js用源码面板打开二、第一行打断点格式化:三、刷新网页成功断点&执行hook!:代码如下:(function() { 'use strict'; var cookieTemp = ""; Object.defineProperty(document, "cookie", { set:function(val){ if(val.indexOf('BA_HECTO...
2021-08-12 11:57:37
1049
原创 [007]爬虫系列 | 浏览器欺骗 - 状态码欺骗
一、背景 有些时候网站开发者为了反爬,会做一些状态码欺骗的处理,【原理如下】:例如:浏览器发送一个请求,获取一个js文件,服务器返回状态码,例如:503等此时浏览器就会按照状态码503给它做相应的处理!!!即:浏览器为了速度,会清缓存!!所以直接search或者response看不到任何东西!!!【如下】二、解决虽然浏览器会清空缓存,那么我们可以通过fiddler抓包查看响应内容即可!!!fiddler不会清掉!!!备注:由于找了挺久,没...
2021-08-07 17:00:01
515
原创 [007]爬虫系列 | 如何本地调试 eval ?代码格式化问题 ?转义符问题 ?
一、背景 有些时候,我们遇到一些混淆,里面存在很多eval!!!就一行代码【如下】,难以阅读!!!除此之外还会存在转义符\'等,【如下】那么该如何调试比较好?本文教一个比较好的办法:debugger大法借用浏览器帮忙代码美化!!!二、方法介绍本文以之前写的一篇文章为例子《[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第三题: 访问逻辑 - 推心置腹》分析上面的代码,【如下】var x="div@Expires@@captcha@wh...
2021-08-07 15:57:29
798
原创 [007]爬虫系列 | so-json 过本地反调试
一、背景js[最牛加密]:https://www.sojson.com/jsobfuscator.html本文主要介绍如何过:正则防止格式化 禁止控制台输出 死循环 setInterval函数二、正文2.1 禁止控制台调试我们直接将加密后的代码复制到控制台运行,发现直接被debugger!!!那么肯定是因为一些原因被识别出来被调试了!至于什么原因,这里不说明!那我们现在直接从代码运行最上面开始进行调试,【即直接在最顶部加上debugger!...
2021-08-07 01:05:08
991
原创 [007]爬虫系列 | 插桩 - 调试JS代码 - 某度为例
一、背景 有些时候我们想获取某个变量的值,看其如何变化!但是又不想每次都是断点之后在再控制台打印其【太耗时间了!】,哪还有什么办法?那就是插桩!!!二、插桩 本文以某度为例子!实现效果如下:2.1抓包 通过fiddle抓包,然后将想替换的那个js代码复制出来,然后更改代码! 在fiddler中设置替换规则!启动规则:备注:在这里可能会遇到一个问题!如下:此问题,勾选unma...
2021-08-05 22:34:15
2205
原创 [007]爬虫系列 | 信息校验型反爬 - 通过Hook找出Cookie生成位置 - 某度为例
一、背景 有些时候会遇见一些Cookie反爬【特指:Cookie与JS结合,客户端生成Cookie,服务器端验证Cookie】。有些时候直接通过search无法找到具体位置【被混淆或者查询结果太多!!如:图1.1】。图1.1 我们该如何快速找到生成位置?!!!Hook! 下面是我通过油猴写的一段Hook!二、代码// ==UserScript==// @name baidu// @namespace ...
2021-08-05 10:54:32
1162
原创 [007]爬虫系列 | Websocket爬虫-某鱼体育为例
一、背景 没怎么试过Websocket进行爬虫过!所以最近了解了一下。因此写了这篇文章!至于Websocket是什么,这里不做详细说明,请自行去百度查阅!该文章主要提供交流学习使用,请勿利用其进行不当行为!如本篇文章侵犯了贵公司的隐私,请联系我马上删除!如因滥用解密技术而产生的风险与本人无关!二、正文2.1调试打开Chrome调试工具,点击network调试面板查看,找到状态为101的请求:备注:status 101:协议切换,响应101即说明服务端...
2021-07-03 19:09:41
891
2
原创 [007]爬虫系列 | 某道翻译逆向解析
一、背景 在我准备继续写某条的下篇文章的时候,忽然有个朋友说某道翻译不知道怎么逆向,那么现在就先来一波某道翻译叭!该文章主要提供交流学习使用,请勿利用其进行不当行为!如本篇文章侵犯了贵公司的隐私,请联系我马上删除!如因滥用解密技术而产生的风险与本人无关!二、正文2.1分析先打开调试工具调试调试:字段初始描述:i: 翻译的词 from、to、smartresult、client、doctype、version、keyfrom、action:...
2021-07-03 12:07:18
297
1
原创 [007]爬虫系列 | 某条加密参数_signature(短)逆向解析
一、背景最近脑子瓦特了,无法专心学习,只能写写逆向了。记得前端时间也有人问过我关于某条_signature参数问题,现在就写篇文章叭。该文章主要提供交流学习使用,请勿利用其进行不当行为!如本篇文章侵犯了贵公司的隐私,请联系我马上删除!如因滥用解密技术而产生的风险与本人无关!备注:本文仅仅分析短_signature参数,长_signature参数下次再解析。二、正文1、找到_signature位置打断点分析:调试器调试很明显_signature参数通..
2021-07-02 13:25:46
6310
5
原创 [003]小程序系列 | 标签设置了bindtap无法点击?层级问题!!!
目录一、背景1.1效果1.2视图层1.3逻辑层1.4提出问题二、问题探索2.1将bindtap放在class="video"上(也就是class="item"的父节点上)2.2将bindtap放在class="tag"上(也就是class="item"的子节点上)2.3查看页面结构2.3.1z-index=-1是什么?2.3.2没注释z-index=-1前效果:2.3.3注释z-index=-1后三、总结如果以后真的往前端方面发展,肯定...
2021-03-06 10:50:09
1033
原创 [007]爬虫系列 | 油猴插件简单编写Hook例子 -- 记录
// ==UserScript==// @name Base64 hook// @namespace http://tampermonkey.net/// @version 0.1// @description try to take over the world!// @author You// @match file:///*// @grant none// ==/UserScript==(function(.
2020-12-07 16:20:26
1597
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(下)
一、备注在阅读此文章前,请先阅读前两篇《[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)》 《[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)》二、分析&汇总前两篇文章分别分析了cookie的生成!!!...
2020-10-31 11:04:03
19699
4
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)
一、备注在阅读此文章前,请先阅读前一篇《[007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)》二、找参数来源(二)在前一篇文章中,我们找出了Cookie里面m生成函数,并且封装出来了一个脚本!!!本篇文章我们就来找cookie另外一个属性:RM4hZBv0dDon443M不知道大家还记不记得,我们前一篇中有找到一段代码:由这一段代码生成的:$_ow = ""; for (var h = 0; h < w..
2020-10-29 22:35:19
1233
1
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(上)
一、备注由于此题目比较复杂(个人感觉哈!大佬别喷!),所以博主分析了一个上午,也就只能得出m的生成,所以还是分两天写吧!!!二、题目http://match.yuanrenxue.com/match/5三、分析按照前面几题习惯:抓包一看究竟!!!分析发现每页请求拿的都是同一个cookie&参数!!!如果cookie过期了那么就会返回400!!!那么 我们现在首先直接通过postman模拟请求一下:我们发现其实第一页似乎并没有反爬的操作!!!...
2020-10-29 16:51:46
12841
4
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第四题: 雪碧图、样式干扰
一、题目http://match.yuanrenxue.com/match/4二、分析2.1抓包分析按照习惯,一开始直接抓包:2.2模拟请求通过postman模拟请求:都很顺利!!!很明显此题考点都不在上面!也很明显的是:图片转 数字!!!2.3图片转数字我们先写python代码获取上面的返回值先吧(格式化)!import requestsimport jsonimport reurl = 'http://match.yuanrenxue...
2020-10-28 17:20:44
13068
2
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第三题: 访问逻辑 - 推心置腹
一、题目《猿人学爬虫攻防大赛 | 第三题: 访问逻辑 - 推心置腹》二、分析抓包一看究竟通过postman模拟请求发现,他返回一段脚本:通过代码美化&分析后发现:其实这个就是一个蜜罐!!!啥用处也没有!!!那么现在我们分析一下Cookie,我们发现存在一个sessionid字段:但是为什么使用postman直接请求没返回数据呢?都已经模拟整个头部了!后来仔细看看!!!发现每次请求数据之前都会请求http://match.yuanrenxue.c...
2020-10-28 14:29:29
1323
4
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第二题: js 混淆 - 动态Cookie
一、题目链接:http://match.yuanrenxue.com/match/2二、分析按照以往习惯,我们先按F12打开控制台,Network抓包,勾选preserve log保留日志,并且开启无痕模式,F5刷新进行抓包由于题目标明考点是动态Cookie,我们直接从Cookie入手...
2020-10-28 10:28:41
1426
原创 [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第一题: js 混淆 - 源码乱码
一、备注最近实在是无聊,看书也看不进去,还是写写博客消遣一下时间吧!!!二、题目 链接:http://match.yuanrenxue.com/match/1 三、分析3.1去debugger一进去,打开调试(F12),进入debugger,为了接下来的分析,直接禁用debugger后F5刷新!!!3.2抓包分析刷新几次,发现每次只有请求字段m不一样!!!也就是说,咱们只要知道m怎样生成的就可以解决此题!!!3.3栈跟踪...
2020-10-27 17:57:55
1972
5
原创 [013]操作系统原理系列 | SELINUX
一、概念安全增强型Linux(Security-Enhanced Linux)简称SELinux,他是一个Linux内核模块,也是Linux的一个安全子系统 SELinux主要作用:最大限度的减少系统中的服务进程可以访问的资源(最小权限原则)二、功能&命令功能 命令 检查状态 getenforce 检查状态 /usr/sbin/sestatus -v 临时关闭 setenforce 0 永久关闭 /etc/selinux/con..
2020-10-25 08:06:00
113
原创 [013]操作系统原理系列 | 树莓派Docker Mongodb
一、拉取容器docker pull andresvidal/rpi3-mongodb3二、创建映射文件夹mkdir -p /data/db/mongo三、启动容器docker run -d --name rpi-mongodb3 -v /data/db/mongo:/data.db -p 27017:27017 andresvidal/rpi3-mongodb3 mongod
2020-10-11 22:02:10
119
原创 [013]操作系统系列 | 树莓派更换镜像源
一、修改软件更新源sudo nano /etc/apt/sources.list用http://mirrors.ustc.edu.cn/raspbian/raspbian/替换掉原本的http://raspbian.raspberrypi.org/raspbian/二、修改系统更新源sudo nano /etc/apt/sources.list.d/raspi.list和上面一样!通过http://mirrors.ustc.edu.cn/raspbian/raspbia...
2020-10-10 23:00:16
302
原创 [013]操作系统原理系列 | mongodb-exporter属性
Usage of /mongodb_exporter: -alsologtostderr log to standard error as well as files -groups.enabled string Comma-separated list of groups to use, for more info see: docs.mongodb.org/manual/reference/command/serverStatus/ (default "asserts,du.
2020-10-01 08:39:19
880
1
原创 [013]操作系统原理系列 | prometheus监控docker&linux等状态
备注:此Blog仅仅为了个人记录命令而建!!!一、监控系统Prometheusprometheus.yml:global: # How frequently to scrape targets by default. scrape_interval: 15s # How frequently to evaluate rules. evaluation_interval: 15s# Rule files specifies a list of globs. Ru.
2020-09-29 21:40:00
402
原创 [008]C/C++系列 | 最小的程序 不一样的HelloWorld!!!
一、需求 日常的HelloWorld打印,需要用到C语言库里面的函数(printf),我们希望“小程序”脱离C语言库,使它成为一个独立于任何库的纯正“程序” 日常使用的程序,都是以main作为入口,现在我们自定义一个入口(nomain) 日常的HelloWorld会产生很多段,现在我们需要将所有的段合并到"tinytext"段 二、实现2.1GCC内嵌汇编int write(int filedesc, char* buffer, int size);函数实现..
2020-09-16 15:05:07
391
原创 [008]C/C++系列 | 软中断算法实现
//此图来源于网络/* * trab.cpp * Copyright (C) 2020 root <root@tw.com> * * Distributed under terms of the MIT license. */#include <iostream>#include <stdio.h>#include <csignal>#include <unistd.h>#include <sys/t...
2020-09-14 19:20:46
636
原创 [008]C/C++系列 | 进程创建 && 子进程处理
/* * thread.cpp * Copyright (C) 2020 root <root@tw.com> * * Distributed under terms of the MIT license. */#include <iostream>#include<unistd.h>using namespace std;int main(){ pid_t pid; cout<<"父进程"<<endl;.
2020-09-14 18:03:09
219
原创 [008]Python系列 | // 和 / & : ::区别
“ / ” 为浮点数除法,返回浮点结果“ // ” 表示整数除法,返回不大于结果的一个最大整数
2020-08-30 14:05:56
1032
原创 [008]C/C++系列 | g++ 一些选项说明
-g- turn on debugging (so GDB gives more friendly output) -Wall- turns on most warnings -Oor-O2- turn on optimizations -o<name>- name of the output file -c- output an object file (.o) -I<include path>- specify an include directory...
2020-08-25 12:45:14
252
原创 [008]C/C++系列 | C++ 11区间迭代
一、数组int array[] = {1,2,3,4,5};for(auto &x : array) { std::cout << x << std::endl;}二、容器std::vector<int> arr(5, 100);for(std::vector<int>::iterator i = arr.begin(); i != arr.end(); ++i) { std::cout << *i .
2020-08-25 12:24:41
346
1
原创 [008]C/C++系列 | C++11 auto & decltype
一、背景C++ 11引入了auto &decltype实现类型推导,在某种意义上提供了无需操心变量类型的习惯(类似弱类型语言)。二、auto使用auto进行类型推导的一个最为常见而且显著的例子就是迭代器。例如:for(vector<int>::const_iterator itr = vec.cbegin(); itr != vec.cend(); ++itr)替换为auto:for(auto itr = vec.cbegin(); itr !=...
2020-08-25 12:20:06
194
原创 [008]C/C++系列 | C/C++混合调用(二) 函数指针
当我们C和C++混合编程时,有时候会用一种语言定义函数指针,而在应用中将函数指针指向另一中语言定义的函数。如果C和C++共享同一中编译和连接、函数调用机制,这样做是可以的。然而,这样的通用机制,通常不然假定它存在,因此我们必须小心地确保函数以期望的方式调用。而且当指定一个函数指针的编译和连接方式时,函数的所有类型,包括函数名、函数引入的变量也按照指定的方式编译和连接。如下例:typedef int (*FT) (const void* ,const void*);//style of ...
2020-08-25 00:31:54
206
原创 [008]C/C++系列 | C/C++混合调用(一) extern
一、引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}#endif它到底有什么用呢,你知道吗?而且这样的问题经常会出现在面试or笔试中。下面我就从以下几个方面来介绍它:1、#ifdef _cplusplus/#endif _cplusplus及发散 2、extern "C" 2.1、extern关键字 2.2、"C" 2.
2020-08-25 00:18:01
369
原创 [008]C/C++系列 | C++11弃用的特性
注意:弃用不等于废用!!!弃用表示即将废弃,避免使用!!!弃用的特性:char *str = "hello world!"; // 将出现弃用警告 如果一个类有析构函数,为其生成拷贝构造函数和拷贝赋值运算符的特性被弃用了。 不再允许字符串字面值常量赋值给一个char *。如果需要用字符串字面值常量赋值和初始化一个char *,应该使用const char *或者auto。 C++98 异常说明、unexpected_handler、s...
2020-08-24 23:31:15
671
原创 [013]操作系统原理系列 | Shell while read line无法读取最后一行问题
一、问题备注:利用while read line读取文件时:如果文件最后一行之后没有换行符\n,则read读取最后一行时遇到文件结束符EOF,循环即终止。从而导致最后一行无法读取!!!二、解决办法while read line || [[ -n ${line} ]]当遇到文件结束(最后一行)时,可以通过测试$line是否有内容来进行继续处理!!!...
2020-08-21 21:31:35
1131
原创 [018]HackerRank系列 | Shell小数处理(scale 四舍五入)
一、问题二、解决办法read resString;echo "scale = 3; $resString" | bc注意:由于上面Scale处理小数不可以四舍五入!!!对于某些测试案例会报错!例如:三、小数四舍五入# 先通过scale处理后四位小数,再通过printf四舍五入为三位小数read resString;printf "%0.3f" $(echo "scale = 4; $resString" | bc)...
2020-08-21 21:04:11
1687
原创 [018]HackerRank系列 | Shell遍历某个字符串多种用法
一、问题二、用法2.1 $(seq 1 50)for num in $(seq 1 50)do echo "${num}"done2.2{1..50}for i in {1..50}do echo $idone2.3sedecho {1..50} | sed 's/ /\n/g'2.4seqprintf $(seq -s "\n" 1 50)
2020-08-21 19:45:27
254
2、大数据篇(未完待续...).pdf
2020-05-04
1、系统安装篇.pdf
2020-05-04
移动开发思维导图
2019-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人