Linux hook
文章平均质量分 94
yg@hunter
这个作者很懒,什么都没留下…
展开
-
Linux MIPS64下hook系统调用(kylin server v10)
本文基于mips64平台,实际写个demo介绍如何在mips64下hook系统调用,这里只介绍基于syscall table的hook。原创 2021-12-13 17:24:39 · 3333 阅读 · 0 评论 -
Linux下监控所有进程的退出事件(x86_64下hook系统调用do_exit)
我们想捕获到每个程序启动的信息,则要hook系统调用execve,我们很容易想到了通过__NR_execve来完成,在x86_64上,如果你这么做了,那么会很不幸的造成系统崩溃,为何会这样呢,查看内核源码会发现__NR_execve对应的其实是stub_execve,不能简单的替换成sys_execve,还需要处理栈平衡,那么该如何做呢,本文暂且不讲,后面会另起文章介绍如何hook系统调用execve。原创 2020-05-28 22:02:38 · 2363 阅读 · 3 评论 -
Linux上监控应用程序启动 (hook execve系统调用)
对于linuxx86-64平台,hook普通的系统调用是一件比较简单的事情,可以看hook系统调用完整实例讲解。但是对于execve、fork、clone等这些系统调用的hook却并没那么简单了。本文详细展示如何hook execve系统调用,针对rhel/centos 5.x 6.x 7.x 8.x发行版默认内核版本上测试正常。原创 2020-05-27 21:12:21 · 3647 阅读 · 10 评论 -
linux系统调用内核源码解析(基于4.18.0-87版本内核)
本文基于linux x86-64平台下内核源码分析,源码版本4.18.0-80,以应用层openat调用为例展开探索。原创 2020-04-25 13:22:13 · 2635 阅读 · 6 评论 -
Linux Hook系统调用(适用基于x86_64的4.17.0以上的内核版本)
随着rhel8.0于去年5月初发布以来,开启了rhel8.x的时代,随后一段时间里centos、oracle linux也都发布了基于rhel的8.x系统。前段时间我就安装了个centos8.0,但是在编译运行之前写的hook内核的代码时,却发现之前的hook方法不奏效了。一波谷歌之后,看到了这篇文章[PATCH 000/109] remove in-kernel calls to syscal...原创 2020-04-19 21:26:44 · 2439 阅读 · 1 评论 -
Linux系统中获取系统调用表(system call table)地址的几种方法
上回讲到如何编写简单的内核模块,那么内核模块可以用来做什么呢?一个例子就是可以hook系统调用,替换为自己的接口函数;还有就是设备驱动的开发。本文将就hook系统底层调用技术展开讨论。下图是应用层的一个系统调用在linux系统中的调用流程:在应用层调用getpid系统调用,为glibc中封装,此调用会引发int 80中断,调用切换到内核空间,然后根据system_call数组及其_NR_getpid下标找到系统调用sys_getpid接口的地址,之后将会返回系统调用结果到应用层。..原创 2020-06-02 22:51:46 · 6793 阅读 · 1 评论 -
Linux ARM64平台上Hook系统调用(以openat为例)
我之前已经有几篇关于linux下hook系统调用的文章1,2,3,都是基于x86_64平台的,本文将会先介绍下如何在arm64平台下hook系统调用,最后会手撸的简单的例子。本文实验环境是在银河麒麟服务器V10系统上:[root@localhost ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server"VERSION="V10 (Tercel)"ID="kylin"VERSION_ID="V10"PRETTY_NAME=.原创 2021-03-29 00:09:35 · 5048 阅读 · 8 评论