摘要: 段选择器FS与TEB WinNT内核下内存采用保护模式,段寄存器的意义与实模式汇编下的意义不同.另外,FS存的是段选择子,而不是实模式下的高16位基地址。 FS寄存器指向当前活动线程的TEB结构(线程结构) 下面为FS寄存器下偏移的相关信息: 偏移 说明 000h 指向SEH链指针 004h 线程堆 阅读全文
posted @ 2020-02-11 18:19 10nnn4R 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/f9e362e64ef9 先看图表示虚拟地址到物理地址的映射,把两段与程序运行所需要的同等大小的虚拟空间映射到某段物理空间。 例如程序A需要 10MB 内存,虚拟地址的范围是从 0X00000000 到 0X00A00000,假设它被映射 阅读全文
posted @ 2020-02-11 17:22 10nnn4R 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 原文链接:https://www.jianshu.com/p/be89357ab475 计算机内存是以字节(Byte)为单位划分的,理论上CPU可以访问任意编号的字节,但实际情况并非如此。 CPU 通过地址总线来访问内存,一次能处理几个字节的数据,就命令地址总线读取几个字节的数据。32 位的 CPU 阅读全文
posted @ 2020-02-11 17:19 10nnn4R 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 对于CPU来说,内存是一个存放指令和数据的地方,并不能在内存中完成计算功能,例如要计算 a = b + c,必须将 a、b、c 都读取到CPU内部才能进行加法运算。为了解具体的过程,我们不妨先来看一下程序从硬盘到CPU的过程示意图。 运算单元:是CPU的大脑,负责加减乘除、比较、位移等运算工作,每种 阅读全文
posted @ 2020-02-11 17:15 10nnn4R 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 转自:evil.eagle https://blog.csdn.net/evileagle/article/details/12176797 导出表是用来描述模块中的导出函数的结构,如果一个模块导出了函数,那么这个函数会被记录在导出表中,这样通过GetProcAddress函数就能动态获取到函数的地 阅读全文
posted @ 2020-02-11 16:08 10nnn4R 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 大致结构 DOS头和NT头之间通常还有个DOS Stub DOS头 DOS头的作用是兼容MS-DOS操作系统中的可执行文件 一般没啥用 记录着PE头的位置 DOS头定义部分 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_ma 阅读全文
posted @ 2020-02-11 13:02 10nnn4R 阅读(236) 评论(0) 推荐(0) 编辑