查看: 548|回复: 16

三角洲行动:鹰式行动逆转、结构和偏移

[复制链接]
发表于 2026-7-1 10:40 | 显示全部楼层 |阅读模式
非法程序、 2026-7-1 10:40 548 16 显示全部楼层
我的 DLL 使用以下代码获取主模块基址:

HMODULE hostModule = GetModuleHandleA(nullptr);
targetAddress = (uintptr_t)hostModule + kTargetOffsetFromHostBase;

然后它在 targetAddress 上设置一个硬件执行断点,我的 VEH 检查:

ctx->Rip == targetAddress

旧的 RVA 为:

0x215F165

当前调试日志:

hostModule = 0x0000000140000000
旧 target = 0x14215F165
旧 offset = 0x215F165
VEH 安装成功
硬件断点安装成功
但 VEH 处理程序始终无法到达目标地址。

我需要的是主 EXE 模块中更新后的代码 RVA:

RVA = 运行时指令地址 - 主模块基址。

我不需要以下信息:
- 文件偏移量
- UObject 成员偏移量
- SDK 转储字段偏移量
- GWorld / GNames / GObjects 偏移量
- 类地址
- 虚函数表索引。

我需要一个可以这样使用的 RVA:

targetAddress = HostBase + RVA。target

应该是一条实际执行的指令。在旧的逻辑中,当断点命中时,处理程序会执行:

ctx->Rip += 5;
WriteContextXmm0Low64(ctx, 0x42340000);

因此,新的地址理想情况下应该与旧的指令/上下文假设相匹配。

我现在只有旧的 RVA,但我不确定它最初属于哪个函数。如有需要,我可以提供:
- 旧 RVA:0x215F165
- 当前 EXE 哈希值/版本
- 如有,提供新旧 EXE 二进制文件
- 如有,提供旧 RVA 周围的字节。

请以十六进制 RVA 的形式返回结果,例如:

0x1234567
游客,如果您要查看本帖隐藏内容请回复


发表于 2026-7-1 11:40 | 显示全部楼层
119793516 2026-7-1 11:40 显示全部楼层
拿走了吱一声!!!
回复

使用道具 举报

发表于 2026-7-1 12:07 | 显示全部楼层
XiiiAxel 2026-7-1 12:07 显示全部楼层
锄禾日当午,回帖真辛苦
回复

使用道具 举报

发表于 2026-7-1 13:02 | 显示全部楼层
感谢楼主分享!日常顶贴
回复

使用道具 举报

发表于 2026-7-1 15:38 | 显示全部楼层
拿走了吱一声!!!
回复

使用道具 举报

发表于 2026-7-1 15:51 | 显示全部楼层
qq4352447 2026-7-1 15:51 显示全部楼层
感谢楼主分享!日常顶贴
回复

使用道具 举报

发表于 2026-7-1 17:03 | 显示全部楼层
HUYA 2026-7-1 17:03 显示全部楼层
拿走了吱一声!!!
回复

使用道具 举报

发表于 2026-7-1 17:33 | 显示全部楼层
感谢楼主分享!日常顶贴
回复

使用道具 举报

发表于 2026-7-1 21:02 | 显示全部楼层
拿走了吱一声!!!
回复

使用道具 举报

发表于 2026-7-2 04:56 | 显示全部楼层
我是来刷分的,嘿嘿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表 发新帖

快速回复 返回顶部 返回列表