自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Linux内核调试最优方法

Linux内核调试躺坑偶尔要分析一下Linux内核,内核探针有时并不能满足需要(例如调试分析CVE)。采用VM虚拟机通过管道加IDA双机调试很卡,调试体验很差。用KDB也是卡,还有可能断点无效,死机也是常事。Visual Studio调试内核依然不方便,重点是卡慢。最终还是学习Google使用QEMU调试内核。(网上一大推调试文章,能用好用的并不多,我跟着一路折腾过来真把我弄得够呛。给后来人一个忠告,老老实实在开启虚拟化的Linux虚拟机中使用QEMU+gdb)靠谱点的资料多读牛逼人的一手资料,官方文

2021-11-03 20:52:13 282

原创 2021-10-31

Vim使用技巧配置/etc/vim/vimrcgit clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtimesh ~/.vim_runtime/install_awesome_vimrc.sh当需要Root权限才能保存文件时:w !sudo tee %强制退出:q!常用插件文档https://github.com/amix/vimrc...

2021-10-31 14:49:28 107

原创 内核漏洞利用指南二

从用户空间到内核空间的攻击本章信息介绍内核和现有内核利用为什么用户空间利用不在好用利用编写者眼中的内核开源与闭源操作系统简介这张引入了我们的目标,内核。在一个简短的内核基础讨论后,我们分析了为什么利用作者已经将注意力从用户应用程转移到内核,我们简要描述了用户空间利用与内核空间利用的区别。除了探讨了Windows内核与UNIX内核的在一些情况下得区别。例如,同一段代码可能在32位系统上成功运行,而在64位系统上无效。或在x86机器上有效,而在SPARC系统上无效。最后通过探讨开源与闭源操作系

2021-09-06 23:24:36 684

原创 内核漏洞利用指南一

内核漏洞利用指南–攻击核心在这个领域知识与最佳的实践一直在相互促进不断发展。新研究与试验会加深我们对事物的理解,这种理解反过来也改变了研究事物的方式,让其变的更加专业,更加有效。从业人员和研究人员必在评估中须依靠自己的经验与知识并结合一些信息或手段。这些信息和手段可以是任意的,也可以是本文提及的。在使用这些信息时,他们应该留心他们自己与他人的安全。其中就包括那些有职业责任的人。在法律的最大范围内,对于因产品责任、疏忽或其他原因而使用本书材料中包含的放法、产品、说明或想法而对人员或财产造成的任何伤害

2021-09-05 23:58:37 598

原创 2021-08-05

这里写自定义目录标题Ubuntu kgdb调试安装符号Ubuntu kgdb调试安装符号https://wiki.ubuntu.com/Debug%20Symbol%20Packages

2021-08-05 23:00:45 48

原创 JAVA11以上没有jre, tool.jar, dt.jar的原因

这里写自定义目录标题JAVA11以上版本环境配置不变的改变的JAVA11以上版本环境配置背景,今天配置JAVA环境,发现JAVA_HOME下没有jre目录,JAVA_HOME/lib目录下没有tool.jar, dt.jar。查找资料以后才发现原来JAVA11以后大大简化了JAVA环境配置方式。不变的依然要配置JAVA_HOME目录,和PATH,CLASSPATH。(在配置PATH环境变量时应采用尾部追加的方式)JAVA_HOME F:\MyTool\jdk\jdk-16.0.1PATH

2021-06-01 20:07:14 11862 2

原创 反调试NtClose

NtClose反调试原理,NtClose函数在释放无效句柄时。如果没有被调试,那么函数返回FALSE。如果处于调试状态则会抛出异常C0000008H。参考反调试 - CloseHanlde,NtClose

2021-05-27 02:23:52 685

原创 DebugView配置显示KdPrintEx调试信息

