Windows Kernel
nevil
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows kernel中实现Unicode和UTF-8之间的转换
Widnows kernel中不存在Unicdoe/UTF-8转换函数, 因此通过分析UTF-8编码表自己实现转换函数UTF-8编码字符理论上可以最多到6个字节长,然而16位BMP(Basic Multilingual Plane)字符最多只用到3字节长。下面看一下UTF-8编码表:U-00000000 - U-0000007F: 0xxxxxxxU-00000080 - U-00原创 2012-07-05 14:22:49 · 1253 阅读 · 0 评论 -
Win64 Driver开发问题记录(二)
Win64 driver开发中遇到的第二个问题是如何通过SSDT表引用系统服务内核函数。MS在64系统中引入了全新的PatchGuard技术,使得原本在32位下可轻易hook的SSDT表在64位系统中无法再patch(会引发BSOD).当然,目前我并非是要hook SSDT表,而是需要使用到SSDT表中的一个未导出的系统服务内核函数。在32位driver中可以通过extern "C原创 2012-07-05 18:40:19 · 3590 阅读 · 3 评论 -
Win64 Driver开发问题记录(一)
Win64开发中所遇到的第一个问题是X64编绎器不支持内嵌式汇编(inline assembly),因此在源码中无法通过"__asm"来调用汇编指令。 解决的方法是将汇编的功能放入一个单独的.asm文件中,并封装成一些汇编子过程(函数),在C的源码中通过外部声明"extern"来调用这些汇编过程(函数)。 此外,在source文件中加入对.asm文件引用。一般的做法原创 2012-07-05 18:19:21 · 1267 阅读 · 0 评论 -
Win64 Driver开发问题记录(三)
在32位driver中,获取SSDT表中的函数可根据以下固定的公式(64位下获取KeServiceDescriptorTable参见Win64 Driver开发问题记录二)SSDTTableBase=(PVOID)((PServiceDescriptorTableEntry)KeServiceDescriptorTable)->ServiceTableBase;ULONG_PTR原创 2012-07-06 09:50:21 · 1748 阅读 · 0 评论 -
使用windbg查看PE文件格式
DOS Header & NT Header:Data Directory:kd> !dh 0040000Export Table:Import Table:原创 2012-08-15 14:10:13 · 1905 阅读 · 0 评论
分享