当前位置: 首页 > news >正文

2.pwn的linux基础(计算机内部数据结构存储形式)

linux基础

保护层级:

分为四个ring0-ring3
一般来说就两个,0和3
0为内核
3为用户 

权限:

用户分为多个组
文件和目录等等的权限一般都是三个,即可读可写可执行。
读:R,写:W,执行:X
赋予一个可执行文件执行权限就是chmod +x filename

虚拟内存和物理内存:


物理内存很直白,就是内存中实际的地址。
虚拟内存是物理内存经过MMU转换后的地址(页表)
系统会给每个用户进程分配一段虚拟内存空间
所以说我们调试的可执行程序的内存空间布局都差不多,但是是虚拟内存,不是实际的物理内存。

Linux基础命令 

学会看源码


linux是开源的,他的代码实现都可以查到,
我们研究Iinux的机制,最重要的武器就是源码
分析源码是一个安全研究者必备的技能。
https://elixir.bootlin.com
https://code.wobog.org 

大端小端序

Iinux数据存储的格式为小端序

速记口令:大端序:高低低高

                  小端序:高高低低


计算机内部有两种数据的存储形式:大端序、小端序

大端序:数据高位存储在计算机地址的低位,数据低位存储在地址的高位

小端序:数据高位存储在计算机地址的高位,数据低位存储在地址。

例子:

以一个数据:0x0123456789abcdef为例,
0为低地址,7为高地址。

大端序存储

按照大端序的原则,数据最高位01存储在低位,最低位ef存储在高位,

将此数据按照字符串输出,得到的为:\x01\x23\x45\x67\x89\xab\xcd\xef

小端序存储

按照小端序的原则,数据最高位01存储在高位,.最低位ef存储在低位。

将此数据按照字符串输出,得到的为:\xef\xcd\xab\x89\x67\x45\x23\x01 

小端序

linux是小端序,所以如果我们以字符串的形式输入一个数字时,要注意格式
比如输入0xdeadbeef这个数字
字符串输入就是”xeflxbelxadlxde”传入给程序
好在有pwntools,p32(0xdeadbeef)即可完成自动转换 (32=4个字节(ef be ad de)x8)

文件描述符

Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时内核向进程返回一个文件描述符,,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I0操作的系统调用都会通过文件描述符
每个文件描述符会与一个打开的文件相对应,不同的文件描述符也可能指向同一个文件
相同的文件可以被不同的进程打开,也可以在同一个进程被多次打开

我们会在open、read、write这些常见函数中见到。
0标准输入(stdin)、1标准输出(stdout)、2标准错误(stderr)
read(0,buf,size)从stdin中读size个数据到buf中
write(1,buf,size)从buf中取size个数据到stdout中

栈(stack)


栈就是个阉割版的数组,只能在一头操作,为什么不直接用数组呢?
一把菜刀可以干很多事情,切菜刮皮剁骨头。
但是在刮皮的时候我们还是会选择用刮皮刀,原因很简单,更方便

栈是一种数据结构,他是一种先进后出(LIFO:last in first out)的数据结构。
栈的基本操作有两种:push(压栈)和pop(弹栈)。
由于函数调用顺序也是LIFO,所以我们能接触到的绝大多数系统,都是通过栈这一数据结构来维护函数调用关系。

linux中的栈

在linux系统中,系统为每一个进程都安排了一个栈,进程中每一个调用的函数都有自己独立的栈帧(栈里的一段区域)

在linux系统中,栈是由高地址向低地址生长
高地址为栈底,低地址为栈顶
我们接触到的一些算法,很多都是用栈来实现的,比如DFS,
DFS会将发现的节点存储在栈中,然后访问的顺序就是LIFO,
但是很多这种LIFO的算法都会以递归的形式实现,
其实,递归的形式实现这些算法本质上来说也是利用栈结构,只不过他没有在程序中另外申请一个栈,而是用的函数调用栈。

相关文章:

2.pwn的linux基础(计算机内部数据结构存储形式)

linux基础 保护层级: 分为四个ring0-ring3 一般来说就两个,0和3 0为内核 3为用户 权限: 用户分为多个组 文件和目录等等的权限一般都是三个,即可读可写可执行。 读:R,写:W,执行:X 赋予一个可执行文件执行权限就是chmod x file…...

67.SAP FICO-凭证类型学习

目录 SAP凭证类型 凭证类型的作用 - OBA7 SAP默认的凭证类型更改 FI相应事务代码默认凭证类型 - OBU1 对FB50、60、70默认凭证类型的更改 - OBZO 后勤货物移动默认凭证类型 - OMBA 发货凭证类型 收货凭证类型 自动移动凭证类型 存货盘点凭证类型 发票默认的凭证类…...

