2019年11月28日
摘要: 1、Windows应用程序编程接口提供的所有函数都包含在DLL中,三个重要DLL: Kernel32.dll:包含的函数用来管理内存、进程和线程; User32.dll:包含的函数用来执行与用户界面相关的任务,如创建窗口和发送消息; GDI32.dll:包含的函数用来绘制图像和显示文字。 2、如果编 阅读全文
posted @ 2019-11-28 20:48 Noora&w 阅读(199) 评论(0) 推荐(0) 编辑
  2019年11月26日
摘要: 1、结构化异常处理SEH功能:终止处理、异常处理 2、终止处理程序确保不管被保护代码是如何退出的,终止处理程序都会调用和执行(除非调用ExitProcess、ExitThread、TerminateProcess、TerminateThread),语法: __try{ //Guarded body 阅读全文
posted @ 2019-11-26 10:10 Noora&w 阅读(163) 评论(0) 推荐(0) 编辑
  2019年10月29日
摘要: 1、每个进程都有自己的虚拟地址空间。32位进程的虚拟地址空间为4GB,64位进程为16EB。正常读/写数据需要把物理存储器分配或映射到相应的地址空间,否则会导致访问违规。 2、空指针赋值分区:0X00000000到0X0000FFFF的进程地址空间,进程中的线程试图读取或写入位于这一分区内的内存地址 阅读全文
posted @ 2019-10-29 20:59 Noora&w 阅读(130) 评论(0) 推荐(0) 编辑
  2019年9月30日
摘要: 用户模式下的线程同步 1、原子访问:一个线程在访问某个资源的同时能够保证没有其他线程在同一时刻访问同一资源 Interlocked系列函数能实现原子访问。Interlocked系列函数能保证对值的修改是以原子方式进行的,且执行的极快,因为他们不需要在用户模式和内核模式之间进行切换 缺点:只能对一个值 阅读全文
posted @ 2019-09-30 21:52 Noora&w 阅读(156) 评论(0) 推荐(0) 编辑
  2019年9月27日
摘要: 1、线程的两个组成部分:线程的内核对象(管理线程和使用计数)、线程栈(用于维护线程执行时所需的函数参数和局部变量) 2、线程函数: 线程函数可以任意命名; 线程函数只有一个参数; 线程函数必须返回一个值,它会成为该线程的退出代码; 线程函数应尽可能使用函数参数和局部变量; 3、线程终止运行时: 线程 阅读全文
posted @ 2019-09-27 17:14 Noora&w 阅读(325) 评论(0) 推荐(0) 编辑
  2019年9月25日
摘要: 第四章 进程 1、进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 1)一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。 2)另一个是地址空间,它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。 2、 阅读全文
posted @ 2019-09-25 21:17 Noora&w 阅读(154) 评论(0) 推荐(0) 编辑
  2019年1月15日
摘要: 1、 DebugView 可以动态查看日志,可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。 2、 PCHunter 系统信息查看工具 使用场景: (1)查看一些隐藏进程,能结束一些procexp无法结束的进程,能暂停和恢复进程执行。 (2)查看进程的窗口 阅读全文
posted @ 2019-01-15 11:51 Noora&w 阅读(958) 评论(0) 推荐(0) 编辑
摘要: 现象:虚拟机内还原系统镜像后蓝屏。通过调试查看蓝屏码为7B蓝屏,是由于磁盘类型选用SCSI导致了蓝屏无法正常开机,应改用IDE类型。 原理:VMware在虚拟机OS虚拟一个COM口,并在HostOS创建了一个管道,这个管道的一端连接虚拟机OS的COM口,另一端则是Windbg,所以HostOS(Wi 阅读全文
posted @ 2019-01-15 11:02 Noora&w 阅读(662) 评论(0) 推荐(0) 编辑
  2018年12月18日
摘要: 一、为什么使用智能指针?智能指针的原理? C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等。 使用new 和delete 管理内存存在三个常见问题: 1.忘记delete(释放) 内存,或者异常导致程序过早退出,没有执行 delete。忘记释放动态 阅读全文
posted @ 2018-12-18 17:38 Noora&w 阅读(229) 评论(0) 推荐(0) 编辑
  2018年12月17日
摘要: 说明:每安装一个软件,那么该软件的安装程序会向注册表当中“ SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall ”的注册表项下面创建一个注册表子项,键值存储卸载数据信息。 实现: 1、定义存储程序卸载信息的结构体SOFTWARE 2、获取所 阅读全文
posted @ 2018-12-17 14:33 Noora&w 阅读(542) 评论(0) 推荐(0) 编辑