很久不玩PE格式了,这次由于要恢复SSDT表的缘故+一个忽然兴起的念头,导致我花了一个小午写了个运行在Ring0的简单PE加载器,并且有意外的收获。 恢复SSDT表手段很多,基本上都是直接从文件中依赖重定位表获取对应数据,重定位后得到相对当前内核加载位置的正确调用地址。大部分的实现代码比较粗糙 ...
简介 本文介绍github上的一个项目khook,一个可以在内核中增加钩子函数的框架,支持x 。项目地址在这里:https: github.com milabs khook 本文先简单介绍钩子函数,分析这个工具的用法,然后再分析代码,探究实现原理 钩子 假设在内核中有一个函数,我们想截断他的执行流程,比如说对某文件的读操作。这样就可以监控对这个文件的读操作。这就是钩子。通过插入一个钩子函数,可以截 ...
2019-06-03 22:28 0 2745 推荐指数:
很久不玩PE格式了,这次由于要恢复SSDT表的缘故+一个忽然兴起的念头,导致我花了一个小午写了个运行在Ring0的简单PE加载器,并且有意外的收获。 恢复SSDT表手段很多,基本上都是直接从文件中依赖重定位表获取对应数据,重定位后得到相对当前内核加载位置的正确调用地址。大部分的实现代码比较粗糙 ...
参考http://www.linuxtcpipstack.com/685.html#NF_INET_PRE_ROUTING https://opengers.github.io/openstack/ ...
上文我们介绍过进程调度,Linux内核从2.6版本开始支持内核抢占,所以内核很多代码也需要同步保护。 一、同步介绍 1、临界区与竞争条件 所谓临界区(critical regions)就是访问和操作共享数据的代码段。为了避免在临界区中并发访问,编程者必须保证这些代码原子地执行 ...
Linux内核 Linux是最受欢迎的自由 ...
1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一设备上高效运行,dalvik被改写过。Dalvik ...
64位内核第二讲,进程保护. 一丶什么是保护. 什么是保护. 比如我们安装了xxx杀毒软件.那么此时你用任务管理器关闭.是关闭不了的.原因是内核已经做了保护. 那么去掉保护的前提就是你要给自己的软件做保护. 比如我们给计算器做保护. 例如下图. 做保护.以前的病毒 ...
SSDT 中文名称为系统服务描述符表,该表的作用是将Ring3应用层与Ring0内核层,两者的API函数连接起来,起到承上启下的作用,SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基址、服务函数个数等,SSDT 通过修改此表的函数地址可以对常用 ...
Linux 内核源代码的目录结构Linux 内核源代码包含如下目 ● arch :包含和硬件体系结构相关的代码,每个架构的CPU都对应一个目录,如i386、arm、 arm64、powerpc、mips 等。Linux 内核目前已经支持30 种左右的体系结构。在arch 目录下,存放 ...