使用LD_PRELOAD 加系统调用 替换libc原有函数
来源:互联网 发布:希尔伯特变换 c语言 编辑:程序博客网 时间:2024/06/05 10:14
环境变量 LD_PRELOAD 路径下的 so 会优先加载
这里以替换mmap 函数作为示例
#include <unistd.h>#include <sys/syscall.h> #include <stdio.h>#define gettidv1() syscall(__NR_gettid) //#define __NR_mmap2(__NR_SYSCALL_BASE+192)//arm-linux-gnueabihf/libc/usr/include/asm/unistd.h//log_find_file_by_prefix: open directory fail! void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset){ printf ("call in %d,%d,%d\n",length,getpid(),gettidv1()); return (void *)syscall(__NR_mmap2,addr,length,prot,flags,fd,offset);}void *mmap2(void *addr, size_t length, int prot, int flags, int fd, off_t pgoffset){ printf ("call in 2\n"); return (void *)syscall(__NR_mmap2,addr,length,prot,flags,fd,pgoffset);}int munmap(void *addr, size_t length){ printf ("unmap %d,%d,%d\n",length,getpid(),gettidv1()); return syscall(__NR_munmap,addr,length);}
编译成so 文件 ,放入环境变量
程序再运行就执行的是 我们自己写的mmap
阅读全文
0 0
- 使用LD_PRELOAD 加系统调用 替换libc原有函数
- 绕过 libc 直接使用系统调用
- libc库和系统调用
- Linux-----系统安装【四】【替换原有yum】
- shell 自加自减/函数调用/sleep/vim 替换
- libc库、glibc库和系统调用
- Linux下入门级导出函数截获-使用LD_PRELOAD环境变量
- Linux内核中 如何动态替换系统调用函数
- 一个系统调用加钩子函数的实现过程
- 使用LD_PRELOAD调试代码
- 用 LD_PRELOAD 挽救被误删的 libc.so.6
- 利用LD_PRELOAD给glibc库函数加钩子
- system函数与LD_PRELOAD变量
- linux--函数劫持--基于LD_PRELOAD
- linux--函数劫持--基于LD_PRELOAD
- linux--函数劫持--基于LD_PRELOAD
- ld_preload
- LD_PRELOAD
- Smart forms 编辑器-MS Word
- 干货|从故障复盘看产品质量防线
- java反射
- Bailian3248 最大公约数【数论】
- Tensorflow实战学习(三十九)【TensorBoard】
- 使用LD_PRELOAD 加系统调用 替换libc原有函数
- Hadoop配置启动SecondaryNameNode
- 这 10 个 JavaScript 的难点你都懂吗?
- select @@identity的用法
- Android-Annotation教你写自定义注解
- Idea中Git的使用和两种类型的冲突解决 转载
- NoSQL概念和特点
- 第三部分:POJ 1007 解题报告
- Checksum 校验和