相关推荐
-
PEBrowse Debug
本工具为经典的dotnet动态调试工具,非常适合用于动态调试dotnet程序
-
windbg dt命令显示PE相关数据结构
0:001> dt ntdll!*IMAGE_* ntdll!_IMAGE_NT_HEADERS ntdll!_IMAGE_DOS_HEADER ntdll!_IMAGE_FILE_HEADER ntdll!_IMAGE_OPTIONAL_HEADER ntdll!_IMAGE_DATA_DI...
-
PE文件格式详解(7)
调试信息段,.debug 调试信息位于.debug段之中,同时PE文件格式也支持单独的调试文件(通常由.DBG扩展名标识)作为一种将调试信息集中的方法。调试段包含了调试信息,但是调试目录却位于早先提到的.rdata段之中。这其中每个目录都涉及了.debug段之中的调试信息。调试目录的结构IMAGE_DEBUG_DIRECTORY被定义为:WINNT.Htypedef struct _IMAG
-
PE文件格式学习(九):调试表(DebugDirectory)
微软官方参考文档:https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#debug-type
-
从PE结构取调试信息 代码
从PE结构取调试信息 代码
-
PE文件中各IMAGE_DATA_DIRECTORY的定义
首先列出IMAGE_DATA_DIRECTORY结构:(简单的结构就不注释了)typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size;} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; VirtualAddress。是所指向的
-
windows PE文件都包含哪些信息【详细汇总介绍】
PE(Portable Executable)文件是Windows操作系统中使用的可执行文件格式,用于.exe、.dll、.sys等文件。PE文件结构是由一系列紧密相关的头部和数据节组成的,每个部分都承担着特定的功能。
-
【PE】PE文件结构学习
【PE】PE文件结构学习PE文件内存对齐文件对齐PE结构分析DOS头结构PE头文件区块表输入表输出表:基址重定位表: PE文件 内存对齐 PE文件包括: DLL,EXE,OCX,SYS等。 Windows加载器遍历PE文件并将其复制到内存镜像。PE文件结构在磁盘中和内存中基本是一样的,但又不是完全复制,对齐方式有所不同。 如图:在Windows系统中,一个节在内存中对齐单位是一个页的大小。 对于32位操作系统来说,这个值是4KB(1000H) 对于64位系统来说,这个值是8KB(2000H) 文件
-
PE文件结构和调试
1.PE文件结构 [参考文章](https://blog.csdn.net/adam001521/article/details/84658708) 1.1结构地址偏移 hMod = GetModuleHandle(NULL); pAddr = (PBYTE)hMod; PrintImportTable(pAddr); // pAddr = VA to PE signature (IMAGE_NT_HEADERS) pAddr += *((long long*)&pAddr[0x3C]
-
C++PE文件格式解析类(轻松制作自己的PE文件解析器)
用C++封装了可以轻松高效获取PE文件中各信息的类,该类有较高可读性,同时具有一定的通用性,适合学习,也适合轻松实现自己的PE文件信息查看软件
-
Windows注入与拦截(6) -- 从内存中加载DLL
Windows提供的API(LoadLibrary, LoadLibraryEx)只支持从文件系统上加载DLL文件,我们无法使用这些API从内存中加载DLL。 但是有些时候,我们的确需要从内存中加载DLL,比如: 对发布的文件数量有限制。我们可以将DLL打包到exe的资源中,程序运行时从调用LoadResource等API读取DLL文件到内存中,然后从内存中加载DLL。 需要对DLL进行压缩...
-
计算机程序编译过程,程序编译过程
相对虚拟地址在可执行文件中,许多地方都需要被指定一个在内存中的地址。例如在使用全局变量时需要它的地址。PE文件可以被加载到进程地址空间中的任何地方。虽然它有一个首选地址,但你却不能依赖可执行文件一定会被加载到那个地址。因此就需要按一定方式指定地址,使它们并不依赖于可执行文件的加载地址。为了避免在PE文件中硬编码内存地址,因此就使用了RVA。RVA只是一个相对于PE文件在内存中的加载位置的偏移。例如...
-
MS 调试信息分析(一)
首先我在这里说明,MS 调试信息的支持其实MS 已经提供了DBGhelp和imagehel 这两个库,当我们如果想更深入的了解调试信息就必须来了解调试文件。我在这里只讨论DBG文件和PDB文件,由于其中的很多信息,MS并没有公开,我也只属于探索阶段,所以错误再所难免。 一般的调式信息由MS提供的一般由两个文件,DBG文件和PDB文件,在NT4。0中没有PDB文件,PDB文件中的信息被保存在DBG
-
PE文件格式详解(下)
预定义段 一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段。这种做法与MS-DOS和Windows 3.1中的代码段和数据段相似。事实上,应用程序定义一个独特的段的方法是使用标
-
PE文件结构-目录项结构
目录项结构 数据目录项位于可选PE头的最后一部分,向前四个字节说明了数据目录项的数量,而每个数据目录项的结构一致,分别包含RVA地址和数据项的大小。 IMAGE_DATA_DIRECTORY STRUCT { DWORD VirtualAddress ;数据的起始RVA DWORD isize ;数据块的长度 } 数据目录项通常共有16项,它们的详细说明如下: 英文描述 中文描述 ...
-
这可能是最详细的 Windows Debug 详解 了
Debug概览 Debug是什么? debug是Windows 16位或者32位机器上的一款调试工具。也就是说,在WindowsXP及以前的机器上都有debug,直接Win+X debug就可以调出;在之后的32位机也有;但是在之后的64位机器上不存在,即使有,也无法运行。不必尝试到底能不能运行,绝对不能 相似的,微软的masm也无法在64位版本的系统上运行。 可以通过安装dosbox来...
-
DelphiXE环境认知(第一章 Project Options)
DelphiXE环境认知作者:帅宏军 时间:2011年4月 说明:根据DelphiXE的自带帮助翻译而来,为作者个人看法,如有翻译不当,仅供参考。 shuaihj@163.com http://blog.csdn.net/shuaihj 第一章、 Project OptionsØ Project > Options 这个页面用来设置当前项目的Delphi编译器选项。Default勾选后可将当前的配
-
PE文件详解之IMAGE_NT_HEADER结构
PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称。里面包含了许多PE装载器用到的重要字段。 先看看该结构体: typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTION
-
PE代码注入
PE文件入口地址EntryPoint指向了PE文件开始执行的位置,关于PE文件的具体格式,大家可以自行百度。 本代码主要实现了在32位可执行程序中注入了一个弹窗 。其主要原理是修改EntryPoint地址处的内容,指向自己代码的地方,然后执行完毕后,再跳转到原入口的地址。 其中值得注意的几点: (1)需要关闭PE的地址随机化功能,可以通过修改OptionHeader头中的DllCharacteristics = 0x8100,来绕过地址随机化。 (2)计算E8和E9的时候,CALL 偏移:跳转地址 = 当前
-
PE文件学习(四)基址重定位
数据目录的IMAGE_DIRECTORY_ENTRY_BASERELOC项指向此结构,由于在Windows系统中DLL(动态链接库)文件并不是每次都能加载到预设的基址(ImageBase)上,因此基址重定位主要应用于DLL文件中。 一般情况下重定位表位于一个名为.reloc的区块内,PE文件中的重定位结构是由多个IMAGE_BASE_RELOCATION子结构组成的,每个子结构只负责