
linux安全
文章平均质量分 72
bunner_
这个作者很懒,什么都没留下…
展开
-
通过读取maps信息获取可执行文件头装载的地址
1. 通过maps文件获取进程的文件头和段表想要实现这一功能,根据书上所写,首先要找到代码段的首地址BaseVaddr,然后文件头就从这个地址开始,用ptrace从这个地址读一个sizeof(Elf64_Ehdr)大小的数据出来就可以了但是,我在实现的时候遇到的一个问题,读出来的结果压根不对,其结果如下所示$ sudo ./reconstruct 12127BaseVaddr: 0x401000ELF header:magic: f3 f 1e fa ff ff ff ff 48 8b原创 2021-06-18 22:26:27 · 634 阅读 · 0 评论 -
通过ptrace跟踪进程2
相关连接项目地址 —— linux binary analysis: 《linux二进制分析》学习 (gitee.com)上一篇博客 —— 通过ptrace跟踪进程 - bunner - 博客园 (cnblogs.com)1. 任务环境和目标1.1 实验机器Ubuntu 20.04 64位1.2 任务目标给定一个可执行文件或进程pid,其进程执行内容为:执行20次print_string函数,要求本程序跟踪print_string函数,并在目标进程每次执行print_string函数时原创 2021-06-11 11:30:29 · 267 阅读 · 2 评论 -
通过ptrace跟踪进程
1. 任务环境与目标1.1 实验机器Ubuntu 20.04 64位1.2 任务目标给定一个可执行文件,该程序调用两次print_string函数,分别输出Hello 1,Hello 2,要求在print_string处下断点,并输出该处时的各寄存器值2. 原理2.1 ptraceptrace的函数原型为:long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);那么有关本任务中涉及到的一些re原创 2021-06-10 12:15:22 · 1006 阅读 · 1 评论 -
解析ELF可执行文件-C语言
解析代码/* gcc elfparse.c -o elsparse */#include <stdio.h>#include <string.h>#include <errno.h>#include <elf.h>#include <unistd.h>#include <stdlib.h>#include <sys/mman.h>#include <stdint.h>#include <原创 2021-06-09 10:34:12 · 720 阅读 · 0 评论 -
ret2dir漏洞复现
参考的博客:linux kernel pwn 之 ret2dir 学习ioctl系统调用过程(深入Linux(ARM)内核源码)ret2dir漏洞复现原理ret2dir是利用内核空间和用户空间的隐性地址共享来实现对一些SMEP和SMAP保护机制进行绕过SMAP保护机制保证了内核只可以对内核空间里的数据进行访问,而physmap恰好处在内核空间中,却可以映射用户空间映射的物理地址SMEP保护机制保证了内核态下无法执行用户空间的代码liinux x86_64内存布局低128TB为用户空间原创 2021-03-19 23:52:06 · 481 阅读 · 0 评论