Windows底层基础知识
文章平均质量分 91
燕山暮雪
人生在世,唯篮球和代码不可辜负
展开
-
Windows系统内存分析工具的介绍
微软官方提供多种工具来分析Windows系统的内存使用情况,除了系统自带的任务管理器(Task Manager),资源监视器(Resource Manager),性能监视器(Performance Monitor),还有SysInternals工具,SysInternals工具如RAMMap和PoolMon,可以用来分析内存问题。本文简单介绍这些工具的使用方法,如果需要了解深入了解,请参考微软相关链接。任务管理器资源监视器性能监视器RAMMap和Process Explorer。转载 2024-04-20 14:02:20 · 1079 阅读 · 0 评论 -
使用Windbg分析dump文件定位软件异常的方法!
1、前言Windbg是微软开发的在Windows平台下强大的用户态和内核态调试工具,是Windows系统排查软件异常的一大利器,使用Windbg能极大的提高我们排查问题的效率,Windbg可以快速分析出软件崩溃、死循环、死锁等多种异常。很多时候,如果仅仅通过排查代码或者添加打印去排查软件的异常崩溃,效率会很低,特别是代码量比较大的大项目,查起来会更加费劲。并且有些软件异常不是必现的或很难复现的,更不利于问题的排查。我们可以在工程代码中引入谷歌的CrashReport库,给软件安装异常捕获机制,当原创 2021-09-26 10:33:38 · 6814 阅读 · 0 评论 -
windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解
windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解虽然是中文字,但是理解起来还是很困难,什么叫工作设置内存,什么叫内存专用工作集,什么叫提交大小,区别是什么,让人看了一头雾水.通俗的讲工作设置内存是程序占用的物理内存(包含与其他程序共享的一部分),内存专用工作集是程序独占的物理内存,提交大小是程序独占的内存(包含物理内存和在页面文件中的内存).注:页面文件就是存放不在物理内存中的内存,文件路径一般在C:\pagefile.sys,目的是为了能够让更多的进程运行,...原创 2021-03-26 11:36:33 · 5148 阅读 · 0 评论 -
Qt 中的多线程技术前世今生
本文结构如下:线程概念的起源 单核 CPU 多核 CPU 线程的生命周期 访问数据所面临的挑战 中断操作 可重入问题 线程安全 Qt 提供的多线程操作及其适用场景 线程类 解决访问共享资源遇到的问题 不同线程类的适用场景 1. 线程概念的起源1.1 单核 CPU在早期的单核 CPU 时代还没有线程的概念,只有进程。操作系统作为一个大的“软件”,协调着各个硬件(如CPU、内存,硬盘、网卡灯)有序的工作着。在双核 CPU 诞生以前,我们用的 Window原创 2021-01-11 13:54:14 · 531 阅读 · 0 评论 -
如何判断一个C++对象是否在堆栈上
要解答这个问题,其实就是要知道的堆栈的起始地址, 而我们知道堆栈其实就是一段有相同属性的内存页面,而Windows也是有API让我们查询虚拟内存的页面分配情况的。所有我们可以通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了。BOOL IsObjectOnStack(LPVOID pObject){ INT nStackValue(0);转载 2017-11-06 16:56:14 · 1659 阅读 · 0 评论 -
c++ hook 钩子的使用介绍
一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口转载 2017-11-05 21:38:42 · 4048 阅读 · 0 评论 -
物理内存与虚拟内存之间的映射
1、用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。2、虚拟存储器的容量限制:主存容量+辅存(硬盘)容量。3、物理内存:在应用中,真实存在的,插在主板内存槽上的内存条的容量的大小。从本质上来说,物理内存是代码和数据在其中运行的窗口。4、转载 2017-11-17 14:41:55 · 4798 阅读 · 0 评论 -
进程地址空间与虚拟存储空间区别
在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算 机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,转载 2017-11-12 23:12:52 · 762 阅读 · 0 评论 -
PE文件结构及其加载机制(四)
下面我们开始学习节表。不知道还记不记得在前面哪个结构体中出现过节的数量? 嘿嘿,忘记了吧,我们翻开以前的记录,看看。原来是typedef struct IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTION转载 2017-10-31 11:00:46 · 291 阅读 · 0 评论 -
PE文件结构及其加载机制(三)
上次我们学习了IMAGE_OPTIONAL_HEADER的前十个参数,下面我们继续学习。第十一个值SectionAlignment,表示节对齐粒度。这个值一定要大于或等于文件对齐粒度。The alignment of sections loaded in memory, in bytes. This value must be greater than or equal to the FileAl转载 2017-10-30 20:06:37 · 738 阅读 · 0 评论 -
PE文件结构及其加载机制(二)
以及对应的结构体typedef struct _IMAGE_OPTIONAL_HEADER { WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfC转载 2017-10-30 19:20:17 · 388 阅读 · 0 评论 -
PE文件结构及其加载机制(一)
一、PE文件结构PE即Portable Executable,是win32环境自身所带的执行体文件格式,其部分特性继承自Unix的COFF(Common Object File Format)文件格式。PE表示该文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何Win32平台的PE装载器也能识别和使用该文件格式的文件。所有Win32执行体(除了VxD和16位转载 2017-10-30 16:07:03 · 508 阅读 · 0 评论 -
全面介绍Windows内存管理机制及C++内存分配实例
转自:http://blog.csdn.net/yeming81/article/details/2046193本文基本上是windows via c/c++上的内容,笔记做得不错。。本文背景:在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制转载 2017-11-08 15:58:46 · 392 阅读 · 0 评论