DebugView配置显示KdPrintEx调试信息今天编写驱动,想通过DebugView捕获驱动中KdPrintEx函数产生的调试信息。而DebugView有多种捕获选项。因此究竟哪种能捕获到KdPrintEx产生的调试信息呢?Capture Win32Capture Global Win32Capture KernelEnable Verbose Kernel OutputPass-ThroughCapture EventsLog Boot经过测试发现只有同时开启Capture K

2021-05-25 20:20:06 584

原创 你好Win10驱动

你好Win10驱动搭建WDK环境使用Win10 1909作为开发系统即10363,因为PCHunter支持的最高版本是win10 10363。这个内核工具在以后非常有用。在安装WDK之前,先安装正确的SKD,WDK与SDK的版本要对应。我选用的SDK 10.0.18362.0,以及Windows 10 版本 1903 的 WDK。下载VS2019,在VS2019安装KMDF框架(就是驱动开发模板)。创建一个最简单KWDF项目,尝试编译。编译报错问题MSB8040 此项目需要缓解了 Spec

2021-05-23 14:26:28 558

原创 FindWin10Old32ExE

文章目录FindWin10Old32ExEFindWin10Old32ExEimport osimport pefileexe_exception = open("exe_exception", "a")exe_32 = open("exe_32", "a")for root, dirs, files in os.walk(r"C:\\Windows"): for file in files: #print(root) fullname = os.p

2021-04-08 00:25:53 1225

原创 从零开始pcap

pcap描述环境搭建pcap如果看的了英文文档直接看英文就好了,我这篇完全是参考英文文档的。如果只是简单的使用参考这篇文章就好了http://www.tcpdump.org/pcap.html使用时遇到困难,请参考官方文档https://www.tcpdump.org/manpages/pcap.3pcap.html描述pcap是Packe...

2018-08-23 23:02:22 150

原创 嵌入式学习 Linux进程控制 实践篇

嵌入式学习 Linux进程控制 实践篇获取进程ID创建子进程forkvforkexec函数族execlexeclpexecvsystem.c进程等待嵌入式学习 Linux进程控制 实践篇获取进程ID/** #include <sys/types.h>* #include <unistd.h>*/pid...

2018-08-09 19:34:15 399

原创 嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探

Kali Buildroot交叉编译工具链与qemu初探环境描述基本步骤详细过程下载Buildroot通过Buildroot构建交叉编译工具链用交叉编译工具链编译HelloWorld C程序Kali Buildroot交叉编译工具链与qemu初探目的用Buildroot生成MIPS交叉编译工具链,编译可执行文件在qemu上执行。环境描述kali版本 ...

2018-07-26 21:08:46 1682

原创 嵌入式学习时间编程

嵌入式学习时间编程基本概念 - 日历时间:方便计算机计时,只要计时器+1就号 - 格林尼治时间:世界统一时间 - 本地时间:日常生活中人们使用的时间 核心思想是,先向计算机获取日历时间,在通过函数将日历时间转化为格林威治时间或者是本地时间。time获取日历时间#include <time.h>time_t time(time_t * tloc); //...

2018-07-26 20:16:27 238 1

原创 嵌入式学习 Linux进程控制理论篇

