首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

操作系统实验五

- 什么是“未分页合并内存”和“分页合并内存” Windows规定有些虚拟内存可以交换到文件中,这类内存被称为分页内存,有些虚拟内存永远不会交换到文件中,这些内存叫非分页内存。...- Windows xp 中未分页合并内存的最大限制是多少 256MB - Windows xp 分页文件默认设置的最小容量和最大容量是多少 Windows xp 使用内存数量的 1.5 倍作为分页文件的最小容量...步骤六 - 计算分页文件的大小 所选驱动器 (C: ) 的页面文件大小: 驱动器: C 可用空间:15889 MB 初始大小 (MB) :0最大值 (MB) :0 //此驱动器无分页文件 所有驱动器的页面文件大小...: 允许的最小值:16 MB 推荐:12081 MB 当前已分配:8192 MB 虚拟内存每页容量为:4KB 最小应用地址:0x000100000 最大应用地址:0x7ffeffff 当前可供应用程序使用的内存空间为...:20662MB 当前计算机的实际内存大小为:8055MB 理论上每个 Windows 应用程序可以独占的最大存储空间是:20662MB 将系统当前的自由区 (free) 虚拟地址空间 地址 大小 虚拟地址空间类型

1.1K20

PE文件格式详解,第二讲,NT头文件格式,以及文件头格式

PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 PS:本篇博客默认你已经有了汇编基础,所以会使用32位汇编编写最小PE进行讲解 今天详解NT 头格式,以及文件头格式,以及作用...一丶最小PE的生成,以及标准PE的生成 ps: (如果直接学习NT头,文件头,请不用看这个生成PE,直接看下面讲解即可) 1.标准PE的生成 为了便于学习PE文件格式,所以这里写出一个最小PE,还有一个最小的标准...这个就是标准PE了,看下文件大小. ? 注意一下,这里我使用的是RadAsm集成开发环境, 编译器是Masm32的link连接器....如果使用VC6.0以及以上的,文件会变的很大,可能会有16.KB,28.KB,不利于大家学习.如果不会配置RadAsm集成开发环境,请参考以前的帖子.自己配置一下即可. 2.最小PE的生成  区合并和内存对齐优化...,生成最小PE(不通用) 首先我们要知道PE中的区在哪里,以及怎么使内存对齐缩小,不至于让PE很大.

