2017年8月22日

32位系统与64位系统

摘要: 64位系统已经非常普及了,因此我们写代码的时候,了解32位与64位系统的编码差异就显得很重要了。我用的计算机是win10,64位,之前对于任务管理器里的进程32和64分不清,而且对于System32与SestemWow64两个文件夹也时常搞错,今天看书查资料才终于弄懂一些。 64位系统有两个Syst 阅读全文

posted @ 2017-08-22 13:03 kekoukele987 阅读(340) 评论(0) 推荐(0) 编辑

2017年8月21日

关于死锁的简单知识

摘要: 计算机中的独占性资源,在任意时刻它们只能被一个进程使用,比如磁带,打印机等。为了避免工作混乱,操作系统可以授权一个进程临时排斥其他进程访问某种资源的能力。这样一来,死锁问题也随之产生。死锁可能发生在进程之间,机器之间,数据库系统中。 大部分死锁都与资源相关。资源分为可抢占式资源和不可抢占式资源,一般 阅读全文

posted @ 2017-08-21 21:31 kekoukele987 阅读(312) 评论(0) 推荐(0) 编辑

NT式驱动和WDM式驱动

摘要: 刚开始学习驱动,没什么基础,对于好多名词也不是很理解,感觉每天学的驱动都不一样。。。。。。。今天看了书之后才知道,原来驱动分为NT式驱动和WDM式驱动两种。大概总结一下它们之间的区别。 对于NT式驱动来说,主要的函数是DriverEntry函数,卸载函数,以及各个IRP的派遣函数,不支持即插即用功能 阅读全文

posted @ 2017-08-21 11:36 kekoukele987 阅读(2470) 评论(0) 推荐(0) 编辑

2017年8月16日

暴力枚举进程

摘要: 进程是操作系统中的一个非常重要的概念,学习的初级阶段可以先想办法枚举出它们,为以后的深入学习奠定基础。 枚举进程有许多方法,比较简单的有快照CreateToolhelp32Snapshot,psapi.dll提供的EnumProcesses()等。我们还可以通过进程ID去暴力枚举,只是可能权限不够, 阅读全文

posted @ 2017-08-16 07:58 kekoukele987 阅读(772) 评论(0) 推荐(0) 编辑

2017年8月13日

驱动中的宏定义及预编译指令

摘要: 驱动代码与平时的Win32代码有一些区别,在学习内核编程之前,简单了解一下,以后阅读代码会轻松一些。 首先是参数说明宏,一般都是空宏,例如 #define IN#define OUT 这样来看,IN和OUT都被定义成了空,注意,这儿的空即什么也没有,不同于NULL或者VOID。只要不与变量等连在一起 阅读全文

posted @ 2017-08-13 19:10 kekoukele987 阅读(779) 评论(0) 推荐(0) 编辑

2017年8月10日

Ring0层创建事件,Ring3层接收

摘要: 在学习驱动过程中,一个很重要的内容就是Ring3层与Ring0层的通信,方法有很多种,互斥体,信号量,文件等等,用的比较普遍的,还是事件。所以在学习的过程中,做了一个简单的Demo,主要是体会一下方法。 在驱动程序下,首先要定义一个事件名,前面的一部分必须是BaseNamedObjects,这其实就 阅读全文

posted @ 2017-08-10 23:33 kekoukele987 阅读(228) 评论(0) 推荐(0) 编辑

2017年8月8日

创建堆 HeapCreate

摘要: 创建额外的堆的原因1.对组件进行保护2.更有效的内存管理3.局部访问4.避免线程同步开销5.快速释放 HeapCreate函数原型:HANDLE WINAPI HeapCreate( _In_ DWORD flOptions, _In_ SIZE_T dwInitialSize, _In_ SIZE 阅读全文

posted @ 2017-08-08 07:24 kekoukele987 阅读(2031) 评论(0) 推荐(0) 编辑

2017年8月7日

线程局部存储 TLS

摘要: C/C++运行库提供了TLS(线程局部存储),在多线程还未产生时,可以将数据与正在执行的线程关联。strtok()函数就是一个很好的例子。与它一起的还有strtok_s(),_tcstok_s()等等函数,其实_tcs 是 wcs 的另外一种写法,表示宽字符存储,_s 是微软定义的安全函数,通常比普 阅读全文

posted @ 2017-08-07 20:57 kekoukele987 阅读(265) 评论(0) 推荐(0) 编辑

2017年8月6日

在生成的Debug中test.exe的同级目录下创建一个文件,如TestLog.log

摘要: 在上次编写一个日志类库时,想在.exe的同级目录下创建.log文件,对于这个路径的获得很简单,调用GetModuleFileName()函数即可。但是要去掉.exe而换成.log时,由于对字符串处理不太顺手,试了好几种方法,包括转成CString,获取父目录GetParentDirectory(), 阅读全文

posted @ 2017-08-06 19:46 kekoukele987 阅读(291) 评论(0) 推荐(0) 编辑

导航