- 博客(34)
- 资源 (6)
- 收藏
- 关注
原创 Linux开启coredump
在Linux系统中,C/C++程序崩溃是常见的问题之一。Coredump是指当一个程序崩溃时,系统把程序运行时的内存数据以二进制文件的形式保存下来,以便程序开发者进行崩溃分析。本文将介绍如何开启并配置Coredump。
2024-07-25 17:44:44
1187
1
原创 Centos8.5安装mysql8.0
因为之前版本的mysql,使用的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”,但是我们修改密码必须使用的认证插件是“mysql_native_password”,所以MySQL8.0之后的版本在修改密码时要在sql语句中申明修改密码认证插件。host:允许用户登录在哪个ip可以远程登录,%表示任意ip都可以远程登录mysql数据库;根据日志中显示,此次安装mysql时没有设置root用户密码(即可以使用空密码进行登录)
2024-06-18 20:40:00
728
原创 安卓模拟器Frida环境搭建 (frida+mumu)
objection是一个封装了frida的python库,允许我们用命令行而不是代码脚本来实现一些基本的hook功能,比如监控函数的入参出参,从而减少开发者的代码量。Module.enumerateImportsSync(“libc.so”) 查看名字为libc.so的so库的导入函数表。Module.enumerateExportsSync(“libc.so”) 查看名字为libc.so的so库的导出函数表。其他的objection指令可以用objection --help命令查看。
2024-01-24 10:00:23
2464
2
原创 Linux下安装nginx
在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。这里因为我之前开启了的是被nginx.master或者nginx.woeker占用就不用管,如果不是这个的话那就把那个进程关闭掉。启动防火墙后,默认没有开启任何端口,需要手动开启端口。nginx默认是80端口。如以上步骤都完成且没有问题的话,就做如下操作。如果启动后出现了如下的问题就是80端口被占用。可以用下面这个命令进行查看80端口被谁占用。查看防火墙是否开启了80端口的访问。
2024-01-05 18:44:45
410
原创 TCP/IP详解 卷1:协议—Ping程序
Ping程序目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
2021-07-27 00:49:23
430
原创 TCP/IP详解 卷1:协议—ICMP:Internet控制报文协议
ICMP经常被认为是IP层的一个组成部分,报文的格式如图所示。类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。检验和字段覆盖整个ICMP报文。ICMP报文的类型不同类型由报文中的类型字段和代码字段来共同决定...
2021-05-20 23:40:51
214
原创 TCP/IP详解 卷1:协议—概述
分层TCP/IP协议簇按照功能可分为一个4层协议系统,如图:四层分别为:链路层、网络层、传输层和应用层,每个层次的作用分别为:、1.链路层,也称作数据链路层或网络接口层,通常包括操作系统在的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆(或其他任何传输媒介)的物理接口细节,其协议包含:ARP协议(地址解析协议)、RARP协议(逆地址解析协议)。2.网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路,其协议包含:IP协议(网际协议)、ICMP协议(Internet互联网控制
2021-05-07 00:20:40
965
原创 Lua5.4源码阅读—字符串(2)
在Lua虚拟机中存在一个全局的数据区,用来存放当前系统中的所有字符串,同一个字符串数据,只会有一份副本,一个字符串一旦创建,将不可改变,字符串变量存放的仅是字符串的引用,而不是实际的内容。字符串的实现typedef struct TString { CommonHeader; lu_byte extra; /* 标识该字符串是否为保留字符串 */ lu_byte shrlen; /* 短字符串的长度 长度不会超过 LUAI_MAXSHORTLEN,因此一个字节可以表示长度 */ un
2021-04-13 19:39:28
314
原创 Lua5.4源码阅读—数据类型(1)
Lua数据类型基础的数据类型宏定义:#define LUA_TNONE (-1) //无效类型 #define LUA_TNIL 0 //空类型#define LUA_TBOOLEAN 1 //布尔#define LUA_TLIGHTUSERDATA 2 //指针(lua外部管理内存)#define LUA_TNUMBER 3 //数据#define LUA_TSTRING 4 //字符串,这和后
2021-04-07 21:03:52
189
原创 Centos 7 安装 mysql5.7步骤和配置
1. 卸载MariaDB先查看一下系统上的mariadb#rpm -qa | grep mariadbmariadb-libs-5.5.56-2.el7.x86_64然后卸载#rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64ps:rpm -qa 列出所有已安装软件包rpm -e packagename 删除软件包rpm -e --...
2019-03-11 17:03:25
757
1
原创 Sublime text 安装TypeScript环境
先按照Node.js https://nodejs.org/en/安装Package Control https://packagecontrol.io/installation#st3快捷键Ctrl + P,输入Package Control: 在弹出的列表中选择Install Package,这里需要等待一会,等弹出列表后再输入TypeScript回车,等TypeScript安装完后再输...
2018-06-27 00:28:07
980
1
原创 Python学习手册(第五部分)
第21章 模块:宏伟蓝图 import:使客户端(导入者)以一个整体获取一个模块 from:允许客户端从一个模块文件中获取特定的变量名 imp.reload:在不中止程序的情况下,提供了一种重新载入模块文件代码的方法。
2017-05-31 14:34:28
457
原创 Python学习手册(第四部分)
第16章 函数基础 def可以出现在任一语句可以出现的地方——甚至是嵌套在其他的语句中。函数仅仅是对象,在程序执行时清楚的记录在内存中,除调用之外函数允许任意的属性附加到记录信息以供随后使用:def func():...func()func.attr = value第17章 作用域变量名引用分为三个作用域进行查找:首先是本地,之后是函数内,之后全局,最后是内置。
2017-05-26 15:26:11
447
原创 Python学习手册(第三部分)
第10章 Python语句简介 在一行写多个语句的时候才用分号进行分隔,一般不用分号。可以使用括号(())、方括号([])、或大括号({})将一个语句的范围跨多行。第11章 赋值、表达式和打印 扩展的序列解包,在python3.0中,如表用右边的字符串的第一个字母来匹配a,用剩下的部分来匹配b:a赋值为’s’,b赋值为’pam’。如果没有剩下的内容可以匹配带星号的名称,则会赋值一个空的列表。如
2017-05-24 15:46:13
262
原创 Python学习手册(第二部分)
第4章 介绍Python对象类型 Python的核心数据类型 第5章 数字 数字常量 python2.6中的整数:一般整数(32位)和长整数(无穷精度),可以以l或L结尾强制其为长整数,当超过32位时会自动转换为长整数。python3.0中的整数:一个单独的类型,将一般整数和长整数合并了。内置函数hex(I),oct(I)和bin(I)把一个整数转换为这3种进制表示的字符串,int(str
2017-05-22 19:37:19
367
原创 C++Primer第5版读书笔记(第15章 面向对象程序设计)
第15章 面向对象程序设计 15.2 定义基类和派生类 15.2.1 定义基类基类通常应该定义一个虚析够函数。任何构造函数之外的非静态函数都可以是虚函数。关键字virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义。派生类可以访问基类的公有成员,而不能访问私有成员。protected访问权限派生类可以访问但其他对象不能访问。15.2.2 定义派生类派生类通过使用类派生
2017-05-11 09:30:02
362
原创 C++Primer第5版读书笔记(第14章 重载运算与类型转换)
第14章 重载运算与类型转换 14.1 基本概念重载运算符由关键字operator和其后要定义的运算符号组成。重载运算符函数的参数数量与该运算符作用的运算对象数量一样多,一元运算符有一个参数,二元运算符有两个,对于二元运算符来说,左侧运算对象传递给第一个参数,而右侧运算对象传递给第二个参数,除了重载的函数调用运算符operator()之外,其他重载运算符不能含有默认实参。14.8.2 标准库定
2017-05-09 17:04:06
295
原创 C++Primer第5版读书笔记(第13章 拷贝控制)
第13章 拷贝控制 13.1 拷贝、赋值与销毁 13.1.1 拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。class Foo{ public: Foo();//默认构造函数 Foo(const Foo&);//拷贝构造函数}; 2. 拷贝构造函数在几种情况下都会被隐式
2017-05-08 15:52:53
356
原创 C++Primer第5版读书笔记(第12章 动态内存)
第12章 动态内存 12.1 动态内存与智能指针shared_ptr允许多个指针指向同一个对象;unique_ptr则“独占”所指向的对象。标准库还定义了一个名为week_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象,这三种类型都定义在memory头文件中。 只有当括号中仅有单一初始化器时才可以使用auto:auto p1 = new auto(obj); //p
2016-04-09 22:25:09
511
原创 C++Primer第5版读书笔记(第11章 关联容器)
第11章 关联容器类型map和multimap定义在头文件map中;set和multiset定义在头文件set中;无序容器则定义在头文件unordered_map和unordered_set中。 //定义形式map<type1,type2> name;set<type> name;11.2 关联容器概述关联容器不支持顺序容器的位置相关的操作,例如push_front或push_back等,
2016-04-09 22:24:17
477
原创 C++Primer第5版读书笔记(第10章 泛型算法)
第10章 泛型算法 10.3.2 lambda表达式可调用对象:对于一个对象或一个表达式,如果可以对其使用调用运算符则称为可调用的;可调用对象主要有:函数、函数指针、重载了函数调用运算符的类和lambda表达式。lambda表达式的定义形式:[capture list](parameter list)->return type {function body}/***************
2016-03-29 15:15:53
412
原创 C++Primer第5版读书笔记(第9章 顺序容器)
第9章 顺序容器 9.1 顺序容器概述 选择容器的基本原则: 除非有很好的理由选择其他容器,否则应使用vector;如果程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list;如果程序要求随机访问元素,应使用vector或deque;如果程序要求在容器的中间插入或删除元素,应使用list或forward_list;如果程序需要在头尾位置插入或删除元素,但
2016-03-28 20:02:27
816
原创 C++Primer第5版读书笔记(第8章 IO库)
第8章 IO库 8.1 IO类 IO对象不能拷贝或对IO对象赋值,读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的。 刷新输出缓冲区:操纵符为endl、flush和ends;endl向缓冲区插入一个回车符,然后刷新缓冲区;flush刷新缓冲区,但不输出任何额外的字符;ends向缓冲区插入一个空字符,然后刷新缓冲区。unitbuf操纵符,如果想在每次输出操作之后都刷新缓冲区
2016-03-25 10:25:36
403
原创 C++Primer第5版读书笔记(第6章 函数)
第6章 函数 6.2 参数传递引用传递、值传递、指针传递6.2.6 含有可变形参的函数如果函数的实参数量未知但是全部实参的类型都相同,可以使用initializer_list类型的形参; 省略符形参void foo(parm_list,...);void foo(...);6.3.3 返回数组指针声明一个返回数组指针的函数,也可以使用类型别名完成Type (*function(par
2016-03-21 17:38:29
329
原创 C++Primer第5版读书笔记(第5章 语句)
第5章 语句 5.4.3 范围for语句//for(declaration:expression)// statementvector<int> v={0,1,2,3,4,5,6,7,8,9};for(auto &r : v) r *=2;如上如果需对序列中的元素执行写操作,循环变量必须声明成引用类型。5.6 try语句块和异常处理throw表达式异常检测部分使用throw表达式
2016-03-21 11:39:29
389
原创 C++Primer第5版读书笔记(第4章 表达式)
第4章 表达式 4.1.1 基本概念小整数类型(如bool、char、short等)通常会被提升成较大的整数类型;赋值运算符需要一个(非常量)左值作为其左侧运算对象,得到的结果也仍然是一个左值。取地址符作用与一个左值运算对象,返回一个指向运算对象的指针,这个指针是一个右值。内置引用运算符、下标运算符、迭代器解引用运算符、string和vector的下标运算符的求值结果都是左值。内置类型和迭
2016-02-27 21:26:29
578
原创 C++Primer第5版读书笔记(第3章 字符串、向量和数组)
第3章 字符串、向量和数组3.1 命名空间的using声明using namespace::name3.2.1 定义和初始化string对象#include<string>using std::string;string s1; //默认初始化string s2(s1); //直接初始化,s2为s1的副本string s3=s1;
2016-02-26 13:01:33
474
原创 C++Primer第5版读书笔记(第2章 变量和基本类型)
第I部分 C++基础 第2章 变量和基本类型 2.1.1 算术类型 2.1.2 类型转换1. 当给无符号类型的变量赋值时,如果超出表示范围,结果是初始值对无符号类型表示数值总数去模后的余数,例如,8比特大小的unsigned char可以表示0至255区间内的值,如果赋一个超出该范围的值,则实际的结果是该值对256取模后所得的余数。2. 赋带符号类型一个超出它表示范围的值时,结果是未定义
2016-02-25 11:10:22
515
深度探索C++对象模型
2018-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人