Linux hook
文章平均质量分 50
Configure-Handler
这个作者很懒,什么都没留下…
展开
-
linux kernel 5.0 inline hook框架
linux kernel inline hook原创 2023-03-18 21:37:23 · 1050 阅读 · 0 评论 -
intel pin常用函数说明
intel pin原创 2022-11-06 16:48:32 · 414 阅读 · 0 评论 -
通过修改pte页表属性使内存可写
通过修改pte页表属性使内存可写一、相关API/* * Lookup the page table entry for a virtual address. Return a pointer * to the entry and the level of the mapping. * * Note: We return pud and pmd either when the entry is marked large * or when the present bit is not set.原创 2021-06-16 14:12:02 · 2850 阅读 · 0 评论 -
Linux 进程隐藏之摘链隐藏
0x01:先说说一般进程隐藏的常见方式0x02:原创 2020-12-11 20:11:36 · 6399 阅读 · 0 评论 -
Linux ko加载过程劫持
这里主要是用到int register_module_notifier(struct notifier_block *nb)的通知链机制,当有ko加载时,notifier函数被调用;register.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/slab.h>MODULE_LICENSE("GPL");nt success_int ( void ){ retu原创 2020-10-19 20:31:23 · 4274 阅读 · 0 评论 -
Linux LKM suterusu代码分析(三)
前面两篇讲了如何编译代码,以及函数hook的详细细节,这里讲一讲以下函数 /* Hook /proc for hiding processes */ proc_iterate = get_vfs_iterate("/proc"); hijack_start(proc_iterate, &n_proc_iterate);这里主要是修改系统调用的函数入口地址,n_proc_iterate()这个是自定义函数#define ITERATE_PROTO struct file原创 2020-10-13 15:39:54 · 711 阅读 · 0 评论 -
Linux LKM suterusu代码分析(一)
suterusu lkm 代码下载路径:https://github.com/mncoppola/suterusu虽然这个LKM开发的时间是好几年前的,但是也是值得好好研究其中的hook原理,我这里使用的系统是 Ubuntu 14.04.1 LTS ,内核版本4.2.0-42-generic。编译 --> make linux-x86 KDIR=/lib/modules/$(uname -r)/build我们先来看看Makefileobj-m += suterusu.osuteru原创 2020-10-13 11:52:43 · 3372 阅读 · 3 评论 -
Linux LKM suterusu代码分析(二)
#include <stdio.h>#include <stdlib.h>#include "list.h"struct person{ struct list_head list; int age;};int main(int argc,char **argv){ int i; struct person *p; struct person person1; struct list_head *pos; I原创 2020-10-13 11:07:37 · 1726 阅读 · 0 评论 -
Linux hook系统调用open/read/write
测试系统:curtis@curtis-virtual-machine:~/Desktop$ uname -aLinux curtis-virtual-machine 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/LinuxHook 系统调用我们先要知道sys_call_table地址,这个可以看之前文章,同时我们要了解sys_open的函数原型:asmlin原创 2020-09-30 16:49:17 · 11561 阅读 · 0 评论 -
Linux 文件/文件夹隐藏(hook getdents)
前面讲的都是一些基础,比如说拿到sys_call_table地址,简单的hook某个函数,这一节做一个文件/文件夹隐藏,就是hook住文件枚举API --> getdents()&getdents64()fshid.c#include <linux/init.h>#include <linux/module.h>#include <linux/syscalls.h>#include <linux/kallsyms.h>#include原创 2020-09-28 19:33:59 · 2823 阅读 · 0 评论 -
Linux hook系统调用read
前面的文章有聊到怎么拿到linux sys_call_table,高版本和低版本内核都有对应的方式,那么这篇文章讲怎么去hook Linux 系统调用,建议在虚拟机中尝试,此篇文章内核如下所示:curtis@curtis-virtual-machine:~/Desktop/test$ uname -aLinux curtis-virtual-machine 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_6原创 2020-09-28 14:57:39 · 1245 阅读 · 2 评论 -
使用GUN ld命令进行内核模块感染时报错
在研究novice大佬感染一个示例内核模块的时候,先上大佬两个驱动文件codeinj.c(宿主驱动模块)# ifndef CPP# include <linux/module.h># include <linux/kernel.h># endif // CPP# include "zeroevil/zeroevil.h"MODULE_LICENSE("GPL");intcodeinj_init(void){ fm_alert("codeinj: %s原创 2020-09-18 11:50:36 · 914 阅读 · 0 评论 -
Linux 隐藏驱动模块
如果作为恶意驱动的话,肯定是希望自己模块加载之后不会被发现,那么就需要对安装的模块进行隐藏(其实就是让你使用查找命令找不到),使用以下函数在驱动初始化入口进行摘链+kobject_del()函数删除当前模块的kobject就可以起到在/sys/module中隐藏。list_del_init(&__this_module.list);test.c#include <linux/module.h>MODULE_LICENSE("GPL"); MODULE_AUTHOR("cur原创 2020-09-09 14:27:49 · 5040 阅读 · 0 评论