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

[feature] support select multi dex files as input #936

Closed
gMan1990 opened this issue May 16, 2020 · 9 comments
Closed

[feature] support select multi dex files as input #936

gMan1990 opened this issue May 16, 2020 · 9 comments
Assignees
Milestone

Comments

@gMan1990
Copy link

gMan1990 commented May 16, 2020

like: dex encryption technology

@jpstotz
Copy link
Collaborator

jpstotz commented May 16, 2020

Jadx can can load APK files and APK files contain multiple dex files. Hence from my perspective "multi dex files" can already be loaded.

If this not what you had in mind please give more details.

@gMan1990
Copy link
Author

gMan1990 commented May 16, 2020

@jpstotz some apks use dynamic dex load, so can't read more java code from the original apk file.
so I get multi dex files from path /data/data/<id>/*.dex

@jpstotz
Copy link
Collaborator

jpstotz commented May 16, 2020

So you are not talking about "multi dex files" but multiple dex files you have downloaded manually from your device. That makes a significant difference!

@gMan1990
Copy link
Author

@jpstotz but the "multi dex files" all belong to one apk.

@bagipro
Copy link
Collaborator

bagipro commented May 18, 2020

@gMan1990
AFAIK those files are not official and distributed by APK-sharing sites with their own formats. In the most cases they are usual ZIP archives (but with e.g. .apks extensions). You should unzip such file and send to jadx package_name.apk file

@bagipro bagipro closed this as completed May 18, 2020
@gMan1990
Copy link
Author

gMan1990 commented Jul 10, 2020

bytecode-viewer support multi dex files, but can not select mult dex files in file explorer

@skylot
Copy link
Owner

skylot commented Jul 10, 2020

I think this can be done. Now jadx allows this internally, so we just need to expose this in cli and gui.
But we must prohibit loading several apks, because it is unclear how to merge several resource files (ids can override).
So in jadx-gui, I will add a menu button like Add DEX files which will allow loading several dex files or adding them to already loaded apk.

@skylot skylot reopened this Jul 10, 2020
@jackwpa
Copy link

jackwpa commented Jul 10, 2020

@gMan1990 tip: if you still need to do this you can use JEB, demo or else:

  • load your APK
  • open up the Terminal view
  • type use py
  • type jeb.getMainProject().findUnit(IDexUnit).addDex(FileInput(PATH_TO_ADDITIONAL_DEX))
  • done

I found this trick on this blog https://www.pnfsoftware.com/blog/reversing-dexguard-encryption/

@skylot skylot self-assigned this Jul 20, 2020
@skylot skylot added this to the v1.2.0 milestone Jul 20, 2020
@skylot
Copy link
Owner

skylot commented Nov 3, 2020

Done.
Now it is possible to select several files in open dialog, also there are new Add files button to add additional files to current project.
I don't add any restrictions but opening several apks will decode only one arsc file, so for now I think such behavior is ok.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants