PE(.exe)文件创建工具是一款专业的开发辅助软件,用于帮助开发者构建和编辑Windows可执行文件。用户可以通过该工具轻松生成、修改.exe文件,并深入理解其内部结构,提高编程效率。
.版本 2
局部变量 段, 整数型
局部变量 表目录, 整数型
局部变量 现行位置, 整数型
局部变量 段数, 整数型
局部变量 段内存地址, 字节集
局部变量 段占用文件大小, 整数型
局部变量 代码入口地址, 整数型
局部变量 表的数量, 整数型
局部变量 计次, 整数型
局部变量 计次2, 整数型
局部变量 代码段地址, 字节集
局部变量 文件对齐度, 整数型
局部变量 DOS数据, 字节集
局部变量 首选装载地址, 整数型
局部变量 控制台程序, 布尔值
现行位置 = 取字节集数据 (文件, #整数型, #MZ头长度 - 3) + 1
DOS数据 = 取字节集中间 (文件, #MZ头长度 + 1, 现行位置 - #MZ头长度 - 1)
如果取字节集数据(文件,#整数型,现行位置) ≠ #PE署名
返回 ()
结束 如果
现行位置 = 现行位置 + 2
段数 = 取字节集数据 (文件, #短整数型, 现行位置)
重定义数组 (段, 假, 段数)
重定义数组 (段内存地址, 假, 段数)
现行位置 = 现行位置 + 32
代码入口地址 = 取字节集数据 (文件, #整数型, 现行位置)
代码段地址 = 取字节集数据 (文件, #整数型, 现行位置)
现行位置 = 现行位置 + 4
首选装载地址 = 取字节集数据 (文件, #整数型, 现行位置)
现行位置 = 现行位置 + 4
文件对齐度 = 取字节集数据 (文件, #整数型, 现行位置)
现行位置 = 现行位置 + 28
控制台程序 = 取字节集中间(文件,现行位置,2) = {3,0}
现行位置 = 现行位置 + 24
表的数量 = 取字节集数据 (文件, #整数型, 现行位置)
重定义数组 (表目录, 假, 表的数量)
计次循环首(表的数量, 计次)
表目录[计次].地址 = 取字节集数据 (文件,#整数型,现行位置)
表目录 [计次].大小 = 取字节集数据 (文件, #整数型, 现行位置)
计次循环尾 ()
计次循环首(段数, 计次)
段[计次].名称 = 取字节集中间 (文件,现行位置,8)
现行位置 = 现行位置 + 8
段 [计次].内存大小 = 取字节集数据 (文件,#整数型,现行位置)
段内存地址[计次] = 取字节集数据 (文件,#整数型,现行位置)
段占用文件大小 = 取字节集数据 (文件,#整数型,现行位置)
段 [计次].数据 = 字节集删尾空(取字节集中间 (文件,取字节集数据 (文件,#整数型, 现行位置) + 1 ,段占用文件大小))
现行位置 = 现行位置 + 12
段 [计次].属性 = 取字节集数据 (文件,#整数型,现行位置)
计次循环尾 ()
计次循环首(表的数量, 计次)
.变量循环首 (段数, 1,-1, 计次2)
如果真 (表目录 [计次].地址 ≥ 段内存地址[计次2])
表目录 [计次].段号 = 计次2
表目录 [计次].地址 = 表目录 [计次].地址 - 段内存地址[计次2]
跳出循环 ()
结束 如果真
.变量循环尾()
计次循环尾