井字游戏00

题目链接 井字游戏 题目描述 注意点 1 < board.length board[i].length < 100输入一定遵循井字棋规则 解答思路 如果某一方想要获胜&#xff0c;则其需要占满某一行或某一列或对角线&#xff0c;所以只需要根据第一行和第一列判断是否填充完某一行或某一列或对角线…...

GEE代码实例教程详解:地表温度与土地覆盖类型分析

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 对地表温度数据进行分析&#xff0c;并探究不同土地覆盖类型&#xff08;特别是水体和城市区域&#xff09;的地表温度变化。通过MODIS数据集&#xff0c;我们可以监测2001年至2024年间的数据。 背景知识 …...

RK3568------Openharmony 4.0-Release 浏览器部署安装

RK3568------Openharmony 4.0-Release 浏览器部署安装 文章目录 RK3568------Openharmony 4.0-Release 浏览器部署安装前言一、DevEco Studio开发工具安装与使用二、浏览器(Browser)样例代码编译三 、浏览器(Browser)部署四、遇到的问题五、效果展示总结 前言 上一篇文章讲解了…...

【kafka】可视化工具cmak(原kafka-manager)安装问题解决

众所周知&#xff08;反正不管你知不知道&#xff09;&#xff0c;kafka-maneger更名了&#xff0c;现在叫cmak&#xff01;原因是什么呢&#xff1f;据不可靠小道信息说&#xff0c;原kafka-manager这个名字涉及到kafka商标使用问题&#xff0c;应该是被律师函警告了&#xff…...

【转载】目标检测mAP的含义

转载自三叔家的猫 https://blog.csdn.net/qq_39056987 https://blog.csdn.net/qq_39056987/article/details/104348493 <div id"content_views" class"markdown_views prism-atom-one-light"><svg xmlns"http://www.w3.org/2000/svg" s…...

智慧校园行政办公-红头文件功能概述

在智慧校园的行政办公系统中&#xff0c;红头文件的管理功能是一项重要的组成部分&#xff0c;它极大地提升了文件处理的效率与规范性。该功能围绕文件的创建、审批、归档等关键环节&#xff0c;进行了全面的数字化改造。 首先&#xff0c;系统内置了多种标准化的红头文件模板&…...

汽车IVI中控开发入门及进阶(三十三):i.MX linux开发之开发板

前言: 大部分物料/芯片,不管MCU 还是SoC,都会有原厂提供配套开发板,有这样一个使用原型,在遇到问题时或者进行开发时可以使用。 i.MX 8QuadXPlus MEK board: 1、要测试display显示器,可使用i.MX mini SAS将“LVDS1_CH0”端口连接到LVDS到HDMI适配器的cable。 2、要测试…...

Redis基础教程(十八):Redis管道技术

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…...

深度学习(笔记内容)

1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…...

阿里云登陆Centos7

用自己电脑登陆Centos7太麻烦了&#xff0c;还要自己弄个虚拟机&#xff0c;一个电脑里面既有WIN又有LINUX&#xff0c;索性直接买个阿里云服务器&#xff0c;来学习Centos7。 购买 我是新用户&#xff0c;可以试用3个月&#xff0c;先用个3个月再说哈哈哈。 一系列操作之后…...

探索C嘎嘎的奇妙世界:第十九关---STL(list的模拟实现)

1. 基本框架 首先&#xff0c;我们先从节点的准备工作入手&#xff0c;请看示例&#xff1a; #pragma once #include<iostream> #include<assert.h> using namespace std; //节点 template<class T> struct ListNode {ListNode<T>* _next;Li…...

【分布式系统三】监控平台Zabbix对接grafana(截图详细版)

目录 一.安装grafana并启动 二.浏览器访问 三.导入zabbix数据&#xff0c;对接grafana 四.如何导入模版 以前两篇博客为基础 【分布式系统】监控平台Zabbix介绍与部署&#xff08;命令截图版&#xff09;-CSDN博客 【分布式系统】监控平台Zabbix自定义模版配置-CSDN博客 …...

SAPUI5基础知识11 - 组件配置(Component)

1. 背景 组件&#xff08;Component&#xff09;是SAPUI5应用程序中独立且可重用的部件。 SAPUI5提供以下两类组件: faceless组件 (class: sap.ui.core.Component): 无界面组件即没有用户界面相关的元素&#xff0c;用于不需要UI元素编码的场景&#xff1b; UI组件 (class: …...

Spring最早的源码

地址&#xff1a;Spring最早的源码...

热烈祝贺!全视通多家客户上榜全球自然指数TOP100!

