V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lzy250
V2EX  ›  信息安全

提问:在 Linux 环境中运行的 go 二进制文件, 可以用什么工具 hook 呢

  •  
  •   lzy250 · 2023-10-18 19:30:51 +08:00 via iPhone · 2421 次点击
    这是一个创建于 400 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经通过 IDA 反编译拿到了函数名,但实在不知道还后续该如何 hook ,有哪位师傅能给点提示吗?

    第 1 条附言  ·  2023-10-23 08:58:56 +08:00
    #2023/10/21 已解决。
    之前尝试修改变量的思路有问题,后面用 dlv 调试了几次梳理了下解密逻辑,确定了加密用的的 CBC 模式、padding 方式和 aes_key ,正向手搓出来 license 了。
    13 条回复    2023-10-19 19:30:44 +08:00
    yuan1028
        1
    yuan1028  
       2023-10-18 19:54:41 +08:00 via Android
    dlv
    lzy250
        2
    lzy250  
    OP
       2023-10-18 20:09:02 +08:00 via iPhone
    @yuan1028 我试下。
    virusdefender
        3
    virusdefender  
       2023-10-18 23:32:52 +08:00
    gdb 或者 dlv 之类的调试器,其他的就是偏代码注入的,可以参考下 https://github.com/bytedance/Elkeid/tree/main/rasp/golang
    ysc3839
        4
    ysc3839  
       2023-10-19 00:40:39 +08:00 via Android
    inline hook
    moooonb
        5
    moooonb  
       2023-10-19 00:56:36 +08:00
    frida ,ebpf (bcc)
    learningman
        6
    learningman  
       2023-10-19 02:32:57 +08:00 via Android
    ptrace 呗,go 除了默认静态链接没啥不同的,就是一堆 runtime 调用比较乱,还有内置的 strip 不掉的符号
    lzy250
        7
    lzy250  
    OP
       2023-10-19 09:41:14 +08:00 via iPhone
    感谢,我再去试下上面的方式,有结论了 append 。
    smartdone
        8
    smartdone  
       2023-10-19 15:54:13 +08:00
    frida
    lzy250
        9
    lzy250  
    OP
       2023-10-19 17:27:06 +08:00
    打断点已经找到了这个 locals 对应的值,但是通过 set 无法修改这个结构体中变量的值, 请教下 dlv 是不能修改某个变量的值吗?
    @yuan1028
    lzy250
        10
    lzy250  
    OP
       2023-10-19 18:11:12 +08:00
    修改 int 类型的可以成功,但是修改字符串类型时就报错了。
    Command failed: literal string can not be allocated because function calls are not allowed without using 'call'
    lzy250
        11
    lzy250  
    OP
       2023-10-19 18:37:12 +08:00
    @lzy250 Delve 的 Set 仅允许数字类型和指针。。。https://pkg.go.dev/github.com/go-delve/delve/service/rpc2#RPCServer.Set
    yuan1028
        12
    yuan1028  
       2023-10-19 19:22:57 +08:00 via Android   ❤️ 1
    @lzy250 是的… dlv 我也是 debug 用的多,没用过 set 修改变量
    lzy250
        13
    lzy250  
    OP
       2023-10-19 19:30:44 +08:00
    @yuan1028 我明天再试下 ptrace 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3157 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:23 · PVG 20:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.