linux安全
文章平均质量分 72
bunner_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
通过读取maps信息获取可执行文件头装载的地址
1. 通过maps文件获取进程的文件头和段表 想要实现这一功能,根据书上所写,首先要找到代码段的首地址BaseVaddr,然后文件头就从这个地址开始,用ptrace从这个地址读一个sizeof(Elf64_Ehdr)大小的数据出来就可以了 但是,我在实现的时候遇到的一个问题,读出来的结果压根不对,其结果如下所示 $ sudo ./reconstruct 12127 BaseVaddr: 0x401000 ELF header: magic: f3 f 1e fa ff ff ff ff 48 8b原创 2021-06-18 22:26:27 · 685 阅读 · 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 · 335 阅读 · 2 评论 -
通过ptrace跟踪进程
1. 任务环境与目标 1.1 实验机器 Ubuntu 20.04 64位 1.2 任务目标 给定一个可执行文件,该程序调用两次print_string函数,分别输出Hello 1,Hello 2,要求在print_string处下断点,并输出该处时的各寄存器值 2. 原理 2.1 ptrace ptrace的函数原型为:long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); 那么有关本任务中涉及到的一些re原创 2021-06-10 12:15:22 · 1113 阅读 · 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 · 799 阅读 · 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 · 530 阅读 · 0 评论
分享