Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

smali code does not include inner classes of inner classes #848

Closed
xmhwws opened this issue Feb 10, 2020 · 3 comments · Fixed by #849
Closed

smali code does not include inner classes of inner classes #848

xmhwws opened this issue Feb 10, 2020 · 3 comments · Fixed by #849
Labels
bug Core Issues in jadx-core module

Comments

@xmhwws
Copy link

xmhwws commented Feb 10, 2020

the lastest unstable jadx(v1.1.0-b1234-c24a3edb)
apk链接:https://drive.google.com/open?id=1Ij0MNPby7Jnd1vnvvjvWXE1MRmttdaXm

class name:flutter.rhes.top.flutterpluginrdsdk9.SdkHandler
Search for success in java
image

Search for success in smali
image

@xmhwws xmhwws added Core Issues in jadx-core module bug labels Feb 10, 2020
@jpstotz
Copy link
Collaborator

jpstotz commented Feb 10, 2020

This is not a search problem. The code of the inner class you are searching is just not included in the smali code.

The reason is that the SdkHandler class has inner classes that have inner classes that have inner classes... And currently only the first level of inner classes is included in the smali dump.

I will prepare a pull request that changes this behavior.

@jpstotz jpstotz changed the title [GUI]In smali, the search is abnormal smali code does not include inner classes of inner classes Feb 10, 2020
@skylot
Copy link
Owner

skylot commented Feb 10, 2020

@jpstotz thanks! I have merged PR.
But just now I realize that jadx can also inline anonymous classes that are not inner to the current class. So, we need somehow get a list of such inlined classes. Maybe an additional class attribute will work.

@jpstotz
Copy link
Collaborator

jpstotz commented Feb 10, 2020

@skylot Right, the lambda classes are also displayed inline.
A list of all inner classes that were included while generating the Java code would be the best option. Then the smali code would really include all relevant classes no matter what setting is active.

But generating this class list seems to be a little tricky as the outer ´ClassNode´ is not accessible where the actual inlining happens in InsGen. Or do you see a different way to get the information on the inlined classes?

skylot pushed a commit that referenced this issue Feb 11, 2020
…#848)

* fix: additionally show smali code of all inlined classes (recursively)
* variable name corrected
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Core Issues in jadx-core module
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants