bytedance / bhook

:fire: ByteHook is an Android PLT hook library which supports armeabi-v7a, arm64-v8a, x86 and x86_64.
https://github.com/bytedance/bhook/tree/main/doc#readme
MIT License
2.05k stars 315 forks source link

hook不成功 #85

Open punkisnotdead3 opened 9 months ago

punkisnotdead3 commented 9 months ago

bytehook Version

1.0.9

Android OS Version

11

Android ABIs

arm64-v8a

Device Manufacturers and Models

vivo x60

Describe the Bug

是想hook libinput.so 里的 send和recv方法 来做onTouch事件的监听, 但是一直不成功 不知道为啥

//__socketcall ssize_t sendto(int __fd, const void* __buf, size_t __n, int __flags, const struct sockaddr* __dst_addr, socklen_t __dst_addr_length);
ssize_t send_proxy(int __fd, const void* __buf, size_t __n, int __flags, const struct sockaddr* __dst_addr, socklen_t __dst_addr_length) {
    LOGD("send_proxy");
    BYTEHOOK_STACK_SCOPE();
    return BYTEHOOK_CALL_PREV(send_proxy, __fd, __buf, __n, __flags,__dst_addr,__dst_addr_length);
}

//__socketcall ssize_t recvfrom(int __fd, void* __buf, size_t __n, int __flags, struct sockaddr* __src_addr, socklen_t* __src_addr_length);
ssize_t recv_proxy(int __fd, void* __buf, size_t __n, int __flags, struct sockaddr* __src_addr, socklen_t* __src_addr_length) {
    LOGD("recv_proxy");
    BYTEHOOK_STACK_SCOPE();
    return  BYTEHOOK_CALL_PREV(recv_proxy, __fd, __buf, __n, __flags,__src_addr,__src_addr_length);
}

    bytehook_hook_all("/system/lib/libinput.so", "sendto", (void *) send_proxy, nullptr, nullptr);
    bytehook_hook_all("/system/lib/libinput.so", "recvfrom", (void *) recv_proxy,
                      nullptr,
                      nullptr);
caikelun commented 7 months ago

你可以先确认下是否初始化了bytehook,再通过 hooked 参数的callback看看errno?