2024年6月18日&#xff0c;全球医疗机构自然指数TOP100榜单发布&#xff0c;中国医疗机构在其中的表现尤为引人注目。 根据《自然》杂志网站发布的数据&#xff0c;此次公布的排名是基于&#xff08;2023年3月1日至2024年2月29日&#xff09;的统计数据&#xff0c;全球医疗机构…...

常用接口避免频繁请求

背景 在项目开发过程中我们难免会遇到一些通用的接口&#xff0c;需要在多个页面调用&#xff0c;拿去结果。比如我们常用的字典接口&#xff0c;后端通过字典配置一些数据&#xff0c;通常这些字典数据是不常更改的。我们通过字典接口传递不同的参数过去&#xff0c;获取到接…...

C++入门基础

前言 本篇博客讲解一下c得入门基础 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee:普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&…...

Unicode 与 UTF-8 的区别与联系

文章目录 UnicodeUTF-8联系区别Unicode 转义序列字符编码与字符的对应规则例子 Unicode 定义&#xff1a;Unicode 是一个字符编码标准&#xff0c;旨在为世界上所有的字符分配一个唯一的编码。 编码范围&#xff1a;Unicode 的编码范围从 0x0000 到 0x10FFFF&#xff0c;能够表…...

Windows 11下xray安装全流程:从下载到配置证书的保姆级教程

Windows 11安全工具配置全指南&#xff1a;从零开始搭建本地测试环境 在数字化生活日益普及的今天&#xff0c;个人电脑安全越来越受到重视。对于技术爱好者而言&#xff0c;了解和使用专业安全工具不仅能提升自身防护能力&#xff0c;也是学习网络安全知识的重要途径。本文将详…...

抖音弹幕抓取终极指南:3分钟掌握系统代理抓包技术

抖音弹幕抓取终极指南&#xff1a;3分钟掌握系统代理抓包技术 【免费下载链接】DouyinBarrageGrab 基于系统代理的抖音弹幕wss抓取程序&#xff0c;能够获取所有数据来源&#xff0c;包括chrome&#xff0c;抖音直播伴侣等&#xff0c;可进行进程过滤 项目地址: https://gitc…...

SAM3镜像部署:一键启动,开箱即用的文本引导分割工具

SAM3镜像部署&#xff1a;一键启动&#xff0c;开箱即用的文本引导分割工具 1. 快速入门指南 1.1 镜像概述 本镜像基于Meta最新发布的SAM3&#xff08;Segment Anything Model 3&#xff09;算法构建&#xff0c;通过二次开发集成了直观的Gradio Web交互界面。无需任何编程基…...

【BLE系列-第四篇】数据链路层(LL)实战:广播与连接参数优化指南

1. BLE数据链路层核心参数解析 低功耗蓝牙&#xff08;BLE&#xff09;的数据链路层&#xff08;LL&#xff09;就像交通系统中的红绿灯和道路规划&#xff0c;它决定了设备间如何高效、稳定地建立通信。在实际开发中&#xff0c;我经常遇到工程师对着几十个参数发愁&#xff1…...

OpenClaw多任务队列:nanobot处理并行请求方案

OpenClaw多任务队列&#xff1a;nanobot处理并行请求方案 1. 问题背景与需求场景 上周我在本地部署了一个基于OpenClaw的自动化助手&#xff0c;用于处理日常办公中的重复性任务。最初只是简单对接了单一大模型实例&#xff0c;但随着使用频率增加&#xff0c;很快遇到了一个…...

macOS HTTPS资源嗅探配置指南:res-downloader从入门到精通

macOS HTTPS资源嗅探配置指南&#xff1a;res-downloader从入门到精通 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode…...

网易云音乐无损解析:从零打造个人音乐库的终极指南

网易云音乐无损解析&#xff1a;从零打造个人音乐库的终极指南 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 还在为网易云音乐无法下载无损音质而烦恼吗&#xff1f;想要建立属于自己的高品质音乐收藏库吗&am…...

总结各GPU的OpenCL子组洗牌支持情况

penCL 2.0 通过扩展cl_khr_subgroups提供一些基础子组操作支持&#xff0c;包括获取子组 ID、组内 ID 等基本功能&#xff0c;组内断言(any/all)、广播(broadcast)、归约(reduce)、扫描(scan)等基本操作&#xff0c;同时允许一些可选扩展支持更丰富的子组操作&#xff08;比如洗…...

3步激活旧设备潜能:开源工具OpenCore Legacy Patcher全攻略

3步激活旧设备潜能&#xff1a;开源工具OpenCore Legacy Patcher全攻略 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 旧设备升级不再是难题&#xff0c;借助开源工具Ope…...

GHelper开源工具深度评测:如何为华硕笔记本实现轻量化硬件控制

GHelper开源工具深度评测&#xff1a;如何为华硕笔记本实现轻量化硬件控制 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models …...