首页
社区
课程
招聘
未解决 [求助]对 go 语言开发的程序进行hook 无效,被hook的地址出现部分垃圾代码。 10雪币
发表于: 2025-3-19 10:37 2429

未解决 [求助]对 go 语言开发的程序进行hook 无效,被hook的地址出现部分垃圾代码。 10雪币

2025-3-19 10:37
2429

图片描述
这个是需要hook的函数地址:0x00007FF78F56BEE2

1
2
3
4
5
6
7
8
9
Interceptor.attach(ptr('0x00007FF78F56BEE2'), {
    onEnter: function(args) {
        console.log('Function at 0x00007FF78F56BEE2 called');
    },
    onLeave: function(retval) {
        var rax_value = this.context.rax;
        console.log('rax value: ' + rax_value);
    }
});

以上代码我想等这个函数执行完返回rax的值

图片描述

hook 后成功 jmp,但进去看这个jmp跳转的代码块,是这样的:

图片描述

然后什么也没hook到,这个程序是go语言开发的,有人说go跟传统的c/c++

结构不一样,但我想hook这个函数地址该怎么实现呢?或者有其他办法吗,大哥们求解。


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
免费
支持
分享
最新回复 (18)
雪    币: 395
活跃值: (4936)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
golang有自己的go abi,函数调用不遵从stdcall什么的得自己兼容(应该)
这里有说具体的调用约定 https://go.googlesource.com/go/+/refs/heads/dev.regabi/src/cmd/compile/internal-abi.md
2025-3-19 20:38
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
go 语言的语法很好
2025-3-19 20:40
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
EX呵呵 golang有自己的go abi,函数调用不遵从stdcall什么的得自己兼容(应该) 这里有说具体的调用约定 https://go.googlesource.com/go/+/refs/heads ...
大哥,那有什么办法能实现这个功能吗,当函数执行完后获取rax地址,也能修改
2025-3-19 21:09
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
AL10000 go 语言的语法很好
体会到了
2025-3-19 21:10
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我觉得Google还没有那套防HOOK的尖端技术,估计,是你计算跳转地址的算法有问题,呵呵
2025-3-19 21:33
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
AL10000 我觉得Google还没有那套防HOOK的尖端技术,估计,是你计算跳转地址的算法有问题,呵呵
你尝试下,我觉得就是函数调用不遵从stdcall,用的是 abi,我已经尝试了多次了,不管是哪个位置,只要hook了,就有垃圾代码,程序是自己用go写的demo
2025-3-19 21:40
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
ACT忆梦 你尝试下,我觉得就是函数调用不遵从stdcall,用的是 abi,我已经尝试了多次了,不管是哪个位置,只要hook了,就有垃圾代码,程序是自己用go写的demo
我觉得如果你想要跳转到有效Call地址:7ff78f55f580 还是想要跳转到一个未知数据的地址:7ff78eaf0008 呢?!再有,JMP只能跳转4G以内的地址范围,建议在x64的环境下使用类似‘ret’大于4G地址范围的指令来进行“跳转”。
2025-3-19 21:52
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
AL10000 我觉得如果你想要跳转到有效Call地址:7ff78f55f580 还是想要跳转到一个未知数据的地址:7ff78eaf0008 呢?!再有,JMP只能跳转4G以内的地址范围,建议在x64的环境下使用类似 ...
可能说的不是我这个问题吧,我使用的是frida 进行hook,我要hook的目标地址是 7ff78f55f580 ,图片上已经显示了 jmp 了,而跳转到的地址是 frida 进行内存申请的地址,里面本应该写的是函数执行完后获取rax寄存器的地址,但我进去看jmp后的地址,发现并不是一个正常的代码执行流程,反而有垃圾代码的存在
2025-3-19 22:01
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
ACT忆梦 可能说的不是我这个问题吧,我使用的是frida 进行hook,我要hook的目标地址是 7ff78f55f580 ,图片上已经显示了 jmp 了,而跳转到的地址是 frida 进行内存申请的地址,里面 ...
不是吧,你看看左边的地址栏,你明明Hook的虚拟地址地址是00007ff78f56bee2呀,哪里是7ff78f55f580了
2025-3-19 22:06
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
AL10000 不是吧,你看看左边的地址栏,你明明Hook的虚拟地址地址是00007ff78f56bee2呀,哪里是7ff78f55f580了
说错了哈,我hook的就是00007ff78f56bee2,jmp跳转后的是 7ff78f55f580,就是这里面的代码不正常
2025-3-19 22:31
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
AL10000 不是吧,你看看左边的地址栏,你明明Hook的虚拟地址地址是00007ff78f56bee2呀,哪里是7ff78f55f580了
你不信可以用go写个demo,再用frida进行hook,会跟我同样的问题
2025-3-19 22:33
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
ACT忆梦 你不信可以用go写个demo,再用frida进行hook,会跟我同样的问题
估计,你用的HOOK库有问题,反正计算出的跳转地址不对,跳转到了一个未知的数据地址而不是call 7ff78f55f580 的地址,你可以参考下看雪论坛以往的帖子里面有关HOOK地址计算的算法
2025-3-19 22:52
0
雪    币: 156
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
ACT忆梦 你不信可以用go写个demo,再用frida进行hook,会跟我同样的问题
当然,如果你不是测试HOOK跳转到call地址,而是跳转到你申请的内存地址显示的是乱码的话可能是没有初始化内存,你可能也没有写入shellcode,建议跳转到自己编写好的模块函数地址。
2025-3-19 23:02
0
雪    币: 77
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
AL10000 当然,如果你不是测试HOOK跳转到call地址,而是跳转到你申请的内存地址显示的是乱码的话可能是没有初始化内存,你可能也没有写入shellcode,建议跳转到自己编写好的模块函数地址。
你想到的这些我也有想到,但都不是,你可以试试
2025-3-20 14:03
0
雪    币: 395
活跃值: (4936)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
ACT忆梦 大哥,那有什么办法能实现这个功能吗,当函数执行完后获取rax地址,也能修改
实在不行你拿go写个函数做hook吧
2025-3-20 15:06
0
雪    币: 395
活跃值: (4936)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
你参考Monkey Patch做呗
2025-3-20 15:08
0
雪    币: 144
活跃值: (687)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
ACT忆梦 你想到的这些我也有想到,但都不是,你可以试试[em_051]
golang程序我尝试用frida在mac下hook获取 IOPlatDeviceUUID都无法spawn,提示正在spawn程序都启动完了,还没开始hook = =至今都没想到好办法
2025-3-24 11:17
0
雪    币: 6010
活跃值: (783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
以前试过是可以用frida成功hook到的
2025-3-25 15:56
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册