Win32学习笔记
怪味巧克力
安全技术爱好者:https://www.cnblogs.com/Jleixin/
展开
-
win32—内存映射文件
1.内存映射文件内存映射文件就是把一个硬盘上的文件映射到物理页上,然后再把物理页直接映射到虚拟内存上。好处:方便简单,读写容易2.内存映射文件之共享3.内存映射文件之写拷贝写拷贝访问 FILE_MAP-COPY 共享不是真正意义上的共享,比如说,A进程和B进程共享一个物理内存,但你修改A进程的某个配置文件时,比如kernel.dll,那么它不会影响B进程的正常执行,原因在于:当...原创 2020-04-30 12:48:29 · 402 阅读 · 0 评论 -
win32—文件系统
1.文件系统 文件系统是指操作系统用于管理磁盘上文件的方法和数据结构:换句话说就是在磁盘上如何组织文件的方法。2.卷相关API1)获取卷:得到当前操作系统有几个卷GetLogicalDrives()——》没有参数,返回值就是当前操作系统有几个卷2)获取一个卷的盘符的字符串:GetLogicalDriveStrings3)获取卷的类型:GetDriveType根据返回值去判断什...原创 2020-04-30 12:45:30 · 251 阅读 · 0 评论 -
win32—虚拟内存与物理内存
1.虚拟内存与物理内存每一个物理内存的大小是4KB,每个进程由4GB的虚拟内存虚拟内存与物理内存的关系:每个进程的4GB虚拟内存分为高2G和低2G,而低2G是进程实际使用的空间,高2G是内核用的(而且低2G中的前64KB用户程序也不能使用),所以一个进程实际的空间大小为2G(不包括前64KB)物理内存:实际可使用的内存大小可供使用的物理内存: MmNumberOfPhysical...原创 2020-04-30 12:42:54 · 465 阅读 · 0 评论 -
win32—消息队列
1.什么是消息 当我们点击鼠标,按键盘的时候,操作系统都要把这些动作记录下来,存储到一个结构体中,这个结构体就是消息。2.消息队列:每个线程只有一个消息队列消息对应窗口任何窗口只能属于一个线程,而多个线程可对应一个进程...原创 2020-04-30 12:40:27 · 472 阅读 · 0 评论 -
win32—事件
1.通知类型:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES ipEventAttributea, //SD BOOL bManaualReaset, //reset type BOOL binitialState, //initial state LPCTSTR ipName //object name ...原创 2020-04-30 12:38:05 · 487 阅读 · 0 评论 -
win32—互斥体
1.内核级的临界资源如何被访问?所以我们可以把“令牌”放到内核中,那么这个时候就出现了互斥体互斥体可以看做”令牌“,只不过这个”令牌“放在内核中而已。2.互斥体与线程锁的区别1)线程锁只能用于单个进程间的线程控制2)互斥体可以设定等待超时,但线程锁不能3)线程意外终结时,Mutex可以避免无限等待4)Mutex效率没有线程锁高(因为线程锁避免了在内核中创建对象)互斥体是防止程序...原创 2020-04-30 12:35:58 · 265 阅读 · 0 评论 -
win32—临界区
1.线程安全问题 每个线程都有自己的栈,而局部变量是存储在栈中的,这就意味着每个线程都有一份自己的“局部变量”,如果线程仅仅使用“局部变量”那么就不存在线程安全问题 那么如果多个线程共用一个全局变量呢? 那就会出现变量混乱的情况,如何解决?将全局变量设为临界资源,什么是临界资源,临界资源是一次只允许一个线程访问的资源。对临界资源访问的代码称为临界区windos的解决思路:2.临...原创 2020-04-30 12:33:40 · 286 阅读 · 0 评论 -
win32—线程
1.什么是线程?1)线程是附属在进程上的执行实体,是代码的执行流程 。(进程是空间上的概念,而线程是时间上的概念,代表当前正在运行的具体的代码)2)一个进程可以包括多个线程,但一个进程至少要包含一个线程对于单核的CPU实际上在某一个时间点上只有一个线程,但是由于它切换的比较快,多以给人的感觉就是在某一时间端是在运行多个线程。而对于多核的CPU,那在某一个时间点上确实是真正意义上的多线程。2...原创 2020-04-30 12:32:24 · 157 阅读 · 0 评论 -
win32—句柄表
1.句柄表1.什么是内核对象? 像进程,线程,文件,互斥体,事件等在内核都有一个对应的结构体,这些结构体有内核负责管理。我们管这样的对象叫做内核对象2.每个进程都有一个句柄表如何管理进程呢?那么这个时候就出现了句柄表。原因在于,不能让用户层直接访问内核层,一旦用户修改内核层面的,那么就出问题了,所以这个时候引入了句柄表,起到一个索引的作用,换句话说,句柄表就好比一道防火墙,隔离了用户...原创 2020-04-30 12:30:59 · 386 阅读 · 1 评论 -
win32—进程创建过程
1.进程当程序执行起来以后才能称为进程。每个进程的编号是唯一的。什么是进程? 进程提供当前程序所需的资源,如:数据、代码等等 进程是空间上的概念,仅仅是提供程序运行所需的资源,至于资源怎么用,跟它一点关系都没有。每一个进程都有一个虚拟的4GB空间,虚拟内存从00010000开始,前面的64K是空白的,正常情况下是不会被使用的,非正常情况下还是可以使用的,虚拟内存的最大内存地址是7FF...原创 2020-04-30 12:27:48 · 206 阅读 · 0 评论 -
win32—API
1.什么是Win32API?API:应用程序接口(操作系统准备好的函数)主要存放在C:\windows/system32下面所有的dll几个重要的DLL:1)Kernel.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等。2)user32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等。3)GDI32.dll:全称是Graphical Devic...原创 2020-04-29 21:48:32 · 845 阅读 · 0 评论 -
win32—字符编码
1.字符编码因为计算机只能读懂0和1,而我们的语言有很多字母和符号,所以这个时候就引入了字符编码。1)ASCLL编码:针对英文字母的2)ASCLL编码的扩展:GB2312或GB2312-80《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是[GB 2312](https://baike.baidu.com/item/GB 2...原创 2020-04-29 21:47:29 · 686 阅读 · 0 评论