80160
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Process Doppelganging (Mitre:T1055.013)

    和NTFS FAT:文件分配表是维护硬盘、可移动存储等的传统格式,它们有三种格式:FAT12、FAT16和FAT32,每个版本都提供不同的簇大小和不同的最大文件大小,例如,FAT12仅支持大小为32 MB...的文件,而较新的FAT32支持大小为32GB(理论限制为16TB)且群集大小为8 KB的文件,它们被明智地用于必须在不同操作系统(windows、Linux、macOS)上使用的存储介质 NTFS:Windows...开发了新技术文件系统(Windows NT文件系统(NT File System))这是Windows操作系统中最流行的文件系统,它克服了各种脂肪限制,具有以下特点: 大文件大小限制:16eb 更大的集群...MFT会参考该物理位置并加载该文件 NTFS事务 本质上内存是一个2D矩阵,包含对文件和操作系统变量的引用,与数据库中的事务非常相似,NTFS中的事务也是可能的,它允许用户使用内存段,用户可以在特定的NTFS...PE内容的部分以及PE文件来加载进程 Step 6:我们需要手动填充一些流程参数,并将其链接到当前的PEB,以便流程正常运行,所使用的支持函数是 Setup_process_paramters Step

    75010

    Linux 内核 vs Windows 内核

    模块,这个就是最小版本的内核,而整个内核实现是一个完整的程序,含有非常多模块。...Windows 的可执行文件的格式与 Linux 也不同,所以这两个系统的可执行文件是不可以在对方上运行的。...Windows 的可执行文件格式叫 PE,称为可移植执行文件,扩展名通常是.exe、.dll、.sys等。 PE 的结构你可以从下图中看到,它与 ELF 结构有一点相似。 ?...PE 文件结构 ---- 总结 对于内核的架构一般有这三种类型: 宏内核,包含多个模块,整个内核像一个完整的程序; 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理; 混合内核,是宏内核和微内核的结合体...这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。

    16.4K30

    十七.Windows PE病毒概念、分类及感染方式详解

    PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行...了解软件加密和加壳的思想,能够PJ相关的PE文件 它是您熟悉Windows操作系统的第一步,包括EXE程序怎么映射到内存,DLL怎么导入等 软件逆向工程的基本思想与PE文件格式息息相关 如果您想成为一名黑客...它指所有感染Windows下PE文件格式文件的病毒。因为它通常采用Win32汇编编写,而且格式为PE文件,因此而得名。...IDA分析mian.exe如下图所示: 第四步,此时test.exe文件大小已经增加为6.50KB,说明其已经被恶意感染。...在下图中,左边是病毒在感染前的VAR位置,其地址为004010xx;当该代码插入到另一个HOST文件后,如右图所示,变量的实际位置和预期位置出现了差异,而重定位的关键是知道这个差异是多少,后续遇到的各种变量或地址都可以通过这种差异方式校正

    4.9K11

    PE文件结构

    基本概念 认识PE文件 PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件...EXE和DLL文件之间的区别完全是语义上的,他们使用完全相同的PE格式。唯一的区别就是用一个字段标识出这个文件是EXE还是DLL。...当PE文件通过Windows加载器被装入内存后,内存中的版本被称作模块(Module)。映射文件的起始地址被称为模块句柄(hModule),可以通过模块句柄访问内存中其他的数据结构。...输出表: 当创建一个DLL时,实际上创建了一组能让EXE或其他DLL调用的一组函数,此时PE装载器根据DLL文件中输出信息修正被执行文件的IAT。...EXE文件一般不存在输出表,而大部分DLL文件中存在输出表 ​ 注意:输出表(Export Table)中的主要成分是一个表格,内含函数名称、输出序数等。

    25310

    实战 | 进程启动技术的思路和研究

    ; 这里着重说一下CreateProcess的实现过程 在Windows中,进程是不活动的,只是作为线程的容器,现代操作系统将线程作为最小调度单位,进程作为资源分配的最小单位。...第一阶段:打开目标映像文件 对于32位exe映像,CreateProcess先打开其映像文件,在为其创建一个Section即文件映射区,将文件内容映射进来,前提是目标文件是一个合格的EXE文件(PE文件头部检测...第四阶段:通知windows子系统 每个进程在创建/退出的时候都要向windows子系统进程csrss.exe进程发出通知,因为它担负着对windows所有进程的管理的责任, 注意,这里发出通知的是CreateProcess...,这里将session0exe.exe注册到系统服务打开nc.exe到session1 内存加载运行 将资源加载到内存,然后把DLL文件按照映像对齐大小映射到内存中,切不可直接将DLL文件数据存储到内存中...其中,映像对齐大小是PE文件加载到内存中所用的对齐大小,而文件对齐大小是PE文件存储在本地磁盘所用的对齐大小。一般文件对齐大小会比映像对齐大小要小,这样文件会变小,以此节省磁盘空间。

    1.1K50

    记一次详细的勒索病毒分析

    、获取函数地址、解密新 PE 文件 2、使用进程替换技术,将老 PE 文件的内存空间替换为解密后的新 PE 文件,修复新 PE 文件的 IAT,接着跳向新 PE 文件的 OEP dump.exe:(新...经过后续的分析,我们可以了解到,这一段内存实际上是以 "新 PE 的参数+加密的新 PE" 这样的结构存储的,结构的详细分析如下图 ?...折腾了半天终于见到了病毒的真身 dump.exe:(新 PE 文件的分析) 我们通过 LoadPE 将此时病毒的内存,转存下来命名为 dump.exe,载入到 IDA 中,由于 dump.exe 可能用了一些对抗反汇编的技术...接着调用 00409FE7 处的 call sub_409CB8 解密函数,将解密后的数据(一些 windows 上常用的软件名称)以.为分割符分为 43 个字符串的首地址存放在分配的内存地址中。...之后调用 CreateFile 打开要加密的文件,获取文件大小,计算 uuid 的长度,调用 sub_407009 分配了两块内存空间,之后将要加密的文件大小与文件名称进行运算 ?

    1.8K10

    APT之旅 - PE静态内容结构

    一、前言 PE 是一种文件格式,在Windows操作系统上的执行可执行文件(.exe)、动态链接库(.dll)、驱动程序以及其他可执行文件类型都是 PE 格式。...(2)Optional Header Optional Header 是由编译最后一阶段由编译器补上的资讯,包含了 PE 文件的一些可选信息,如程序入口点、内存对齐方式等。...DataDirectory 数组索引取值可以是以下值之一: #1 和 # 12 看起来比较相似,实际上 idata 整个区段都是 #12 全局导入函数地址表,而 #12 上的函数需要引用自那个 DLL...(1)微软获取 Section Headers 位置的宏定义 在 winnt.h 文件中,能找到微软获取 Section Headers 位置的宏定义,引入 windows.h 后自动引入,其中使用了...执行打印出来 DOS Header、NT Headers、Section Headers 的信息,可以看到用 ftell 计算的文件大小 326656: 最后一个节点打印 PointerToRawData

    29620

    2.11 PE结构:添加新的节区

    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。...读取和写入 当然了并不是每一个标准的PE文件都具备这些节,某些程序可能会使用特殊的PE编辑工具新增一些特殊的节,或者当程序被加密压缩后该程序的节区也会发生不同的变化,对于新增节来说需要具备如下几个关键步骤...偏移量是新节在文件中的位置,大小是新节的长度。 更新PE文件头:修改PE文件头中的相关字段,更新文件头中的NumberOfSections字段和SizeOfImage字段。...创建新节:在PE文件末尾添加新的节表项,并填充新节的各个字段,例如名称、虚拟大小、文件大小、内存对齐等。...,以及节区长度,程序中通过映射方式打开文件,分别寻找到当前节表首地址,以及节的数量,通过复制一个节,并对该节内存参数进行更新(节内存大小,节文件大小,节内存属性)等,当这些数据被更正后,则加下来就是保存文件

    19710

    2.11 PE结构:添加新的节区

    在可执行PE文件中,节(section)是文件的组成部分之一,用于存储特定类型的数据。...读取和写入当然了并不是每一个标准的PE文件都具备这些节,某些程序可能会使用特殊的PE编辑工具新增一些特殊的节,或者当程序被加密压缩后该程序的节区也会发生不同的变化,对于新增节来说需要具备如下几个关键步骤...偏移量是新节在文件中的位置,大小是新节的长度。更新PE文件头:修改PE文件头中的相关字段,更新文件头中的NumberOfSections字段和SizeOfImage字段。...创建新节:在PE文件末尾添加新的节表项,并填充新节的各个字段,例如名称、虚拟大小、文件大小、内存对齐等。...,以及节区长度,程序中通过映射方式打开文件,分别寻找到当前节表首地址,以及节的数量,通过复制一个节,并对该节内存参数进行更新(节内存大小,节文件大小,节内存属性)等,当这些数据被更正后,则加下来就是保存文件

    42120

    PE格式:实现PE文件特征码识别

    PE文件就是我们常说的EXE可执行文件,针对文件特征的识别可以清晰的知道该程序是使用何种编程语言实现的,前提是要有特征库,PE特征识别有多种形式,第一种是静态识别,此方法就是只针对磁盘中文件的特征码字段进行检测来判断编译器版本...打开PE文件映射: 在读取PE结构之前,首先要做的就是打开PE文件到内存,这里打开文件我们使用了CreateFile()函数该函数可以打开文件并返回文件句柄,接着使用CreateFileMapping(...)函数创建文件的内存映像,最后使用MapViewOfFile()读取映射中的内存并返回一个句柄,后面的程序就可以通过该句柄操作打开后的文件了....#include #include Windows.h>#include #pragma comment(lib,"Imagehlp.lib")// 读取PE...PE句柄lpMapAddress = OpenPeFile("c://lyshark.exe");// 判断是否为PE文件,这里定义的为真返回1,为假返回0BOOL ret = IsPeFile(lpMapAddress

    93100

    CC++ 进程隐藏&加载寄生&僵尸进程

    众所周知,windows下可执行文件必须符合一定的格式要求,微软官方称之为PE文件(关于PE文件的详细介绍这里就不赘述了,google一下可以找到大把);用户在界面双击exe时,有个叫做explorer...分配内存   既然是运行,肯定是需要放在内存的,所以首先要开辟内存空间,才能把exe从磁盘加载进来;以32位为例,由于每个进程都有自己的4GB虚拟空间,所以还涉及到新生成页表、填充CR3等琐碎的细节工作...; 加载到内存 内存分配好后,接着就该把exe从磁盘读取到内存了; 重定位(文章末尾有扩展,详细介绍imagebase、VA、RVA、PointerToRawData、foa等概念) 这一步我个人觉得是最关键...所以只能把需要用到的这些系统函数统一放在一张叫做导入表的表格,explorer加载的时候还要挨个遍历导入表,一旦发现该PE文件用到了某些系统API,需要用这些API在内存的真实地址替换PE文件中call...loadLibrary类似:只要是通过windows提供的API使用内存,都会在某些地方被记录,这也是windows常见的内存管理方式之一,用了必须记录!

    85420

    pe 详解(包括参数说明哦)

    1.2、DOS Stub: DOS Stub(存根)实际上是个有效的 MS-DOS .EXE 或者.COM 程序(如果文件格式不对会报错),在不支持 PE文件格式的操作系统中,它将通过简单调用中断21h...PE装载器读取其中的节信息,并采用文件映射方法将这些节映射到内存,同时付上节表里指定的节属性。...3.OptionalHeader:该结构域包含了关于PE文件逻辑分布的信息,虽然域名有"可选"字样,但实际上本结构总是存在的。...基址(Base Address)用来描述被映射到内存中的exe或者dll的起始位置。 为什么PE文件格式要用到RVA呢? 这是为了减少PE装载器的负担。...在PE文件中大多数地址多是RVAs 而 RVAs只有当PE文件被PE装载器装入内存后才有意义。如果直接将文件映射到内存而不是通过PE装载器载入,则不能直接使用那些RVAs。

    1.5K20

    PE 病毒与 msf 奇遇记

    ;//载入内存后的RVA,内存对齐 DWORD SizeOfRawData;//在磁盘上的大小,文件对齐 DWORD PointerToRawData;//在文件上的偏移地址 DWORD...,这里要牵扯到内存对齐和文件对齐的概念,在 PE 文件 OptionHeader 中 SectionAlignment 代表节表装入内存后的对齐值、而 FileAlignment 代表节表在文件中的对齐值...通常情况下 SectionAlignment 的值为 0x1000,也就是 4KB 大小因为 windows 操作系统的内存分页一般为 4KB,FileAlignment 的值一般为 0x200,也就是...SizeOfRawData 中的最小值来载入节区数据。...紧接着调用 CopyFile,在 CopyFile 上面出现了 .exe 的字符串,可能程序会复制目标程序,并在原来名称的基础上再加 .exe,紧接着调用 fopen 打开新复制的 exe 文件 ?

    60600

    PE格式:实现PE文件特征码识别

    PE文件就是我们常说的EXE可执行文件,针对文件特征的识别可以清晰的知道该程序是使用何种编程语言实现的,前提是要有特征库,PE特征识别有多种形式,第一种是静态识别,此方法就是只针对磁盘中文件的特征码字段进行检测来判断编译器版本...打开PE文件映射: 在读取PE结构之前,首先要做的就是打开PE文件到内存,这里打开文件我们使用了CreateFile()函数该函数可以打开文件并返回文件句柄,接着使用CreateFileMapping(...)函数创建文件的内存映像,最后使用MapViewOfFile()读取映射中的内存并返回一个句柄,后面的程序就可以通过该句柄操作打开后的文件了....dwFileSize = GetFileSize(hFile, NULL); // 创建文件的内存映像 // 此方法非常灵活,其不需要将程序完全读入内存中,节约空间。...PE句柄 lpMapAddress = OpenPeFile("c://lyshark.exe"); // 判断是否为PE文件,这里定义的为真返回1,为假返回0 BOOL ret = IsPeFile

    1.3K20

    PE文件小知识

    其中我们最常见的是exe和dll,那么它们两个有什么区别呢,exe和dll的区别完全是语义上的,他们使用完全相同的PE格式。唯一的区别就是用一个字段标识出这个文件是exe还是dll。...当PE文件通过Windows加载器被装入内存后,内存中的版本被称作模块(Module)。映射文件的起始地址被称为模块句柄(hModule),可以通过模块句柄访问内存中其他的数据结构。...默认的对齐尺寸是目标CPU的页尺寸。对于运行在Windows 9x/Me下的用户模式可执行文件,最小的对齐尺寸是一页1000h(4KB)。这个字段可以通过链接器的/ALIGN开关来设置。...1.8.2 输出表 当创建一个DLL时,实际上创建了一组能让EXE或其他DLL调用的一组函数,此时PE装载器根据DLL文件中输出信息修正被执行文件的IAT。...EXE文件一般不存在输出表,而大部分DLL文件中存在输出表 ​注意:输出表(Export Table)中的主要成分是一个表格,内含函数名称、输出序数等。

    16810

    用二进制写程序,提升装 X 境界

    比如,Windows 下使用 C 语言编写的程序编译连接后可以生成一个 .exe 的可执行程序,生成的这个可执行程序就是一个二进制程序。那么,这个程序如何用二进制编写呢?...首先,可执行程序中并非只有代码,而 CPU 要执行的只有代码。 其次,CPU 执行的代码是二进制,但是在内存中的数据也是二进制数据,那么如何知道哪部分是代码,哪部分是数据呢?...因此,在内存中查看数据时,更多的是使用十六进制,其实从本质上十六进制和二进制是没有区别的,只是表示的方式不同。因此,真正使用二进制来写程序时,是使用十六进制来完成的。...那么,在使用十六进制来编写 Windows 下的可执行程序时,首先需要使用十六进制编辑器构造 PE 文件结构,PE 文件结构主要告诉操作系统,程序加载入内存后,程序的映射起始地址是多少,程序的入口地址是多少...,程序中的代码和数据分别保存在哪里,以及它们的长度是多少,映射到内存中以后其地址是多少,该可执行文件调用了哪些系统函数,这些系统函数分别在哪些动态链接库中等信息。

    1.1K20

    2.1 PE结构:文件映射进内存

    PE结构是Windows系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,在任何一款操作系统中,可执行程序在被装入内存之前都是以文件的形式存放在磁盘中的...PE结构包含了各类结构体,DOS头,PE标识,文件头,可选头,目录结构,节表,导入表,导出表,重定位表,资源表等等,要想掌握PE结构首相要对这些表有一个整体上的认识,Windows NT 系统中可执行文件使用微软设计的新的文件格式...,也就是至今还在使用的PE格式,PE文件的基本结构如下图所示: 在PE文件中,代码,已初始化的数据,资源和重定位信息等数据被按照属性分类放到不同的Section(节区/或简称为节)中,而每个节区的属性和位置等信息用一个...在解析PE文件之前,我们首先要做的则是将PE文件从磁盘中读入到内存,有两种方式可以实现,一种是通过ReadFile函数将完整的数据读入内存,该方法会消耗更多的内存资源这里并不推荐使用,第二种方式则是采用映射的模式...有了上述几个关键API函数那么实现内存映射功能将会变得很容易实现,直接来看一下如下代码,当程序运行后会自动将c://pe/x86.exe目录下的文件读入内存,并返回一个lpMapAddress文件句柄;

    27920

    2.1 PE结构:文件映射进内存

    PE结构是Windows系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,在任何一款操作系统中,可执行程序在被装入内存之前都是以文件的形式存放在磁盘中的...PE结构包含了各类结构体,DOS头,PE标识,文件头,可选头,目录结构,节表,导入表,导出表,重定位表,资源表等等,要想掌握PE结构首相要对这些表有一个整体上的认识,Windows NT 系统中可执行文件使用微软设计的新的文件格式...,也就是至今还在使用的PE格式,PE文件的基本结构如下图所示:图片在PE文件中,代码,已初始化的数据,资源和重定位信息等数据被按照属性分类放到不同的Section(节区/或简称为节)中,而每个节区的属性和位置等信息用一个...在解析PE文件之前,我们首先要做的则是将PE文件从磁盘中读入到内存,有两种方式可以实现,一种是通过ReadFile函数将完整的数据读入内存,该方法会消耗更多的内存资源这里并不推荐使用,第二种方式则是采用映射的模式...有了上述几个关键API函数那么实现内存映射功能将会变得很容易实现,直接来看一下如下代码,当程序运行后会自动将c://pe/x86.exe目录下的文件读入内存,并返回一个lpMapAddress文件句柄;

    26710
    领券