摘要: 原博:http://www.cnblogs.com/hongfei/archive/2013/06/18/3142162.html 为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕 阅读全文
posted @ 2017-08-25 14:29 HsinTsao 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 原博客:http://www.cnblogs.com/lanrenxinxin/p/4735027.html 详细的理论讲解都在上面 下面说的是通过windbg手动进行寻址,深入理解 x64: 实践: int main(){ char* v1 = "HelloWorld"; printf("%p\r 阅读全文
posted @ 2017-08-25 14:25 HsinTsao 阅读(2470) 评论(0) 推荐(1) 编辑
摘要: SSDT:主要处理 Kernel32.dll中的系统调用,如openProcess,ReadFile等,主要在ntoskrnl.exe中实现(微软有给出 ntoskrnl源代码) ShadowSSDT: 1.主要处理,user32.dll,GDI32.dll中调用的函数,如postMessage,S 阅读全文
posted @ 2017-08-25 14:09 HsinTsao 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 原理: 用ZwQuerySystemInformation 功能号为11(SystemModuleInformation) 得到所有系统模块的地址 遍历搜索得到ntos模块的基地址 读Ntos模块到System进程空间中 在ntos中找到函数真正地址 将地址转换为ssdt的索引 阅读全文
posted @ 2017-08-25 14:06 HsinTsao 阅读(716) 评论(0) 推荐(0) 编辑
摘要: #include "HookSSDT.h" #include #define SEC_IMAGE 0x001000000 ULONG32 __NtOpenProcessIndex = 0; PVOID __ServiceTableBase = NULL; ULONG32 __OldNtOpenProcessOffset = 0; PVOID __OldNtOpenProces... 阅读全文
posted @ 2017-08-25 14:03 HsinTsao 阅读(978) 评论(0) 推荐(0) 编辑
摘要: SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服 阅读全文
posted @ 2017-08-25 14:00 HsinTsao 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 原理:遍历进程ID,然后openprocess,能打开的都枚举出来 ring0 : ring3 : 阅读全文
posted @ 2017-08-25 13:56 HsinTsao 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 最近在学习内核编程,记录一下最近的学习笔记。 原理:将当前进程从eprocess结构的链表中删除 无法被! process 0 0 看见 阅读全文
posted @ 2017-08-25 13:52 HsinTsao 阅读(600) 评论(0) 推荐(0) 编辑