栈ASLR保护Address Space Layout Randomization 地址空间布局随机化是一种对程序的保护机制。它通过如其名的保护方式通过在程序运行时对程序的栈堆共享库libc等的地址随机化来避免不怀好意的人通过栈溢出时在溢出区直接给程序输入固定的程序地址以此来让程序跳转到其想让程序跳转到的地址最终劫持执行流。开启了ASLR保护后程序每一次运行时函数system和字符串/bin/sh的地址都是随机的这样攻击者就不能通过给程序输入固定的地址来控制程序跳转。为了克服ASLR这一困难我们会使用下面的攻击方法一步步解释我们想要劫持程序的执行流通常是想方设法地让程序执行system/bin/sh。而现在的程序里就算有system函数和/binsh字符串由于开启了ASLR保护我们就不能在溢出区直接输入固定的函数和字符串的地址像前面那样pop_rdi binsh然后直接执行system函数。既然现在程序内部函数的地址是随机的我们就想办法让它从随机变为固定或者说半固定。ASLR保护存在时libc整个共享库会完整地偏移某个值。这就给了我们操作的机会我们可以通过某些libc库中的函数例如puts函数通过查看它们原的地址和偏移后的地址来计算偏移量。这样通过固定的偏移量我们就可以通过libc基址加上system函数在libc库中的绝对地址然后加上偏移量把这样的payload插入程序溢出区就可以让程序执行system函数。我们用ciscn_2019_n_1这道题目为例。main函数调用了func这个函数。我们可以看到func函数中存在gets函数存在栈溢出程序中也存在puts函数我们可以从中操作来得到libc的偏移量。第一步查找puts函数在程序中的真实地址第二步通过puts真实地址和puts在libc中绝对地址的差值找到libc库的基值第三步通过libc中绝对地址固定的system函数和/binsh加上偏移得到它们在程序中的真实地址构造payload。下面我们来写exp上面的这一半包括了我们上面说的前两步。io连接process因为这里作者选择打本地elf连接本地文件方便后续确定puts函数的plt和got表位置。直接构造第一个payload输入之后程序会返回一个值我们pop rdi为puts的got表地址然后通过plt表来跳转执行puts函数让他为我们输出程序的地址存在got表中。plt表相当于跳板程序执行callplt时会跳到这里将地址存入got或跳到已存地址的got表got是一个二重指针里面存储着一个个指针程序所调用过函数的地址。//像是本例中程序调用过了puts函数之后就会把puts函数在程序中的真实地址存在这里。通过接收函数us我们就接收到了puts函数的真实地址。payload里的main函数地址是因为接下来我们还要对程序再进行一次攻击就是我们搞到了偏移量之后直接执行system函数和binsh字符串地址之后的攻击。接下来我们通过通过xxx_offsetlibc.dump(xxx)这个指令来计算libc库的基址。通过libc.dump我们可以确定上述函数在libc库中的偏移量。结合偏移量我们即可写出最终的劫持payload。
ArcGIS距离标注 摘要:本文详细介绍了在ArcGIS中标注不同要素(面与线、线与线、点与点)间距离的操作流程,其实这三种实质上都是点到点的距离。情况一:标注面要素到线要素的距离1、【要素折点转点】,提取面要素的所有端点。图…
【单片机毕业设计】基于 STM32 的温度智能排风控制系统设计与实现,基于 51 单片机的室内温控自动排风监测系统开发(011202) 文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能一、基础采集与显示功能二、人机交互按键辅助功能三、核心智能自动温控功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业…
【单片机毕业设计】基于 STM32 的环境监测智能时钟系统设计与实现,基于 STM32 单片机的蓝牙远程控制多功能闹钟装置开发(011202) 文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案一、核心主控硬件二、显示硬件三、环境传感硬件四、人机交互硬件五、声光报警硬件六、无线通信硬件七、开发计算机硬件环境核心功能一、基础采集与计时显示功能二、环境参数实时采集核心功能三、本地按键交互操作功能…
【小程序计算机毕业设计案例】基于 Android 的学生校车选座与行程查询系统的设计与实现 SpringBoot 驱动的校园校车运维与订座系统(程序+文档+讲解+定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
Quartus Prime 23.1 双端口 RAM IP 配置:8 个关键参数详解与 1 个完整读写测试工程 Quartus Prime 23.1 双端口 RAM IP 配置:8 个关键参数详解与完整读写测试工程在 FPGA 设计中,片内存储器(On-Chip Memory)是构建高效数据缓存和快速存取系统的核心组件。Quartus Prime 23.1 提供的双端口 RAM IP 核为开发者提供了…
C语言八大排序算法性能实测:10万数据下快排与堆排序耗时对比 C语言八大排序算法性能实测:10万数据下快排与堆排序耗时对比排序算法是计算机科学中最基础也最重要的算法之一。对于C语言开发者来说,深入理解各种排序算法的性能特点,能够在实际开发中做出更合理的选择。本文将通过实测对比八大经典排序算法…
LaTeX + GB/T 7714-2015:BibTeX 样式定制与5类常见文献条目(期刊/会议/专利)处理详解 LaTeX GB/T 7714-2015:BibTeX 样式定制与5类常见文献条目处理实战在学术写作中,参考文献格式的规范性直接影响论文的专业性和可信度。GB/T 7714-2015作为中文期刊最常用的参考文献标准,其实现却常让LaTeX用户感到棘手——尤其是需要处理中英…
2026同城寄大件家电,这样找物流便宜一半还有折扣 - 快递物流资讯 2026同城寄大件家电,哪个物流最划算?揭秘隐藏低价渠道到了2026年的当下, 因二手家电市场变得活跃起来, 加上搬家、装修需求成了常态化2026同城寄大件家电,哪个物流最划算?揭秘隐藏低价渠道 到了2026年的当下, 因二…
vSphere 8.0 Enhanced Linked Mode(ELM 增强链接模式)完整功能详解,跨vCenter自动复制SSO全域身份与全局配置分布式架构指南 vSphere 8.0 彻底废除独立外部 PSC,依托全新弹性 DirDir 分布式对等目录重构 Enhanced Linked Mode(ELM),核心能力为多台 vCenter 之间双向自动复制 SSO 身份数据、全局权限、标签、证书、许可证等统一配置;单账号一次…
AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作 这两年,越来越多深圳地区的少儿素质培训机构开始关注 GEO。 原因很简单。过去家长找培训机构、找兴趣班、找素质教育课程,主要靠搜索引擎、短视频平台、社交平台种草和熟人推荐;现在越来越多深圳本地家长,已经开始直接在 AI 里提…
开源本地智能体 OpenClaw 2.7.9 保姆级部署手册,零代码操控电脑重复工作 📖前言 OpenClaw,在开发者社区中常被亲切地称为"小龙虾",是当前备受关注的开源 AI 智能体项目,其在 GitHub 平台上已累计获得超过 28 万星标。与常规的对话型 AI 工具不同,OpenClaw 能够理解自然语言指令&a…
广氟 PTFE 高速线缆膜 —— 高端线缆绝缘材料新选择 PTFE高速线缆膜的基本概念与特点 PTFE 高速线缆膜是以聚四氟乙烯树脂为原料,经膨化双向拉伸制成的多孔绝缘薄膜,作为高速高频通信线缆的核心介质材料,内部形成均匀连通的微孔结构,兼具极低介电常数与介电损耗,能有效降…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…