ivy_0709
作者不懒哦,有文章被点赞了或关注了都会被作者重新编辑,进行优化补充,方便后人更好的理解和阅读。
文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信。
少点收藏文章,看完觉得有用再收藏。
展开
-
虚拟内存以及进程的虚拟内存分布(第六章)
在早期的计算机中,程序都是直接运行在物理内存上的,运行时访问的地址都是物理地址,而这要求程序使用的内存空间不超过物理内存的大小。在现代计算机操作系统中,计算机同时运行多个程序,为了提高CPU的利用率和物理内存的利用率,操作系统应用虚拟内存机制来管理内存。本文介绍一些与虚拟内存相关的概念。目录1.物理内存 vs 虚拟内存2.物理内存空间 和 虚拟内存空间3.4GB虚拟内存cp...原创 2019-05-17 10:59:58 · 17124 阅读 · 11 评论 -
《格蠹汇编》读书笔记—windbg的使用(中)
笔记本唤醒失败的原因探究(16章)1)如何产生dmp文件方法在前一章说过https://blog.csdn.net/u012138730/article/details/90547384当唤醒失败了以后,按ctrll+scrolllock 强制蓝屏(需要注册表的设置) 然后就有dmp文件可以分析了。2)一些常规的命令分析dmp文件的时候的一些常规操作,之前也介绍过。设置调试符号路径.symfix c:\symbols自动分析!analyze -v3)进一原创 2021-09-09 13:02:20 · 705 阅读 · 0 评论 -
Windows下的api 以及 C语言的一些api
RegisterClass宏winuser.h#ifdef UNICODE#define RegisterClass RegisterClassW#else#define RegisterClass RegisterClassA#endif // !UNICODEhttps://docs.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-registerclassw注册一个窗口类,在随后的CreateWi...原创 2020-12-15 11:22:52 · 1943 阅读 · 0 评论 -
C/C++的编译和链接过程
cl.exe和link.exe分别是visual studio 中的编译器和链接器配置属性中的【c/c++】(设置编译的一些选项) 和 【链接器】选项页中,最后的那个命令行汇总了所有生效的设置,就是最终执行的命令行配置属性中的VC++ 目录用于设置各个路径,相当于设置环境变量PATH(搜可执行文件的路径):INCLUDE(搜include中文件的路径)LIBPATH(搜使用usin...原创 2019-06-03 15:49:29 · 8588 阅读 · 0 评论 -
汇编指令和寄存器
目录寄存器名字各种类型的寄存器1.通用寄存器——AX BX CX DX传送指令:move算术运算指令:add,sub2.CS,IP——代码段最简单的转移指令——jmp3.DS——数据段4.SS,SP——栈空间(高地址往低地址增长)入栈出栈指令 Push 和 Pop 指令上图是cpu中三个组成部分:寄存器 运算器 控制器。其中寄存器是cpu中程序员用指...原创 2019-06-03 11:37:52 · 9009 阅读 · 0 评论 -
vs生成的map文件详解
目录1.如何设置生成map文件2.map文件内容1.首部信息2.段(section)信息——information about the sections in this module1.sections的介绍:2.内存分布3.函数信息——actual symbolic information4.静态符号1.如何设置生成map文件链接的时候生成map打开项...原创 2019-05-27 21:13:50 · 11471 阅读 · 1 评论 -
《格蠹汇编》读书笔记—windbg的使用
1.注册表设置注册表设置 要调试的exe的 debugger 为 x86的windbg打开注册表,在[运行] (win+ R)中输入 regedit,找到下面这个路径:比如想要调试test.exe, 就新建一个test.exe 文件夹,并新建 一个 字符串值的键,名称为 Debugger,值为 windbg所在的路径2.打开windbg,需要设置这三个路径,但是这个...原创 2019-05-25 15:46:05 · 5554 阅读 · 0 评论 -
可执行文件的装载,进程和线程,运行时库的入口函数(第六章)
装载过程程序执行时所需要的指令和数据必须在内存中(指的是物理内存)才能正常运行。程序装载指的就是把这些东西加载到内存中。最简单的装载方式就是把所需的指令和数据全部装入内存,称为静态装载。但是这样会比较消耗内存。动态装载的思想是程序用到哪个模块就装入内存。下面介绍动态加载的过程:1.创建一个独立的虚拟内存空间创建的是映射表的数据结构,使用二级表的话,分配一个4K的页目录就可以了,后面的映...原创 2019-05-20 16:50:23 · 2285 阅读 · 0 评论 -
段机制(段描述符)和页机制(内存分页)
前面说道操作系统的每个进程都拥有自己的虚拟地址空间,对于这个32位操作系统,虚拟内存空间大小为4G。现代操作系统都使用分页来管理内存,把4G分成每一页为2^12 = 4K大小的页,一共有1M个的页(虚拟页VP,VirtualPage)。每一个虚拟页映射到物理内存空间的一个页——物理内存地址空间也划分4K大小的页(物理页PP,PhysicalPage)。这个映射关系的数据结构称为页表。当进程的虚拟页...原创 2019-05-17 15:44:38 · 5161 阅读 · 3 评论 -
中断和异常
最近在看内存方面的知识,打算写一系列的博客分享记录一下。本文介绍任务管理器里各个内存项的含义以及用一个例子也解释独占性。目录内存项含义1.工作集Working Set(内存)=内存(专用工作集)+ 内存(共享工作集)2.提交大小 Comitted Memory内存的独占性内存项含义打开任务管理--详细信息---右键选择列,选择下面这4个。1....原创 2019-05-10 15:54:53 · 3341 阅读 · 5 评论 -
剖析ELF文件格式的内容———文件头,段表,符号....(第三章)
目录1.extern "C"1.编译阶段——取名2.链接阶段——找对应的名参考:2.extern变量名1.extern "C"在阅读代码的时候,常常会看到下面的代码片段:#ifdef __cplusplusextern "C" {#endif // 写例如dll导出函数的定义#ifdef __cplusplus}#endif这是一...原创 2018-09-21 18:36:55 · 8051 阅读 · 1 评论 -
C++工程编译链接错误汇总VisualStudio
适用情况:1. 查看 工程属性--- VC++目录----执行目录---是否有C:\Program Files (x86)\Windows Kits\8.1\bin\x86 (应该是执行的这个目录下的 rc.exe)2. 查看 目录 C:\Program Files (x86)\Windows Kits下是否没有【8.1】,或者【8.1】下的文件夹是否不全(对比【8.0】...原创 2018-07-10 18:06:41 · 7439 阅读 · 1 评论