08 2017 档案

摘要:PE原理就不阐述了, 这个注入是PE感染的一种,通过添加一个新节注入,会改变PE文件的大小,将原有的导入表复制到新节中,并添加自己的导入表描述符,最后将数据目录项中指向的导入表的入口指向新节。 步骤: 1.添加一个新节;映射PE文件,判断是否可以加一个新节,找到节的尾部,矫正偏移,对齐RVA 填充新 阅读全文
posted @ 2017-08-26 13:32 HsinTsao 阅读(3307) 评论(5) 推荐(0)
摘要:原博:http://www.cnblogs.com/hongfei/archive/2013/06/18/3142162.html 为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕 阅读全文
posted @ 2017-08-25 14:29 HsinTsao 阅读(505) 评论(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 阅读(2596) 评论(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 阅读(688) 评论(0) 推荐(0)
摘要:原理: 用ZwQuerySystemInformation 功能号为11(SystemModuleInformation) 得到所有系统模块的地址 遍历搜索得到ntos模块的基地址 读Ntos模块到System进程空间中 在ntos中找到函数真正地址 将地址转换为ssdt的索引 阅读全文
posted @ 2017-08-25 14:06 HsinTsao 阅读(747) 评论(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 阅读(1023) 评论(0) 推荐(0)
摘要:SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服 阅读全文
posted @ 2017-08-25 14:00 HsinTsao 阅读(438) 评论(0) 推荐(0)
摘要:原理:遍历进程ID,然后openprocess,能打开的都枚举出来 ring0 : ring3 : 阅读全文
posted @ 2017-08-25 13:56 HsinTsao 阅读(460) 评论(0) 推荐(0)
摘要:最近在学习内核编程,记录一下最近的学习笔记。 原理:将当前进程从eprocess结构的链表中删除 无法被! process 0 0 看见 阅读全文
posted @ 2017-08-25 13:52 HsinTsao 阅读(637) 评论(0) 推荐(0)
摘要:之前学习的32位进程中调用64位进程函数的知识整理一下,也就是32位模式与64位模式之间的切换。 相关博客:http://www.cnblogs.com/lanrenxinxin/p/4821152.html 这个博客中提到了github上的开源库,我在另一份开源项目中也看到了个库,可以切换32位至 阅读全文
posted @ 2017-08-01 21:18 HsinTsao 阅读(5957) 评论(0) 推荐(1)