08 2021 档案

摘要:####大规模抓取的抓取效率和抓取技巧问题 这个话题,只在大规模的时候有用,抓取几十个网页,其实差别不大,不需要这个问题, ### 第一个问题, 输入url,到返回数据发生了什么 这个你面试可以说是一个经典的面试题, 对这个问题越了解,你越能优化大规模的抓取,考验的是你的综合能力, ### 客户端发 阅读全文
posted @ 2021-08-31 02:43 技术改变命运Andy 阅读(130) 评论(0) 推荐(0)
摘要:#### 有时候app抓不到包,这不是工具的问题,而是你没有搞清楚网络协议, ### 网络协议 网络协议,比如http协议,这是全球通用的,大家约定好的,你要开发软件,就要遵守这个协议, 浏览器都是只能抓到应用层, ### TCP/IP五层模型五层协议:应用层:用户使用的应用程序都归属于应用层,作用 阅读全文
posted @ 2021-08-25 10:00 技术改变命运Andy 阅读(7910) 评论(1) 推荐(1)
摘要:### 具体怎么使用这个frida来逆向,来hook? 下面讲解一个案例: ## ### 分析这个题目: 第一步:这个是打开apk进入了这个页面,主界面有一个输入框,输入按钮,所以这个按钮应该是在apk的主界面, 第二步,我就要进入主界面的源码,看看源码, 第三步,既然要看源码,所以先apk反编译, 阅读全文
posted @ 2021-08-24 09:32 技术改变命运Andy 阅读(892) 评论(0) 推荐(0)
摘要:#### hook技术 1,hook,java层,这个相对简单,都是java代码, 2,hook,native层,so库,这个难度大,里面都是汇编, #### frida框架介绍: frida是一个逆向框架, 目前逆向框架比较知名的有两个,Xposed,frida Xposed,是java开发的,要 阅读全文
posted @ 2021-08-24 09:06 技术改变命运Andy 阅读(3375) 评论(0) 推荐(1)
摘要:#### 模拟器的安装和使用 1,本来是想在mac上使用mumu模拟器,但是安装Xposed一直失败, 2,我尝试使用真机来进行脱壳,但是Xposed可以安装, 电脑adb连接真机的方法: 首先真机打开开发者模式,进入设置,打开关于手机,找到版本号,一直点击版本号,在点击过程中会提示“还有×次,直到 阅读全文
posted @ 2021-08-23 19:09 技术改变命运Andy 阅读(3116) 评论(0) 推荐(1)
摘要:# MuMu模拟器Mac版本连接adb adb kill-server && adb server && adb shell # 获取系统版本 获取系统版本命令:adb shell getprop ro.build.version.release 也可以直接在设置里面,查看 阅读全文
posted @ 2021-08-23 17:50 技术改变命运Andy 阅读(327) 评论(0) 推荐(0)
摘要:#### app加固原理 #### 首先是为什么要加固app? 加固,就是为了防止被很容易的被逆向,逆向就是说把app的源代码抠出来,比如游戏app,如果别人想要抄袭我,逆向之后,把代码拿去,然后就可以用,后台都有,这是很危险的, 所以要加固,让你难以逆向,这不是完全杜绝,而是相对比较难, ### 阅读全文
posted @ 2021-08-23 17:48 技术改变命运Andy 阅读(5942) 评论(0) 推荐(0)
摘要:#### shuqi.apk mumu模拟器 ### 正常的shuqi.apk,是在模拟器可以正常运行的, ### 首先第一步使用apktool.sh d shuqi.apk 反编译出来这个apk, ### 然后再次打包这个apk, 使用命令,apktool.sh b shuqi 会在产生一个dis 阅读全文
posted @ 2021-08-23 12:47 技术改变命运Andy 阅读(1151) 评论(0) 推荐(0)
摘要:### 要逆向app,就要知道这个app正向的流程, ### apk的启动加载 1,dex文件的加载流程, 安卓源代码, 首先要知道这个安卓虚拟机加载dex文件的,是有两层的, java层的dex加载逻辑 native层的dex加载逻辑 如果你要手动脱壳的话,就要了解这两个层次的东西, 2,点击图标 阅读全文
posted @ 2021-08-23 11:51 技术改变命运Andy 阅读(510) 评论(0) 推荐(0)
摘要:#### mac,使用jadx,反编译apk jadx是一个非常好用的android反编译gui工具。下面就来介绍下jadx工具。 首先给出jadx的github地址:https://github.com/skylot/jadx macos 安装: brew install jadx 打开jadx界 阅读全文
posted @ 2021-08-23 08:17 技术改变命运Andy 阅读(4398) 评论(0) 推荐(0)
摘要:### 比赛第十题, ### 扣代码就是和时间斗争的过程,没有足够的耐心,扣不了代码, ## 比如识别文字,然后让你点击,这种js是解决不了的,只能是训练或者打码平台, #### ##### ### 最笨的办法就是二分法,一定能找出来,其实就是打印找错误的办法 ### #### ### 出现这样的混 阅读全文
posted @ 2021-08-22 16:51 技术改变命运Andy 阅读(1153) 评论(1) 推荐(2)
摘要:### 总结 ### ### 第一个,案例,比赛第4题, 他的每一个数字都是一个图片,所以你需要把图片都识别出来, 另外就是这个图片做了偏移,我们要还原出来, 怎么还原? 前面宽度之和+偏移量, 偏移量又是什么? 有left和right,还有正负, 我们要首先知道每一个字体的宽度是多少,然后就是前面 阅读全文
posted @ 2021-08-22 15:56 技术改变命运Andy 阅读(584) 评论(0) 推荐(0)
摘要:安装插件的地方: ### 查看pycharm的版本, ### 正常情况下,选中一段内容,再按引号,内容会被替换为引号 想要将选中的内容不被替换为引号,而在内容的两端加上引号,只需设置一下即可 File --> Settings --> Editor --> General --> Smart Key 阅读全文
posted @ 2021-08-20 08:51 技术改变命运Andy 阅读(61) 评论(0) 推荐(0)
摘要:# 函数的作用域 ## 1,全局作用域, 全局变量会在页面打开的时候生成,页面关闭后被销毁, 在全局作用域中,有一个全局对象,就是Window,这代表一个浏览器窗口,我们可以直接使用, 我们创建的全局变量,都会作为window的属性来保存的,所以比如,var name = "name",使用wind 阅读全文
posted @ 2021-08-17 18:26 技术改变命运Andy 阅读(232) 评论(0) 推荐(0)
摘要:# DOM操作 // DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。 // 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 // HTML DOM 模型被构造为对象的树。 // 根节点就是html,然后分 阅读全文
posted @ 2021-08-17 17:29 技术改变命运Andy 阅读(64) 评论(0) 推荐(0)
摘要:# 浏览器对象模型(Browser Object Model (BOM)) 所有浏览器都支持 window 对象。它代表浏览器的窗口。 所有全局 JavaScript 对象,函数和变量自动成为 window 对象的成员。 全局变量是 window 对象的属性。 全局函数是 window 对象的方法。 阅读全文
posted @ 2021-08-17 17:29 技术改变命运Andy 阅读(107) 评论(0) 推荐(0)
摘要:# 什么是同步? 所谓的同步就是在执行某段代码时,在该代码没有得到返回结果之前,其他代码暂时是无法执行的,但是一旦执行完成拿到返回值之后,就可以执行其他代码了。换句话说,在此段代码执行完未返回结果之前,会阻塞之后的代码执行,这样的情况称为同步。 # 什么是异步? 所谓异步就是当某一代码执行异步过程调 阅读全文
posted @ 2021-08-17 12:34 技术改变命运Andy 阅读(110) 评论(0) 推荐(0)
摘要:### cookies = "vaptchaNetway=cn; Hm_lvt_337e99a01a907a08d00bed4a1a52e35d=1628248083,1629106799; " \ "sessionid=g1siko0evn5hmnn3pbgl0vaoqjx29cfo; Hm_lp 阅读全文
posted @ 2021-08-16 22:48 技术改变命运Andy 阅读(319) 评论(0) 推荐(0)
摘要:#### 第一题 第一题,找到数据接口,第一页的接口重放攻击是正常的,但是第二页以后的接口重放攻击就是异常的了, 查看正常的和异常的两次请求,正常的请求头里面有一个safe参数,而且每次请求都是变化的, 既然每次都变化,怀疑是和随机数和时间有关,判断是js加密了这个safe参数放到了请求头,然后传递 阅读全文
posted @ 2021-08-16 19:41 技术改变命运Andy 阅读(595) 评论(0) 推荐(0)
摘要:### 1,Charles抓包工具的原理 原理都是在客户端和服务器之间充当代理服务器 正常的情况:客户端 服务器 增加了Charles的情况:客户端 Charles 服务器 Charles有两个功能, 1,接收客户端的请求,并且转发给服务器, 2,服务端返回结果给Charles,然后Charles转 阅读全文
posted @ 2021-08-16 08:38 技术改变命运Andy 阅读(1485) 评论(0) 推荐(0)
摘要:### 一,tcp/ip协议 tcp和udp:tcp像打电话,这是互动的,这是tcp的应答机制,全双工,udp像发短信,没有回复,是半双工,所以tcp复杂但是安全稳定 端口:指TCP/IP协议中的端口,端口号的范围从0到65535,比如浏览器网页服务的80端口,ftp的21端口,ssh的22端口,m 阅读全文
posted @ 2021-08-15 18:50 技术改变命运Andy 阅读(296) 评论(0) 推荐(0)
摘要:#### 为什么学习汇编语言? 1,学习底层的编程思维, 汇编语言是除了机器语言之外,最底层的语言了,你写的好的话是非常高效的,所以很多的驱动,嵌入式,都是汇编写的,当然也有c写的, 汇编语言直接在硬件上工作的语言,首先要了解硬件系统,才能有效的应用汇编语言对其编程,必须要了解的就是cpu和内存,其 阅读全文
posted @ 2021-08-15 06:59 技术改变命运Andy 阅读(429) 评论(0) 推荐(0)
摘要:#### c语言执行环境搭建 首先安装gcc,因为c语言需要编译才可以执行,所以要安装编译器,gcc就是一个编译器, brew install gcc 安装完了之后,使用gcc -v命令,正常就说明安装好了 新建一个helloc.c #include<stdio.h> int main() { /* 阅读全文
posted @ 2021-08-14 22:19 技术改变命运Andy 阅读(68) 评论(0) 推荐(0)
摘要:在 JavaScript 中,对象是王。如果您理解了对象,就理解了 JavaScript。 #### # 数据类型,之前说了有6种, 一共有6中数据类型, string,字符串, number,数字 Boolean,布尔, null,空值 undefined,未定义, object,对象, 前5种, 阅读全文
posted @ 2021-08-13 12:53 技术改变命运Andy 阅读(75) 评论(0) 推荐(0)
摘要:js里面函数也是一个对象,js里面除了基本数据类型,其他的都是对象, 普通对象只能装属性,但是函数可以封装一些功能, # 创建一个函数对象:函数定义 ## 第一种方法,使用function 关键字 声明一个函数, ``` function func1(a){console.log(a)} // 被声 阅读全文
posted @ 2021-08-13 12:46 技术改变命运Andy 阅读(69) 评论(0) 推荐(0)
摘要:# JS运算符 ``` /* 算数运算符: 1,加减乘除, + - * / 注意1,对于非数字的运算,都会转换为数字进行运算 比如:var a = true + true 结果是2, 注意2,两个字符串相加,是拼串, var a = "123"+"456" "123456" 注意3,任何值和Nan做 阅读全文
posted @ 2021-08-13 12:43 技术改变命运Andy 阅读(73) 评论(0) 推荐(0)
摘要:# 按照类型来分有基本数据类型和引用数据类型: ## 基本数据类型: 一共有6中数据类型, string,字符串, number,数字, Boolean,布尔, null,空值 undefined,未定义, object,对象, 前5种,是基本数据类型, ## 引用数据类型: Object【Obje 阅读全文
posted @ 2021-08-13 12:22 技术改变命运Andy 阅读(134) 评论(0) 推荐(0)
摘要:# js语言可以和Python进行对比学习, 1,打印, 2,注释 3,变量, # js简介 ``` js简介 英文:javascript 这是一门编程语言, 要学习什么? 1,js的核心语法: 1,基础语法 2,数据类型 3,函数 4,面向对象(ES6) 2,BOM:这是操作浏览器的,比如浏览器弹 阅读全文
posted @ 2021-08-13 12:14 技术改变命运Andy 阅读(149) 评论(0) 推荐(0)
摘要:# 我们现在说的js其实包含三部分: ECMAScript规范(欧洲计算机制造商协会,European Computer Manufacturers Association)、DOM规范、BOM规范,你要知道这三部分都有哪些内容。 其中: ## 第一部分:核心(ECMAScript) ECMA规范定 阅读全文
posted @ 2021-08-13 10:39 技术改变命运Andy 阅读(346) 评论(0) 推荐(0)
摘要:# Flask-RESTful Flask-RESTful是用于快速构建REST API的Flask扩展。 flask-restful官方文档:https://flask-restful.readthedocs.io/en/latest/quickstart.html#a-minimal-api # 阅读全文
posted @ 2021-08-12 19:48 技术改变命运Andy 阅读(136) 评论(0) 推荐(0)
摘要:执行脚本的备份: ``` workon flaskscrapy PIDS_MAIN=`ps -ef|grep AutotestFramework/test_run/main.py|grep -v grep|cut -c 9-15` if [ "$PIDS_MAIN" != "" ]; then ps 阅读全文
posted @ 2021-08-11 15:22 技术改变命运Andy 阅读(144) 评论(0) 推荐(0)
摘要:### ### ### #### 阅读全文
posted @ 2021-08-11 14:05 技术改变命运Andy 阅读(352) 评论(0) 推荐(0)
摘要:### 定位方式 定位说三种定位:id,class,xpath ### 操作说3种,点击,输入,获取元素值, ### 代码示例: from appium import webdriver import time import unittest class Test_Demo(unittest.Tes 阅读全文
posted @ 2021-08-10 20:52 技术改变命运Andy 阅读(469) 评论(0) 推荐(0)
摘要:### 假设一个股票软件,我要搜索100个股票,并且比较价格是否低于我设置的价格,如果低于了就通知我,如果不参数化,代码就要写100次,不至于, 那么怎么参数化呢? ### 阅读全文
posted @ 2021-08-10 10:19 技术改变命运Andy 阅读(58) 评论(0) 推荐(0)
摘要:### ### ### ### 上面的示例的解释: 1,noreset,这是一种弹框的处理方式,就是记住我们上次的操作,比如登陆,关闭弹框,下载就不会在去弹出弹框了, 2,怎么获取这个app的名字和activity呢,看截图的方式, 3,隐式等待,页面有可能加载比较慢,元素还没有加载出来,所以可以使 阅读全文
posted @ 2021-08-08 13:42 技术改变命运Andy 阅读(119) 评论(0) 推荐(0)
摘要:appium环境搭建, # Appium Server 环境依赖 - Java 1.8版本 - Android sdk - Node is(>=10版本) ,npm(>=6版本) (推荐下载 Node.is 12.x)(重点) 安装node.js,验证方法,输入npm -v 这三个都要在电脑提前安装 阅读全文
posted @ 2021-08-08 12:57 技术改变命运Andy 阅读(245) 评论(0) 推荐(0)
摘要:### ### ### ### #### Docker 镜像和容器的导入导出 一、镜像的导出和导入 1.镜像的保存 [root@k8s-master ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae513a4 阅读全文
posted @ 2021-08-08 10:12 技术改变命运Andy 阅读(345) 评论(0) 推荐(0)
摘要:### ### #### #### ### ### 阅读全文
posted @ 2021-08-08 10:00 技术改变命运Andy 阅读(45) 评论(0) 推荐(0)
摘要:### ### #### ### 这个运行了一个本地的仓库, 这样可以把镜像从docker-hub下载下来,然后推到这个本地仓库,然后其他的机器都去访问这个本地仓库,就不会占用带宽了, 但是是一个鸡肋,因为我想要下载最新的是没有的, 但是可以把自己公司的镜像上传到本地仓库这个是可以的,毕竟公司的是私 阅读全文
posted @ 2021-08-08 09:44 技术改变命运Andy 阅读(155) 评论(0) 推荐(0)
摘要:### ### docker-compose简介 docker-compose是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 docker-comp 阅读全文
posted @ 2021-08-08 09:32 技术改变命运Andy 阅读(673) 评论(0) 推荐(0)
摘要:# docker常用命令 - 有两大块, - 一个镜像管理命令 - 一个容器管理命令 # 基本命令: ``` docker version // 查看docker版本, docker info // 可以查看运行了几个,一共有几个,暂停了几个,下载了多少镜像(images), ``` # 镜像 ## 阅读全文
posted @ 2021-08-07 23:43 技术改变命运Andy 阅读(74) 评论(0) 推荐(0)
摘要:### 讲解在每一个环境下如何安装和配置docker ### ### docker默认是win10的系统而且不能是家庭版,win7是不行的, 如果是这样的话,你就可以在Windows中安装虚拟机来安装docker, ### ### #### centos命令安装: curl -fsSL https: 阅读全文
posted @ 2021-08-07 23:06 技术改变命运Andy 阅读(144) 评论(0) 推荐(0)
摘要:### 容器很流行,可以部署服务端, ## #### ### 在docker之前部署项目,就是按部就班的一步一步的配置那些文件,启动这个服务, 在使用了docker之后,就可以从docker仓库里面,下载这个镜像,使用命令讲镜像启动起来了, 好处就是一个地方打包,然后全平台都可以使用, 可以尽可能保 阅读全文
posted @ 2021-08-07 22:14 技术改变命运Andy 阅读(65) 评论(0) 推荐(0)
摘要:#### 夜神有windows版,也有mac版 我用的mac版,直接官网下载mac版安装 但是夜神模拟器在我的mac安装一直是卡在99%,所以使用了网易mumu模拟器 ### ### 现在不管是用使用代码的方式,往手机传输数据, 还是云测平台,比如阿里云测,华为云测, 还是手机群控,兼容性测试, 还 阅读全文
posted @ 2021-08-05 19:41 技术改变命运Andy 阅读(1007) 评论(0) 推荐(0)
摘要:#### 一.项目问题:1.你写爬虫的时候都遇到过什么反爬虫措施,你最终是怎样解决的 1.你写爬虫的时候都遇到过什么反爬虫措施,你最终是怎样解决的 通过headers反爬虫:解决策略,伪造headers 基于用户行为反爬虫:动态变化去爬取数据,模拟普通用户的行为, 使用IP代理池爬取或者降低抓取频率 阅读全文
posted @ 2021-08-05 14:13 技术改变命运Andy 阅读(2021) 评论(0) 推荐(0)
摘要:### 动态调试的准备工作: IDA动态调试: 配置:#把本地文件推送进手机目录 将ida文件夹里面的dbgsrv下的android_server放入真机的/data/local/tmp/下adb push android_x86_server(cpu型号要对应 模拟器是x86) /data/loc 阅读全文
posted @ 2021-08-04 21:13 技术改变命运Andy 阅读(1431) 评论(0) 推荐(0)
摘要:### mac的我已经安装好了 ### ida介绍 ida工具不只是能调试so文件的,还能打开smali文件,dex文件的,这个要知道 ida是一个逆向工具 最大的好处就是能把c++写的可执行文件,反编译成为汇编,再转成c语言, ### ida是国外的软件,是收费的, 我们要使用ida pro 国内 阅读全文
posted @ 2021-08-04 19:41 技术改变命运Andy 阅读(381) 评论(0) 推荐(0)
摘要:#### 一个高级的爬虫工程师,和一个只会requests的爬虫工程师,区别在什么地方? 第一,逆向的能力,你能爬的,别人爬不了, 第二,你能提供一个高并发的方法,别人爬可能也能爬,但是你爬的更快, 这就是这两点,也就是你能做到别人做不到的事情, 试想,一个能日爬取千万的爬虫工程师和一个日爬取几十万 阅读全文
posted @ 2021-08-04 12:13 技术改变命运Andy 阅读(561) 评论(0) 推荐(0)
摘要:### 使用frida脱壳 安卓逆向,写代码的难度是比较小的, 难度大,是因为要分析原理,比如frida脱壳,这个其实代码很简单,十几行代码就好了,但是要懂得原理才可以, ### 之前使用的工具脱壳的 就是Xposed的一个工具组件, 现在我们使用frida 来开发脱壳, 毕竟作为开发,还是需要了解 阅读全文
posted @ 2021-08-04 11:14 技术改变命运Andy 阅读(1617) 评论(0) 推荐(0)
摘要:#### ### ### #### 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,之所以说是抽象的,抽象表示把js代码进行了结构化的转化,转化为一种数据结构。这种数据结构其实就是一个大的json对象,json我 阅读全文
posted @ 2021-08-02 11:19 技术改变命运Andy 阅读(418) 评论(0) 推荐(0)
摘要:### 这种逻辑判断,运算符的基础知识,也会出现在代js混淆里,要看的懂, ### 扣代码和补环境,有什么区别? 其实扣代码的时候,也有补环境的操作,为什么能分成两个分支, 首先就是两者的占比不同,扣代码大部分都是拿别人的代码,实在运行不下去,才会补一点环境, 而补环境,是大部分都是自己写, ### 阅读全文
posted @ 2021-08-02 08:53 技术改变命运Andy 阅读(2089) 评论(0) 推荐(0)
摘要:### 补充: 原型链的hook, 比如要hook,字符串的split方法, 但是这样破坏了这个函数本身的逻辑,不好, 这样好,即重写了,而且,还没有破坏函数本身, 用这个方法,可以hook,更底层的内容,原生的一些方法逻辑, ### 但是通过toString会被检测到,这个方法被改写了, 所以有时 阅读全文
posted @ 2021-08-01 20:24 技术改变命运Andy 阅读(4796) 评论(0) 推荐(1)
摘要:### 我发现一个事情,不管什么语言,代码的调用链,还有代码的作用域都是非常重要的内容,都需要好好的理解才行,包括js,还是python, ### 为什么要hook? 很简单,如果你遇到了cookie加密,那你就要找到cookie加密函数入口,那你就要hook, #### ### #### hook 阅读全文
posted @ 2021-08-01 17:46 技术改变命运Andy 阅读(2679) 评论(1) 推荐(1)