windows开发
文章平均质量分 65
windows开发笔记
孤月丶星辰
以吾之所学,创吾之所思
展开
-
以URL的方式启动进程、可执行文件、命令行。
以URL方式打开指定命令行。原创 2022-11-10 13:58:19 · 751 阅读 · 1 评论 -
Windows—进程
一、概念想要理解进程,首先要知道什么是进程。举一个简单的例子。当我们打开任务管理器时,会看到列表中有很多的条目,如下:而这一行行的数据就是windows的进程。同时,我们可以发现这些进程都是以exe来命名的。事实上,当我们鼠标双击exe时,系统就会为这个exe创建一个对应的进程。现在,我们已经知道进程是什么了。那么接下来开始讨论“进程的本质是什么”。二、进程的本质关于进程的本质,其实就是理解进程在windows中扮演的角色是什么,并且如何存在于系统中的。1)进程的角色当我们想要在系统中做一件原创 2021-07-18 11:26:43 · 2887 阅读 · 0 评论 -
线程同步—线程锁
一、原子访问:Interlocked系列函数可以保证一个值的操作是一个原子操作。实际的代码执行过程如下://C++代码:g_x++;//汇编:MOV EAX, [g_x]INC EAXMOV [g_X], EAX从上面的代码可以看出,即便是单挑C++代码,编译为汇编后也会变成多调汇编指令。所以g_x++并非原子操作,也会出现多线程同步问题。Interlocaked系列函数就是用来保障一次赋值操作是一个原子操作的。LONG InterlockedExchangeAdd( PLO原创 2021-07-04 10:34:54 · 566 阅读 · 0 评论 -
Windows进程创建过程详解(含PE文件加载)
1.调用CreateProcessW打开指定可执行文件,并创建一个内存区对象。这里仅仅是打开exe文件,并没有将文件映射到内存中。打开exe是为了在后续创建进程的过程中从exe头部中读取一些环境配置。2.调用ntdll.dll中的NtCreateProcessEx系统服务。该函数仅仅是一个内核层对外的门户,其实ntdll.dll中几乎所有的API都是一个空壳,ntdll.dll的本质就是用户层和内核层之间的一道屏障。而这道屏障就是负责保护内核层的,防止用户层直接控制内核层。ntdll.dll中的API会对原创 2021-05-18 18:07:56 · 1859 阅读 · 0 评论 -
计算机的启动原理
1.开启电源2.启动自检3.初始化所有寄存器,其中的CS:0xF000、IP:0xFFF04.如果存在异常,则将异常写入EAX中。5.检测EAX的值是否正常。如果不为0,则发生错误。6.CPU开始执行CS:IP处代码。注意:在64位CPU环境下,平时的工作都是在保护模式下进行的。使用的都是虚拟地址来访问内存。由内存管理单元MMU负责做地址转换(虚拟地址->物理地址)。但在开机时,虚拟地址转换所需的页目录、页表等数据都尚未加载,所以MMU暂时无法使用。因此开机时使用的都是16位寄存器。在实地原创 2021-05-06 17:09:24 · 721 阅读 · 0 评论 -
PE文件结构
PE文件是Windows操作系统下使用的可执行文件格式。它是微软在UNIX平台的COFF(Common Object File Format,通用对象文件格式)基础上制作而成的。最初(正如Portable这个单词所代表的那样)设计用来提高程序在不同操作系统上的移植性,但实际上这种文件格式仅用在Windows系列的操作系统下。PE文件是指32位的可执行文件,也称为PE32。64位的可执行文件称为PE+或PE32+,是PE文件的一种扩展形式(请注意不是PE64)。下图是PE文件的整体结构:大致包含:DO原创 2021-05-04 13:44:51 · 353 阅读 · 1 评论 -
SEH异常处理机制
1.SEH是windows操作系统提供的异常处理机制。2.在程序中可以使用__try、__except、__finally关键来实现异常处理。3.SEH属于系统级的异常处理,是不同于C++中try、catch的。SEH诞生的更早一些。4.异常处理过程:正常情况:程序执行->抛出异常->程序SEH处理函数->系统默认SEH处理函数。调试情况:程序执行->抛出异常->调试器中断处理->程序SEH异常处理->系统默认异常处理如果程序没有异常处理函数原创 2021-04-12 14:45:09 · 1855 阅读 · 0 评论