嵌入式学习 Linux进程控制嵌入式学习 Linux进程控制 进程定义: 一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位(说的很有道理,其实我个人对此理解还是很有限的) 进程的特点:进程的特点动态性(可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程...

2018-07-25 23:48:43 310

原创 嵌入式学习时间编程

嵌入式学习时间编程基本概念 - 日历时间:方便计算机计时,只要计时器+1就号 - 格林尼治时间:世界统一时间 - 本地时间:日常生活中人们使用的时间 核心思想是,先向计算机获取日历时间,在通过函数将日历时间转化为格林威治时间或者是本地时间。time获取日历时间#include <time.h>time_t time(time_t * tloc); ...

2018-07-25 19:40:56 418

原创 嵌入式学习库函数文件操作

嵌入式学习库函数文件操作打开文件fopen读文件fread写文件fwrite文件指针操作fseek获取当前路径创建目录不常用的文件操作函数嵌入式学习库函数文件操作使用库函数操作文件,可以写出跨平台的代码。这是其优点。下面介绍C库函数操作文件的方法。这里是相关API。FILE * fopen*(const char * filename, const ...

2018-07-24 21:48:26 733

原创 嵌入式学习Makefile

嵌入式学习MakefileMakefile语法Makefile 举例.PHONY关键字定义Makefile变量Makefile中系统默认的自动化变量Mailefile中的注释嵌入式学习Makefilemake是一个工具,用来构建和管理软件享目。之前是个编译一个hello.c的程序需要一条gcc命令。但是一个软件工程有大量的源文件需要gcc编译,手工逐条敲...

2018-07-24 00:25:18 379

原创 嵌入式学习GDB

GDGGDB调试程序步骤GDB基本命令启动GDBlbinfo breakdelete 断点编号run(r)next(n)step(s)continue (c)print 变量名finishwatch 变量名GDG启动被调试程序设置断点,暂停程序当程序暂停时,检查程序状态GDB调试程序步骤gcc -g 生成带调试信息的可执...

2018-07-23 23:30:04 177

原创 嵌入式学习gcc

gccgcc编译器,将C/C++代码编译成二进制的可执行文件。gcc编译过程可以简单分为,预处理,编译,汇编,链接。在这4个过程中会产生若干中中间文件。.c(C源文件) .C .cc .cxx(C++源文件)// 源代码文件 --预处理-->.i (对应.c) .ii(.C .cc .cxx) // ----汇编--->.s // ----预编译---->.S ...

2018-07-23 22:41:26 439

原创 Python 函数

Python函数函数是一个可以被重复调用的带有一个入口和一个出口的固定程序段。Python函数定义def print_string(name): print(name)print_string("Zhai");Python参数形参实参默认参 def print_string(name="none")参数组 def print_string(*names) d...

2018-07-15 18:50:31 128

原创 Python基本数据类型

Python基本数据类型Python基本数据类型数字基本运算字符串字符串格式化字符串的索引字符串方法Python基本数据类型主要有数字数字 整形 int long 浮点 float 注意:long类型在Python3中已经被取消了 基本运算 加 + 减 -乘 x...

2018-07-15 18:10:27 174

原创 8086寻址方式

8086寻址方式立即数寻址寄存器寻址Reg to RegSeg to RegReg to Seg存储器寻址直接寻址寄存器间接寻址寄存器相对寻址寄存器变址寻址寄存器相对变址寻址8086寻址方式8086寻址方式主要分为三种,立即数寻址方式,寄存器寻址方式,存储器寻址方式。 寻址:就是寻找操作数的过程。注:获取操作数采用的寻址方式,会影响机器运行效率。操作码:有时候指,机器指令的

2017-09-04 22:57:42 19264

原创 集合类使用set

set集合容器:实现了红黑树的平衡二叉的数据结构,插入元素时,会自动调整二叉树的排列,把元素放到适当的位置,用以保证每个子树根节点键值大于左子树,小于右子树所有节点的键值,并且还保证根节点左子树高度与右子树高度相等。因此检索效率高于,vector,list和deque。另外,其还有从小到大的排序功能。(当用set类装自定义类时,要重载小于号)常用操作insert() //插入

2016-02-03 16:50:21 273

原创 一种排序

描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;输入第

2016-02-03 12:13:58 305

原创 街区最短路径问题

街区最短路径问题街区最短路径问题描述mycode描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地

2016-02-02 21:16:47 366

原创 括号配对问题

描述 现在,有一行括号序列,请你检查这行括号是否配对输入第一行输入一个数N(0N100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出N

2016-02-01 23:45:46 249

原创 c语言函数qsort()总结

c语言函数qsort()总结int (void *)qsort(void *base , size_t num , size_t width ,int(_cdecl* compare)(const void *,const void *));函数在头文件<stdlib.h>.用来快速排序.#

2016-02-01 18:14:09 349

空空如也

空空如也

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

TA关注的人

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