Open
Description
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
Labels
No labels