自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 内存问题-示例

for访问越界1vector<int > num = {1,2,3,4,5};int length = num.size();int max = 5;int index = 0;#define vextorMaxCheck(num, max, cur, index) for(; index < length && cur < max; cur= num[++index])//错误,根本原因是++i和i++的区别,导致的访问越界vextorMaxCheck

2020-09-11 09:23:05 133

原创 linux寄存器

linux寄存器寄存器分类数据寄存器变址寄存器指针寄存器段寄存器指令指针寄存器标志寄存器一、运算结果标志位二、状态控制标志位三、32位标志寄存器增加的标志位代码示例与分析http://blog.sina.com.cn/s/blog_87c063060101bcwt.html寄存器分类32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄

2020-09-09 09:16:21 762

原创 算法分类及题库(leetcode+剑指offer)

剑指offer题型分类1、深度优先遍历offer34 二叉树总和为某一值得路径offer55-I 二叉树的深度offer55-II 平衡二叉树2、广度优先遍历3、BFS&DFSleetcode103. 蛇形打印二叉树/锯齿形层次遍历1、深度优先遍历offer34 二叉树总和为某一值得路径offer55-I 二叉树的深度offer55-II 平衡二叉树输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。2、广度优先

2020-07-10 18:58:20 223

原创 leetcode103. 蛇形打印二叉树/锯齿形层次遍历

BFS层级遍历+蛇形输出思路:1、使用广度优先遍历,将二叉树所有节点存放于一个双端队列中。2、使用分隔符(空节点)将层级分离。3、使用bool控制每一行的输出顺序即可。执行用时:8 ms内存消耗:11.5 MB/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(

2020-07-10 18:57:31 415

原创 Shell入门-bash变量

Bash基础二用户自定义变量变量定义变量调用变量叠加变量查看变量删除环境变量定义查询变量删除变量系统环境变量PATHPS1位置参数变量接收键盘输入$* 和 $#的区别预定义变量变量计算机内存单元,其存放的值可以改变。字母数字和下划线,但不能以数字开头在linux中,变量的默认类型为字符串类型变量的定义中,若要使用空格,需要使用’ab c’或者"ab cd"变量中,可以使用转义符""变量值的叠加,使用"变量名"、"变量名"、"变量名"、"{变量名}"name=$(命令)环境变量建议是用大写,

2020-07-09 18:50:47 106

原创 Shell入门-bash基本功能

边学习边整理bash基本功能历史命令history上下箭头!n!!!字串tab键命令补全命令别名常用快捷键输入输出重定向多命令顺序执行管道符通配符其它历史命令historyhistory #查看历史命令history -c #清空历史命令,不建议清空命令history -w /tmp/my_bash_history #保存至/tmp/my_bash_history文件中,默认保存在~/.bash_history本次登录操作的命令不会保存至~/.bash_historylogout时,

2020-07-08 18:23:28 107

原创 Shell入门-第一个shell脚本

Shell入门Shell简介linux中使用Bash脚本命令基本输出命令echo第一个脚本创建脚本文件运行脚本常见问题dos2unixShell简介命令解释器Bourne Shell: 1979 Unix开始使用,现在著文件名为sh——sh.ksh.Bash.psh.zshC Shell : BSD版本Unix中——csh.tcshBourne和C不兼容linux中使用Bash/etc/shells这个文件保存了当前支持的shell版本sh #可以查看当前shell版本exit #退

2020-07-08 18:02:22 195

原创 linux常用命令详解大全

//边学边整理,这个不全,先凑乎看文件搜索命令find -name 名称 通配符* 字符串 ?一个字符 -iname 不区分大小写的名称 -size 大小 -user 创建者 -group 用户组 -amin 访问权限access被修改的文件或目录 +5超过5分钟,-55分钟之内 -cmin 文件属性change -a 条件且 -o 条件或 -mmin 文件内容modify -type 类型

2020-07-07 19:02:31 193

原创 内存、数据结构中的堆栈

内存中的堆和栈程序在内存中分为以下几个部分:1、栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区:由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 ,分配方式类似于链表。3、全局区全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放4、文字常量区常量字符串就是放在这里的, 程序结束后由系统释放。5、程序代码区存

2020-06-29 15:30:08 4085

原创 剑指offer:和为S的两个数字——扩展

题目:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。要点:1、递增排序2、和为S3、乘积最小,a*b=S,要使乘积最小,也就是|a-b|最大;乘积最大,也就|a-b|最小乘积最小方法及思路:1、双指针min 和max:a[min]+a[max]等于sum,则找到;如果和小于sum,则将min++;如果和大于sum,则将max–。class Solution {public: vector&lt

2020-06-29 12:16:57 6572

原创 拷贝构造函数-深cop与浅copy

一、直接初始化与拷贝初始化在一个类对象的定义过程中,对象初始化分为两种:1)、直接初始化, 要求编译器使用普通的函数匹配,选择我们提供的最匹配的 构造函数 ,2)、拷贝初始化, 要求编译器将右侧运算对象拷贝到正在创建的对象中,对象被创建时使用 拷贝构造函数//直接初始化,使用string的构造函数string (size_t n, char c);string dots(10,'s');//直接初始化,使用dots的成员数据,直接初始化sstring s(dots);//使用拷贝赋值运算符,

2020-06-29 09:42:30 245

转载 23种设计模式(C++版)

23种设计模式(C++版)总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。代码与说明详见:https://github.com/jest549/DesignPattern.githttps://

2020-06-23 09:08:38 419

原创 驱动入口函数DriverEntry的简单概述

概述每一个驱动都有一个驱动入口函数DriverEntry当IO Manager记载驱动时,就会调用驱动入口函数DriverEntry当添加驱动折别是,该驱动入口函数负责驱动初始化。初始化任务主要有确定驱动使用对象,设置驱动系统资源。驱动入口只有IRQL=PASSIVE_LEVEL级别的系统线程可以调用驱动对象简介DRIVER_OBJECTI / O管理器为已安装和加载的每个驱动程序创...

2020-04-27 13:39:04 4690

原创 CRC校验自学笔记

学习来源:https://blog.csdn.net/u011854789/article/details/80206676CRC1、简称循环码,是一种常用的、具有检错、纠错能力的校验码。2、循环冗余校验码由信息码n位和校验码k位构成。k位校验位拼接在n位数据位后面,n+k为循环冗余校验码的字长,又称这个校验码(n+k,n)码。3、理论上可以证明循环冗余校验码的检错能力有以下特点:①可检...

2020-04-14 11:43:07 346

原创 隐藏进程-学习总结

原理1向进程中注入dll2dll的功能是:hook创建进程,和hook ZwSystemInformation

2019-12-05 16:40:14 502

原创 IAT hook与inline hook的区别

IAT hook导入表hook原理:修改导入表中某函数的地址到自己的补丁函数。IATHook通过GetProcAddress获取目标函数地址在程序内存中找到所在dll的导入表查找目标函数地址保存的位置把地址修改为自己补丁函数问题:当该函数递归调用时,不会被hook为解决这个问题,可以使用inline hookinline hook需要一个代理函数ProxyFunction,调...

2019-11-24 16:21:55 1714

原创 Dll反射式注入法-代码学习

原理--------------------------------------------------------------------------------有任何错误,请留言指正。主要功能:将需要注入的dll写入进程内存,用注射器实现LoadLibrary的功能,使用CreateRemoteThread函数将注射器启动。将待注入DLL读入自身内存,Dll的导出注射器Reflecti...

2019-11-24 10:21:52 1004

数码管显示手机号

使用BCD码数码管,用流水灯形式滚动显示手机号

2014-11-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除