Skip to content

Hidden method unfound #33

Open
Open
@srdr0p

Description

@srdr0p

In some obfuscation cases (such as YD), most of the dex code is retained, but some parts are stripped from dex.
Example: XXX calls YYY and ZZZ, where YYY and ZZZ are hidden.
Expected: It should be possible to locate the names of hidden methods by searching for methods in the dex code.
Actual: Iteratoring over XXX.getInvokes() can discover YYY or ZZZ, but using XXX.getInvokes().findMethod() fails to find them.

Example code:

MethodData XXX = istenerClassRes.findMethod(FindMethod.create().matcher(MethodMatcher.create().name("XXX"))).single();
MethodDataList xxxcalls = XXX.getInvokes();
for (MethodData xxxcall: xxxcalls) {
    log(xxxcall.getReturnTypeName()); // one of  can output "boolean"
}
// following code throws exception
XXX.getInvokes().findMethod(FindMethod.create().matcher(MethodMatcher.create().returnType(boolean.class))).single();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions