|
X64_枚举进程导出函数 | 整数型 | |
|
进程句柄 | 长整数型 | | | |
模块地址 | 长整数型 | | | | 枚举结果 | 枚举导出函数 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
局部_pe结构指针 | 长整数型 | | |
局部_映像大小指针 | 长整数型 | | |
局部_映像和数据目录大小 | 短整数型 | | |
局部_数据目录指针 | 长整数型 | | |
局部_导出表偏移 | 整数型 | | |
局部_导出表指针 | 长整数型 | | |
局部_起始序号 | 整数型 | | |
局部_模块名称偏移 | 整数型 | | |
局部_函数入口数目 | 整数型 | | |
局部_函数名称数目 | 整数型 | | |
局部_函数入口偏移 | 整数型 | | |
局部_函数名称偏移 | 整数型 | | |
局部_函数序号偏移 | 整数型 | | |
i | 整数型 | | |
局部_模块名称 | 长整数型 | | |
局部_函数入口指针 | 长整数型 | | |
局部_函数名称指针 | 长整数型 | | |
局部_函数序号指针 | 长整数型 | | |
局部_枚举导出函数 | 枚举导出函数 | | |
局部_枚举导出函数数组 | 枚举导出函数 | | 0 |
局部_函数入口序号位置 | 短整数型 | | |
局部_pe结构指针 =
X64_取进程PE结构指针 (进程句柄, 模块地址
)
如果真 (局部_pe结构指针 = 0
)
返回 (0
)局部_映像大小指针 = 局部_pe结构指针 + 4 + 16内存64_读短整数型 (进程句柄, 局部_映像大小指针, 局部_映像和数据目录大小
)局部_数据目录指针 = 局部_pe结构指针 + 4 + 20 + 局部_映像和数据目录大小 - 128
内存64_读整数型 (进程句柄, 局部_数据目录指针, 局部_导出表偏移
)局部_导出表指针 = 模块地址 + 局部_导出表偏移
内存64_读整数型 (进程句柄, 局部_导出表指针 + 16, 局部_起始序号
)内存64_读整数型 (进程句柄, 局部_导出表指针 + 20, 局部_函数入口数目
)内存64_读整数型 (进程句柄, 局部_导出表指针 + 24, 局部_函数名称数目
)内存64_读整数型 (进程句柄, 局部_导出表指针 + 28, 局部_函数入口偏移
)内存64_读整数型 (进程句柄, 局部_导出表指针 + 32, 局部_函数名称偏移
)内存64_读整数型 (进程句柄, 局部_导出表指针 + 36, 局部_函数序号偏移
)
如果真 (局部_函数名称数目 < 1
且 局部_函数入口数目 ≥ 局部_函数名称数目
)
返回 (0
)局部_函数入口指针 = 模块地址 + 局部_函数入口偏移局部_函数名称指针 = 模块地址 + 局部_函数名称偏移
局部_函数序号指针 = 模块地址 + 局部_函数序号偏移
计次循环首 (局部_函数名称数目, i
)
内存64_读整数型 (进程句柄, 局部_函数名称指针
(i - 1
) × 4, 局部_函数名称偏移
)
内存64_读文本型 (进程句柄, 模块地址 + 局部_函数名称偏移, 局部_枚举导出函数.函数名称
)
内存64_读短整数型 (进程句柄, 局部_函数序号指针
(i - 1
) × 2, 局部_函数入口序号位置
)
局部_枚举导出函数.函数序号 = 局部_起始序号 + 局部_函数入口序号位置
内存64_读整数型 (进程句柄, 局部_函数入口指针 + 局部_函数入口序号位置 × 4, 局部_函数入口偏移
)
局部_枚举导出函数.函数入口 = 模块地址 + 局部_函数入口偏移
加入成员 (局部_枚举导出函数数组, 局部_枚举导出函数
)
计次循环尾 ()枚举结果 = 局部_枚举导出函数数组
返回 (取数组成员数 (局部_枚举导出函数数组
))