- 博客(59)
- 收藏
- 关注
原创 Charles + Postern 手机APP抓包设置
文章目录一、Charles的配置二、Postern设置1、服务器和端口设置2. 匹配规则一、Charles的配置使用socks代理而不用http代理的原因在于,http代理处于应用层,很容易被绕过。二、Postern设置1、服务器和端口设置Postern的作用是代理转发,可以将普通的代理置为vpn代理。vpn代理是处于网络层的,可以抓到更多的数据包。代理服务器名称:可以任意填写服务器地址:箭头所指的就是代理服务器的地址。服务器端口:之前自己设置的端口,即16666。也可以使用
2021-07-06 00:19:50
5382
原创 ARM汇编直播课笔记
分析dex文件不会用到ARM汇编,但是分析elf文件时会用到ARM汇编。elf文件:后缀为.so的文件,官方名称为动态链接库。是可执行文件,对内统称二进制文件。判断一个文件是否为elf文件:使用二进制工具打开,如果文件头部分为7F 45 4C 46,则表示其为elf文件。...
2021-04-05 22:52:49
180
原创 ARM指令集
文章目录1. 常用ARM指令1.1 跳转指令1.2 比较指令2. 寄存器于储存器操作2.1 寄存器的定义2.2 寄存器常用指令2.3 数据传送指令2.4 数据算术运算指令2.5 数据逻辑运算指令2.6 其他指令1. 常用ARM指令1.1 跳转指令B:无条件跳转BL:带连接的跳转指令BX:带状态切换的无条件跳转BLX:带链接和状态切换的无条件跳转例如:B 0x1234 跳转到绝对地址0x1234的位置执行相应的代码BL loc_234 跳转
2021-03-31 23:02:16
238
原创 ARM汇编语言程序结构
文章目录1. ARM 汇编规范2. 符号3. 常量4. ARM 指令的格式5. ARM 指令的条件域6. Android操作系统7. 反编译可执行程序8. 小结1. ARM 汇编规范所有的符号都必须在一行书写,在后面不用添加高级语言所用的分号。ARM汇编器对标识符的大小写敏感,书写符号以及指令时字母大小写一定要一致。一条ARM指令,伪指令。寄存器名可以全部写为大写字母,也可以全部为小写字母, 但是不能大小写混合编写使用。注释使用(分号),注释内容由(分号)开始到执行结束。例如
2021-03-31 21:56:58
577
原创 NDK开发—JNI动态注册
1. 新建一个Android Application Project,起名为jisuanqi1,目的是实现计算器的功能。2. 新建两个Plain Text和TextView,分别命名为第1、2个数字3. 然后增加4个按钮,分别为加减乘除,并修改按钮的id为防止空指针异常,我们在text中输入04. 返回MainActivity.java中创建初始化init()方法5. 绑定编辑框和按钮,并且定义编辑框的内容,然后定义加减乘除四种方法,用native修饰获取编辑框的值6. 设置
2021-03-31 16:09:24
123
原创 NDK开发—调用方法
1. 首先在之前的项目中创建2个方法,1个普通方法,1个静态方法。并用native修饰新增的javatoc方法2. cd到src目录,重新生成jni接口3. 将生成后的.h头文件中的内容复制到JNIstudy.h中(与之前的步骤一样),将新生成的javatoc方法复制到.c文件中,补齐方法和参数4. 在java.h文档中搜索callvoidmethod。在搜索过程中我们可以看到,在有返回值的方法中,返回的是哪种类型的值,均有对应的方法。此处,我们使用第一个,复制到.c文件中,并补齐方法和参数
2021-03-30 23:32:08
140
原创 NDK开发—调用字段
1. 创建一个新的项目,名字为 JNIstudy然后,2. 在 MainActivity.java 文件中创建一个native方法;3. 在 Oncreate中,用 Toast 弹窗进行提示。4. 保存,然后打开cmd,cd到所在src文件的路径下面,然后在选所在的盘,进入src目录5. 输入 javah,可以查看常用的命令6. 生成 JNI 样式的标头文件先把之前输入的代码稍微进行下调整,然后在生成JNI时看看到底是哪个生成的。更改后的代码如下:package com.examp
2021-03-28 23:50:09
149
原创 安卓逆向基础6:C语言基础概述
文章目录1. C语言基础语法1.1 基础语法1.2 令牌1.3 注释1.4 标识符1.5 关键字2. 指针2.1 指针的概述2.2 指针的实例用法2.3 实例用法3. C语言结构体/共用体3.1 结构体类型的概念3.2 结构体格式3.3 结构体声明的3种方式3.4 结构体变量的引用3.5 结构体类型的初始化3.6 共用体3.7 如何引用共用体变量3.8 共用体变量初始化3.9 共用体类型的数据特点3.10 结构体和共用体的区别4. 文件操作4.1 文件概述4.2 文件基本操作4.3 文件结构体4.4 文件读
2021-01-10 22:51:48
411
原创 安卓逆向基础: 篡改APK名称&APP分身
文章目录概述:1. 准备工作2. 修改APP名称3. APP分身概述:此次,我们修改的文件是这个,图标如下:1. 准备工作首先,将apk从模拟器中导出,然后拖到AndroidKiller中打开apk,直接点击编译开始反编译。然后,在模拟器中将下载后的apk卸载,并将反编译后的apk拖入模拟器进行安装。2. 修改APP名称首先,在工程搜索中搜索“土豆视频”。可以看到,一共搜到了2条记录,其中第2条记录就是我们要修改的内容:我们将“土豆视频”修改为“优酷视频”,然后回编译:我们将之前的a
2021-01-06 19:56:44
888
1
原创 JAVA核心:网络通信
文章目录1. 网络程序设计基础1.1 局域网与因特网1.2 网络协议1.3 端口(Port)和套接字(Socket)1.3.1 端口1.3.2 套接字2. TCP程序设计基础2.1 IP 地址封装(InetAddress )类2.2 服务器套接字(ServerSocket )类2.3 TCP 网络程序3. UDP 程序设计基础3.1 DatagramPacket 类3.2 DatagramSocket 类1. 网络程序设计基础网络程序设计编写时与其他计算机进行通信的程序。Java已经将网络程序所需要的
2020-12-27 14:38:02
257
原创 JAVA核心:多线程
文章目录1. 线程简介2. 实现线程的两种方式2.1 继承 Thread 类2.2 实现 Runnable 接口1. 线程简介完全可以同时进行的活动在Java中被称为并发,而将并发完成的每一件事情称为线程。一个线程则是进程中的执行流程,一个进程中可以同时包括多个线程,每个线程也可以得到一小段程序的执行时间,这样一个进程就可以具有多个并发执行的线程。进程是资源分配的最小单位,线程是最小的执行单位。一个进程可以有多个线程线程共享进程资源2. 实现线程的两种方式在Java中主要提供2种方式
2020-12-26 23:26:33
227
原创 JAVA核心:枚举类型与泛型
文章目录1. 枚举类型1.1 使用枚举类型设置常量1.2 深入了解枚举类型1.2.1 操作枚举类型成员的方法1.3 使用枚举类型的优势2. 泛型2.1 回顾向上转型与向下转型2.2 定义泛型类2.3 泛型的常规用法2.4 泛型的高级用法2.5 泛型总结1. 枚举类型使用枚举类型,可以取代前面学习过的定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能。1.1 使用枚举类型设置常量使用枚举类型定义常量的语法如下:public enum Constants{ Constants_A, Co
2020-12-26 12:20:59
337
原创 JAVA核心:反射
文章目录1. Class 类与 Java 反射1.1 访问构造方法1.2 访问成员变量1.3 访问方法2. 使用 Annotation 功能2.1 定义 Annotation 类型2.2 访问 Annotation 信息1. Class 类与 Java 反射1.1 访问构造方法在通过下列一组方法访问构造方法时,将返回Constructor类型的对象或数组。每个Constructor对象代表一个构造方法,利用Constructor对象可以操纵相应的构造方法。getConstructors()ge
2020-12-23 23:20:53
350
3
原创 JAVA核心:I/O(输入/输出)
文章目录1. 流概述2. 输入/输出流2.1 输入流2.2 输出流3. File 类3.1 文件的创建与删除3.2 获取文件信息1. 流概述流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O(Input/Output)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口等。2. 输入/输出流2.1 输入流InputStream类是字节输入流的抽象类,是所有字节输入流
2020-12-19 19:51:48
388
原创 JAVA核心:集合类
文章目录1. 集合类概述2. Collection 接口3. List集合3.1 List接口3.2 List接口的实现类4. set 集合4.1 TreeSet4.2 HashSet5. Map集合5.1 Map接口5.2 Map接口的实现类1. 集合类概述Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器。提到容器不难会想到数组,集合类与数组不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List集合、Se
2020-12-13 21:39:10
124
原创 JAVA核心:Swing程序设计
文章目录1. Swing 概述1.1 Swing 特点1.2 Swing 包1.3 常用Swing组件概述2. 常用窗体2.1 JFrame窗体2.2 JDialog窗体(对话框窗体)3. 标签组件与图标3.1 标签的使用3.2 图标的使用3.2.1 创建图标3.2.2 使用图片图标4. 常用布局管理器4.1 绝对布局4.2 流布局管理器4.3 边界布局管理器4.4 网络布局管理器4.5 网格组布局管理器5. 常用面板5.1 JPanel面板5.2 滚动面板6. 按钮组件6.1 提交按钮组件6.2 单选按钮
2020-12-13 18:33:59
1217
原创 JAVA核心:异常处理
文章目录1. 异常概述2. 处理程序异常错误2.1 错误2.2 捕捉异常2.2.1 try-catch 语句块2.2.2 finally 语句块3. Java 常见异常4. 自定义异常5. 在方法中抛出异常5.1 使用throws关键字抛出异常5.2 使用throw关键字抛出异常1. 异常概述在程序中,错误可能产生于程序员没有预料到的各种情况,或者是因为超出了程序员控制之外的环境因素,如用户的坏数据、试图打开一个根本不存在的文件等。在Java中这种在程序运行时可能出现的一些错误称为异常。异常是一个在程序
2020-12-08 19:59:12
322
原创 JAVA核心学习:类的高级特性
文章目录1. Java 类包1.1 类名冲突1.2 完整的类路径1.3 创建包1.4 导入包1.4.1 使用import关键字导入包1.4.2 使用import导入静态成员2. final 变量3. final 方法4. final 类5. 内部类5.1 成员内部类5.1.1 成员内部类简介5.1.1 内部类向上转型为接口5.1.3 使用this关键字获取内部类与外部类的引用5.2 局部内部类5.3 匿名内部类5.4 静态内部类5.5 内部类的继承1. Java 类包1.1 类名冲突Java中每个接口
2020-12-06 13:17:30
326
原创 JAVA核心学习:接口、继承与多态(下)
文章目录3. 对象类型的转换3.1 类的向上转型3.2 类的向下转型4. instanceof关键字5. 方法的重载6. 多态7. 抽象类与接口7.1 抽象类7.2 接口3. 对象类型的转换3.1 类的向上转型向上转型就是把子类对象赋值给父类类型的变量。首先,创建一个Person类:public class Person { public Person(String name) { System.out.println("您好,我叫"+name); } }然后,创建一个Stu
2020-12-01 19:52:10
307
原创 JAVA核心学习:接口、继承与多态(上)
文章目录1. 类的继承1.1 extends关键字1.2 方法的重写1.3 super关键字2. Object类2.1 getClass()方法2.2 toString()方法2.3 equals()方法1. 类的继承子类可以继承父类原有的属性和方法,也可以增加原来父类不具备的属性和方法,或者直接重写父类中的某些方法。在继承中,还有一种特殊的重写方式,子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊的重写方式被称为重构。1.1 extends关键字
2020-11-29 21:47:21
192
1
原创 JAVA学习:数字处理类
文章目录1.数字处理类2. 数字运算2.1 Math类2.2 常用的数学运算方法3. 随机数3.1 Math.random()方法3.2 Random类4. 大数字运算4.1 BigInteger4.2 BigDecimal1.数字处理类DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。它可以将一些数字格式化为整数、浮点数、科学计数法、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。一般情况下可以在实例化DecimalFormat对象时传递数字格式,
2020-11-28 20:58:07
412
原创 JAVA学习:包装类
文章目录1. Interger1.1 构造方法1.2 常用方法1.3 常量2.Boolean2.1 构造方法2.2 常用方法2.3 常量3. Byte3.1 构造方法3.2 构造方法3.3 常量4.Character4.1 构造方法4.2 常用方法4.3 常量5. Double5.1 构造方法5.2 常用方法5.3 常量6. Number1. IntergerInteger类在对象中包装了一个基本类型int值,该类的对象包含一个int类型的字段1.1 构造方法Integer(int number)该
2020-11-21 15:44:16
208
原创 JAVA学习:继承(下)
文章目录五、final关键字五、final关键字如果我们不希望一个类被继承,可以使用final关键字。如果我们将Pet类加上final关键字,则代码会立刻报错,系统提示,final和abstract不能同时使用:下面我们新建一个类,...
2020-11-01 16:45:27
224
2
原创 JAVA学习:继承(上)
文章目录一、继承二、重写与父类子类区别1、使用继承2、子类访问父类成员3、不能继承的父类成员4、访问修饰符5、继承后的初始化顺序6、子类的特性信息三、多种封装关键字对比封装的关键字四、抽象类与抽象方法一、继承接下来,我们按照小狗的方式,新建马和企鹅的类。但是如果我们每一种动物都重写一遍,工作量很大。因为每种动物都有一些节本的共性,因此,我们这里可以采用一种办法,就是继承。我们先新建一个Pet类,然后将共性的信息放到Pet类中。package com.icss.bk.biz;public clas
2020-10-31 22:10:47
1019
1
原创 JAVA学习:抽象与封装
文章目录一、构造函数1、从现实中抽象出类分为三步:2、使用类图描述类3、对象初始化一、构造函数1、从现实中抽象出类分为三步:给具有共性特征的物体分类找出它的属性找出它的行为2、使用类图描述类用于分析和设计“类”直观、容易理解3、对象初始化...
2020-10-26 20:00:38
497
原创 JAVA学习:基础入门(下)
文章目录7、 for循环8、while循环9、函数入门7、 for循环变量包括:局部变量、成员变量、静态变量局部变量:定义在方法内的变量。作用域:变量所在的{},超过{}变量就找不到了。例:求和1到100public class Test { public static void main(String[] args) { //编写1~100求和 int sum = 0; for (int i=0;i<=100;i++) { sum += i; }
2020-10-24 21:21:42
377
原创 JAVA学习:基础入门(上)
1. 工作区Workspace的概念Workspace是java作为项目管理的一个工作区间。误区:1、把所有的项目代码,都放在一个project中,这样代码很不容易管理。当开发人员很多时,无法拆分。2、要把不相关的project放在同一个workspace里面。2. Project和Package的概念Maven Project:资源管理、打包、编译Dynamic web project: JavaEE项目JRE:是所有项目的基础package1、作用:解决命名冲突(变量命名、方法
2020-10-19 21:28:25
444
原创 二级MySQL数据库程序设计(七)
本博客为《全国计算机等级考试二级MySQL数据库程序设计教程》读书笔记,请勿转载用于其他商业用途。课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 ...
2020-03-04 20:51:46
848
原创 二级MySQL数据库程序设计(六)
本博客为《全国计算机等级考试二级MySQL数据库程序设计教程》读书笔记,请勿转载用于其他商业用途。课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 ...
2020-03-02 15:02:42
1136
原创 二级MySQL数据库程序设计(五)
课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 存储过程与存储函数第12章 访问控制与安全管理第13章 备份与恢复第14章 PHP和M...
2020-02-28 15:52:20
1568
原创 二级MySQL数据库程序设计(四)
课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 存储过程与存储函数第12章 访问控制与安全管理第13章 备份与恢复第14章 PHP和M...
2020-02-24 16:35:22
609
原创 二级MySQL数据库程序设计(三)
课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 存储过程与存储函数第12章 访问控制与安全管理第13章 备份与恢复第14章 PHP和M...
2020-02-23 20:48:11
721
原创 二级MySQL数据库程序设计(二)
课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 存储过程与存储函数第12章 访问控制与安全管理第13章 备份与恢复第14章 PHP和M...
2020-02-22 20:00:46
1893
原创 二级MySQL数据库程序设计(一)
课程目录第1章 数据库的基本概念与设计方法第2章 MySQL简介第3章 数据库和表第4章 表数据的基本操作第5章 数据库的查询第6章 索引第7章 视图第8章 数据完整性约束与表维护语句第9章 触发器第10章 事件第11章 存储过程与存储函数第12章 访问控制与安全管理第13章 备份与恢复第14章 PHP和M...
2020-02-21 21:04:44
5059
原创 Python之NumPy基础:数组与向量化计算
本博客为《利用Python进行数据分析》的读书笔记,请勿转载用于其他商业用途。文章目录1. NumPy ndarray:多维数组对象NumPy是Numerical Python的简称。1. NumPy ndarray:多维数组对象Numpy的核心特征之一就是N-维数组对象——ndarray。ndarray是Python中一个快速、灵活的大型数据集容器。数组允许你使用类似于标量的操作语法在整...
2020-02-21 15:21:55
1335
原创 Python之数据规整:连接、联合和重塑
本博客为《利用Python进行数据分析》的读书笔记,请勿转载用于其他商业用途。文章目录1. 分层索引1.1 重排序和层级排序1.2 按层级进行汇总统计2. 联合与合并数据集2.1 数据库风格的DataFrame连接2.2 根据索引合并2.3 沿轴向连接2.4 联合重叠数据8.3 重塑和透视3.1 使用多层索引进行重塑3.2 将“长”透视为“宽”3.3 将“宽”透视为“长”1. 分层索引分层索...
2020-02-12 20:19:11
609
原创 Python之数据载入、存储及文件格式
输入和输出通常有以下几种类型:读取文本文件及硬盘上其他更高效的格式文件从数据库载入数据与网络资源进行交互(比如Web API)将表格类型数据读取为DataFrame对象是pandas的重要特性。下表总结了部分实现该功能的函数,read_csv和read_table可能是后期我们使用最多的函数。表:Pandas的解析函数函数描述read_csv从文件、URL或文...
2020-02-02 18:43:17
1587
原创 Python之Pandas库(4)——描述性统计的概述与计算
本博客为《利用Python进行数据分析》的读书笔记,请勿转载用于其他商业用途。pandas对象装配了一个常用数字、统计学方法的集合。其中大部分属于归约 或汇总统计 的类别,这些方法从DataFrame的行或列中抽取一个Series或一系列值的单个值(如总和或平均值)。与NumPy数组中的类似方法相比,他们内建了处理缺失值的功能。考虑一个小型DataFrame:df = pd.DataFrame...
2020-01-31 18:27:52
753
原创 Python之Pandas库(3)——基本功能(下)
本博客为《利用Python进行数据分析》的读书笔记,请勿转载用于其他商业用途。1. 整数索引在pandas对象使上用整数索引对新用户来说经常会产生歧义,这是因为它和在列表、元组等Python内建数据结构上进行索引有些许不同。例如:ser = pd.Series(np.arange(3.))print(ser)print(ser[-1])在上面的例子中,pandas可以“回退”到整数索...
2020-01-30 19:46:10
615
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人