![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安全
Robin.Yin
一只勤勉的小虫,如痴如醉地沉迷于书卷,孜孜不倦地咀嚼着文字-书虫
展开
-
Linux几种检测rootkit隐藏进程的方法
Rootkit通常会隐藏进程,隐藏文件和网络连接。这里主要记录几种对隐藏进程的检测方法一. 隐藏进程的方法1.1 用户级Rootkit 通过LD_PRELOADER来hook libc库实现,从而过滤/proc/pid目录1.2 内核级rootkit 通过hook系统调用getdents/getdents64或者hook 文件file_operation的iterate1.3 内核...原创 2020-05-02 13:12:34 · 3354 阅读 · 1 评论 -
Linux hook内核函数
在内核中,如果要hook某个函数,只要把函数开头的5个字节替换成call/jmp指令.步骤1. 保存orig 函数的前5个字节指令.2.定义一个stub函数,用于跳转回orig函数.3.在新函数中,调用stub函数.具体实现#include<linux/module.h>#include<linux/printk.h>#include...原创 2020-04-26 20:36:41 · 1152 阅读 · 1 评论 -
Linux内核线程实时获取调度状态的方法
最近在做项目中,需要线程实时的知道自身被sched out 和sched in. 查看了schedule()函数实现,发现内核提供了对应的notifier机制.1.进程sched out流程schedule->__schedule->context_switch->prepare_task_switch->fire_sched_out_preempt_no...原创 2020-04-06 12:28:36 · 1188 阅读 · 0 评论 -
Linux X86 LBR和BTS功能分析与实现
X86 处理器支持最近分支记录(Last branch record),也就是记录CPU的跳转记录(jmp,jcc,call,ret等指令,中断和异常). 通过操作MSR寄存器(model specific register)来配置分支记录功能.1. 分支记录格式(branch record)有如下两个函数:int add_fun(int a,int b){return (a+b)...原创 2020-04-06 10:59:20 · 3136 阅读 · 0 评论 -
Linux内核系统调用劫持之kallsyms
1.通过kallsyms方式基于Linux 5.0/Linux5.3 的X86-64系统.1. 通过kallsyms_lookup_name查找sys_call_table地址.2. 关闭写保护3. 修改sys_call_tableLinux5.0上直接调用write_cr0接口,能够顺利的修改CR0寄存器,而内核版本更新到Linux5.3以后,发现对CR0的修改进行了保护,所...原创 2020-01-19 16:54:18 · 1561 阅读 · 2 评论 -
Linux中的THIS_MODULE
以下均针对于内核2.6.18在module.h 中 THIS_MODULE的定义如下:extern struct module __this_module; #define THIS_MODULE (&__this_module)即是保存了__this_module这个对象的地址,那这个__this_module在哪里定义呢?这就要从module的编译说起啦,如果编译过模块就...转载 2020-01-15 19:31:14 · 368 阅读 · 0 评论