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

老哥,BYTESIG_TRY好像不能生效 #60

Closed AriaLyy closed 1 year ago

AriaLyy commented 1 year ago

bytehook Version

1.0.6

Android OS Version

13

Android ABIs

arm64-v8a

Device Manufacturers and Models

Pixel 5

Describe the Bug

老哥,我尝试使用BYTESIG_TRY,发现不能捕获异常,下面是我的测试代码

void init_once(void) {
//    bytesig_init(SIGSEGV);
//    bytesig_init(SIGBUS);
//    bytesig_init(SIGILL);
    bytesig_init(SIGTRAP);
    // ......
}

void crashTest1(void) {
    int i;
    init_once();
    LOG("crashTest");
    int *p = NULL;
    BYTESIG_TRY(SIGABRT)
            {
//                call_some_native_function();
                *p = 2;
            }
        BYTESIG_CATCH(signum, code)
            {
                LOG("signum %d (code %d)", signum, code);
            }
            BYTESIG_EXIT
}

使用这测试代码后,发现还是会出现崩溃 image

AriaLyy commented 1 year ago

我看bhook 中有很多关键代码都使用了BYTESIG_TRY,是否也会出现捕获不到异常导致崩溃呢?

AriaLyy commented 1 year ago

抱歉,是我这边测试时少初始化了两个信号。。