文章
104
标签
2
分类
70
Home
Archives
Tags
Categories
List
Music
Movie
Link
About
Rhea's Blog
Rhea's Blog
搜索
Home
Archives
Tags
Categories
List
Music
Movie
Link
About
无标题
发表于
2025-07-01
|
更新于
2025-07-01
|
PWN
Learning
1-二进制文件
2-ELF文件格式
|
浏览量:
title: 可执行文件装载与虚拟内存
date: 2025-06-28 20:16:36
categories: - PWN -ELF文件格式
tags:
文章作者:
Rhea
文章链接:
https://rhea006.github.io/2025/07/e95b91c59fd3.html
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来源
Rhea's Blog
!
上一篇
2-ret2shellcode
ret2shellcode原理ret2shellcode,即控制程序执行 shellcode 代码。shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。通常情况下,shellcode 需要我们自行编写,即此时我们需要自行向内存中填充一些可执行的代码。 在栈溢出的基础上,要想执行 shellcode,需要对应的 binary 在运行时,shellcode 所在的区域具有可执行权限。 需要注意的是,在新版内核当中引入了较为激进的保护策略,程序中通常不再默认有同时具有可写与可执行的段,这使得传统的 ret2shellcode 手法不再能直接完成利用。 利用方式第一种利用方式:根据函数调用约定,在一个函数执行的最后,是一个leave;ret; 实质是 mov esp,ebp pop ebp pop eip 这时候我们在填充一个shellcode,然后控制返回地址为jmp esp即可利用 shellcode jmp esp old_ebp 局部变量 pwndbg> r #不断点直接Starting program...
下一篇
人麻了,我写的不见了,就看看下面那个师傅的吧,回头再补坑Ret2dlresolve攻击解析 - chan’s blog Q1:什么是动态链接? 把链接这个过程推迟到了运行时再进行,在可执行文件装载时或运行时,由操作系统的装载程序加载库 Q2:为什么需要动态链接? 解决静态链接的空间浪费和更新困难问题 Q3:动态链接的实现? Linux:.so;Windows:.dll 共享的是代码,私有的是数据 共享对象的最终装载地址在编译时是不确定的,而是在装载时,装载器根据当前地址空间的空闲情况,动态分配一块足够大小的虚拟地址空间给相应的共享对象 Q4:动态链接对象共享难题? 指令部分有两个地方需要在装载时确定 一是指令访问其他模块的数据。如果其他模块的数据的地址需要再装载时才能确定,这就必须修改指令中的地址 二是指令中调用其他模块的函数 解决方法:全局偏移表 GOT(global offset table) Q5:GOT? 数据段中的一个指针数组: 存储:存放跨模块的数据/函数的地址 动态修改:在装载时动态填入 访问:通过GOT的指针间接访问 说白了GO...
评论
Rhea
正在学PWN的菜狗
文章
104
标签
2
分类
70
Follow Me
公告
This is my Blog
最新文章
pwn135-159【停更先,堆好难,打打新生赛去了,学一下re】
2025-09-17
16.04dockerfile
2025-08-27
docker命令
2025-08-27
pwn111-134
2025-08-27
pwn101-110
2025-08-17
搜索
数据加载中