随笔分类 - 内核驱动
摘要:重载内核 具体代码有点长,记下思路备查。大致思路: 1. NT内核从磁盘装载到内存 2. 重定位 3. 修复导入表 4. 修正内核SSDT 5. 删除PE头 接下来hook kifastcallEntry函数,用的方法也和之前的重载内核那篇代码分析的方法一致,就不分析了。
阅读全文
摘要:这部分ring3和ring0通信,感觉也是实用的套路,先总结大致思路: 1. hook NtTerminateProcess函数 2. 有TerminateProcess请求到来时,判断参数二是否为固定常数(密钥),不是的话走原函数调用 3. 如果参数二是约定好的密钥,参数一作为约定好的结构指针 4
阅读全文
摘要:这部分是讲释放在OD插件中的资源文件,也就是一个驱动,然后安装驱动、卸载驱动的过程。主要关注点放在安装、卸载者部分代码上。 安装、启动服务 总结大致步骤如下: 1. 获得服务控制管理器句柄(OpenSCManager) 2. 获得服务句柄(CreateService) 3. 如果CreateServ
阅读全文
摘要:[TOC] 这一部分的代码的作用主要是用于枚举NT内核模块的符号文件,很多都是常规写法(同一个套路),来做个总结,以后肯定是会再见到的。 获取模块信息 NtQuerySystemInformation NtQuerySystemInformation用于获取多种系统信息中的其中之一。 RtlMove
阅读全文
摘要:今天读了一篇 "如何寻找未导出函数的函数地址" 的文章,重在思路吧,万一以后用到了呢? why? 内核里有些函数直接导出了,那我们可以直接通过函数名调用它,未导出函数也不是不可以调用,我们需要自己找到函数名称所对应的地址即可。 How? 文章涉及3个函数: 1. PsTerminateSystemT
阅读全文
摘要:```c #include "ntimage.h" //#include #pragma pack(1) typedef struct ServiceDescriptorEntry { unsigned int *ServiceTableBase; unsigned int *ServiceCounterTableBase; unsigned int NumberOfService...
阅读全文

浙公网安备 33010602011771号