Skip to content

在子线程做dalvik hook,线程退出以后Hook失效 #9

@alhah

Description

@alhah

11-07 21:36:23.092 2589 2589 E AndroidRuntime: java.lang.IllegalArgumentException: wrong number of arguments; expected 1114564912, got 2

从代码流程看是info指针或者bakMethod指针失效,gdb跟踪(ArrayObject *) info->paramTypes,发现会被memset, fork等函数修改,在主线程调用java_method_hook就无此问题

HookInfo *info = (HookInfo *) malloc(sizeof(HookInfo));
......
Method *bakMethod = (Method *) malloc(sizeof(Method));
Memcpy(bakMethod, method, sizeof(Method));
info->originalMethod = (void *) bakMethod;
......
method->insns = (u2 *) info;
......
HookInfo *info = (HookInfo *) method->insns;

pResult->l = (void *) dvmInvokeMethod(thisObject, originalMethod, argTypes,
                                      (ArrayObject *) info->paramTypes,
                                      (ClassObject *) info->returnType, true);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions