参数指定 PE 文件路径。
用于分析 PE 文件。
用法请参考「 aardio 工具 » 探测器 » DLL 查看工具 」
按系统加载 DLL 的查找规则(先查 @dir 目录,再按 LoadLibrary 搜索顺序)查找依赖 DLL,
返回完整路径;api-ms-/ext-ms- 返回 "apiset";找不到返回 null
返回使用 PE 时间戳作为参数创建的 time 对象。
参数 @path 指定文件路径。
一句探查 PE 文件:打开、summary()、关闭,返回摘要表(字段见 summary)。
参数为目录时递归扫描其中的 .dll|.exe|.ocx|.pyd|.node|.sys 并返回摘要数组(每项含 path)。
打开失败返回 null,错误信息。
下载或编译出 DLL 后先用它看:machine 是否 x86、是否 .NET、缺哪些依赖、导出了什么、调用约定线索(notes 字段有现成的提示)。
设置 PE 时间戳。
参数 @path 指定文件路径。
参数 @tm 可以是数值或 time 对象。
一句全自动验证 DLL:打开、verify(required,options)、关闭。
参数 @path 指定文件路径,@required 可选指定必须存在的导出函数名数组,@options 见 verify 函数。
返回 verify 的结果表 {ok,errors,error,missing,missingDependencies,exports,info},打开失败返回 null,错误信息。
典型用法:tcc 编译 DLL 后 var r = raw.pefile.verifyFile(path,{"fn1","fn2"},{load=true}); if(!r.ok) error(r.error)
关闭文件,对象被回收时也会自动调用此函数。
导出 aardio 格式的导出函数声明,
仅支持使用C++修饰名导出的 API 函数,
导出的 aardio 代码仅供参考。
获取 .Net 程序的 CLR 头信息
如果不是 .Net 程序返回 null
读取 PE 数据目录,参数指定 0 起的目录索引(0 导出表,1 导入表,13 延迟加载表,14 CLR 头)。
返回 {address=RVA;size=大小},不存在返回 null。
返回延迟加载(delay-load)导入表信息,
每个数组成员包含 name 字段(DLL 名)。
无延迟加载表返回 null。
返回导出表信息,失败或无导出表返回 null。
用法请查看函数源码
返回一个包含所有导出函数名信息的对象数组。
每个数组成员包含 "ordinal";"address";"name" 三个字段
返回对象的 fields 属性是一个列名数组,
返回对象可以作为 listview 控件的 setTable 函数参数使用
失败或无导出表返回 null。
返回一个包含所有导出函数名的字符串数组。
失败或无导出表返回 null。
返回导入表信息,
用法请查看函数源码
返回参数 @1 指定名称的 PE 节信息。
首选加载基址(数值)
PE 文件创建时间,time 对象
PE 文件创建时间戳,数值
是否 DLL(文件头 characteristics 含 IMAGE_FILE_DLL)
检测是否导入了指定的 DLL,名称忽略大小写
是否 PE32 文件。
process.isExe 也可以用于检测 32 位或 64 位执行文件
目标架构名称,"x86"、"x64"、"arm64"、"arm"、"ia64" 之一,未知则为十六进制字符串。
32 位 aardio 进程只能 raw.loadDll 加载 "x86" 模块。
链接器主版本号
链接器副版本号
文件路径
读取结构体
不支持多参数
读取指定长度的字节
不支持多参数
将 RVA 转换为文件偏移,无法映射返回 null
PE 节信息数组。
移动至相对开始处的指定偏移量
子系统数值,2 为 GUI,3 为 CUI
返回 PE 文件摘要表,字段:
path,machine("x86"/"x64"/"arm64"…),bits,isDll,subsystem,linker,timeDate,toolchain,
exports(导出函数名数组),exportCount,dependencies(导入 DLL 名),delayDependencies,missingDependencies(按系统搜索规则找不到的依赖),
dotNet(.NET 程序集信息:ilOnly,platform,runtime),isComServer,calling(x86 导出名修饰推断的调用约定,无修饰为 null,混合为 "mixed"),
loadable(当前 32 位进程能否 raw.loadDll),notes(给人看的提示数组)。
静态函数 raw.pefile.inspect(path) 可一步完成打开、summary、关闭。
全自动验证 DLL 能否在 aardio 中使用,一次列出所有问题。
参数 @required 可选指定必须存在的导出函数名数组(或单个函数名)。
参数 @options 可选指定表:
仅验证 DLL 是否包含 required 数组中的全部导出函数名。
参数 @required 指定必须存在的导出函数名字符串数组。
返回表:ok=是否全部存在,missing=缺少的函数名数组,exports=完整导出函数名数组
完整验证请用 verify 函数。