Let's just assume that our classes.dex file has a class:


in which there's a method "meth":

public final com.example.MyClass.meth(java.lang.String p0)

how/where can I search the code of the method "meth" with the string "com.example.MyClass.meth"?

Because in the Local Types view I can only find the class but I can't reach the code and in the Names/Functions windows I can only search the method name (think what you can get with an obfuscated code) prefixed by the class name so there are a lot of duplicates.

FYI: IDA pro (I'm using the version 7) supports officially Dalvik bytecode disassembling and debugging.


What does work is a text search for a string like com.foo.bar.Method - press Alt+T in the disassembly, mark "Match case", "Identifier". This should help find you the actual method body, at least it's what I have been using.

I don't think it's ideal but also I don't know of a better way either. For bigger APKs this can be quite slow but at least it solves the problem.

| improve this answer | |

You're abusing IDA Pro, it's best in decompiling/disassembling code that has been actually compiled, not Java. While IDA Pro sort of supports Java decompilation (I guess you're interested in Android stuff), there are much more convenient decompilers for Java pseudocode. JEB is the best for Android, in my opinion. I haven't used it much recently, though.

Or even "decompile" the whole dex into a text file via and grep.


If you're looking at pure Java - again, tons of "decompilers". Even IntelliJ has a plugin :)

| improve this answer | |
  • Thanks for your answer, but imho you're wrong. IDA Pro supports officially Dalvik bytecode disassembling and debugging. Moreover it's a simple search feature in already available data... I'm not asking for the moon! – packmad Jan 14 '18 at 10:19

Your Answer

