
PE
文章平均质量分 77
PE介绍
ychychychychychych
这个作者很懒,什么都没留下…
展开
-
PE——滴水的壳项目
滴水的壳项目滴水的教程对于我的编程学习影响是巨大的,感觉滴水的教程对于编程学习的方方面面都有涉及到,例如:汇编,C/C++,编译原理中的栈管理,操作系统,数据结构等等,而且还涉及到各种工具的使用,感觉是一门适合打好基础的好课程,在B站上看到的免费课程,如果没有了可以去淘宝赞助一下滴水官方。滴水的壳项目是滴水课程的最后几个实验之一,也是比较难的几个实验之一,在本篇博客中主要解析一下滴水壳的实现过程滴水壳的代码主要包括两部分:一部分用来加密,一部分用来解密加密部分主要实现的功能就是:我们首先需要知道原创 2021-05-17 14:16:21 · 2861 阅读 · 8 评论 -
PE——栈(c语言函数调用过程)
栈:在32位系统中一个进程可以分到4gb的虚拟内存空间 但是这4gb不是真实存在的 而是可用空间大小 但是这些内存空间物理上也不一定是连续的 而是一种逻辑上的连续如上图:我们可以看到一个程序的基本结构,代码区存放硬编码,数据区存放需要的数据,BSS存放全局变量,堆存放自主分配的内存,缓冲区为了防止堆栈的覆盖,栈区存放的就是函数调用留下的信息。对于函数的调用:父函数调用子函数,当子函数完成后,cpu将返回到父函数的下一行继续执行,这和栈的先入后出的结构是非常相似的,所以在c语言中使用了栈的结构来辅助函原创 2021-03-22 15:10:27 · 445 阅读 · 0 评论 -
PE——PE结构中数据表
PE结构中的数据包主要作用是用于引导操作系统去怎么操作这个文件,大多是为了程序能顺利运行起来做一些前置准备工作。PE结构中的数据表由可选文件头中的DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 字段来指示。这个字段中有IMAGE_NUMBEROF_DIRECTORY_ENTRIES个下面的结构,IMAGE_NUMBEROF_DIRECTORY_ENTRIES也就是可选文件头中的NumberOfRvaAndSizes。struct _IMAGE_DAT原创 2021-03-19 16:23:09 · 741 阅读 · 2 评论 -
静态链接和动态链接的区别
首先要知道的是:一个程序需要通过编译,链接两个过程,其中编译是将代码转化为二进制程序.obj文件,链接是将代码中的静态链接和动态链接做相应的动作。静态链接:静态链接是由.lib文件和.h文件组成的;静态编译的格式也就是经常被写到的#include<xxx.h>的形式,其中的#include<>的作用是进行预编译,编译器会将尖括号中的.h文件找出,具体可见编译器的Include文件夹,里面包含的就是各种各样的.h文件其中.h文件主要是记录的函数的定义,一般一个.h文件会由其对应原创 2021-03-17 11:49:46 · 373 阅读 · 0 评论 -
从FILE_BUFFER到IMAGE_BUFFER
首先需要知道FILE_BUFFER是什么,FILE_BUFFER就是文件存放在磁盘上的空间,IMAGE_BUFFER指的是文件在内存上存放的空间,而从磁盘到内存上,文件到底发生了什么。在这里先简略介绍一个,因为其中还有其他的很多因素,导入表,重定位表,段页,虚拟内存等等首先,当我们点下鼠标,OS会给文件分配可选文件头中的虚拟的4GB大小的空间(我们不考虑虚拟内存,认为OS将这个文件全都存放在内存上的一个连续空间中)。这个SizeOfImage的大小包括:DOS头大小,垃圾数据,NT文件头,节表的大小原创 2021-03-10 13:51:23 · 207 阅读 · 0 评论 -
PE文件结构简单介绍
PE文件分为三个部分:DOS文件头,NT文件头,节表及数据部分首先来介绍一个DOS文件头:这是在DOS系统时期使用的文件格式,到现在为止已经弃用了,占文件开头的0X40字节;但是还是有两个比较重要的字段IMAGE_DOS_HEADER STRUCT { +0h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +2h WORD e_cblp // Bytes on last page of file原创 2021-03-09 09:42:43 · 236 阅读 · 0 评论