skylot / jadx

Dex to Java decompiler
Apache License 2.0
41.35k stars 4.85k forks source link

Partial anti-obtrusive Smali code can be packaged as a JAR #1205

Closed zgfflc closed 2 years ago

zgfflc commented 3 years ago

I can package some of the Smali code into a JAR call that didn't get mixed up before.However, in the case of confusion, it is possible that the JAR that Smali packaged is confused, and the rest of the code is not confused, resulting in inconsistency.I would like to make a suggestion that you can choose a package and package it in an anti-obfuscated way as a JAR so that the whole project can be decompiled successfully.

jpstotz commented 3 years ago

Ok, lets try to decipher your post which looks like it had been translated automatically.

You have an APK, that contains a JAR file with obfuscated ("confused") Smali code. This is the first part I don't understand, usually Smali code is source code in text files. Packing that in an JAR inside an APK doesn't make sense to me. May be you are referring to DEX files?

If you have an example APK file you should share it, may then it is getting more clear what you want to explain.

zgfflc commented 3 years ago

My purpose is to use JADX decompile out of the source reconstruction project.However, many source code decompilations are problematic and can only be packaged as a JAR, which increases the chances of restoring the entire project.

zgfflc commented 3 years ago

链接:https://pan.baidu.com/s/128UVHEtInn_6wlRqg9DMzw 提取码:8888

zgfflc commented 3 years ago

Now I upload a file, such as the Zxing package inside, I would like to pack into JAR, the problem is that the package can not be called.

jpstotz commented 3 years ago

Sorry but I don't think that I am able to help you. The download link you provided doesn't work or at least I can't get it to work even using the Google Translated version of the web site.

Additionally you are always talking about JAR files. Jadx is an Android decompiler that have very limited JAR support. The focus of Jadx is on APK files, not JAR files. For decompiling JAR files please use JD-Gui.

zgfflc commented 3 years ago

What I want to say is that you can set up a Smali package to package as a JAR, and the JADX decompilated source code calls the JAR successfully.This is conducive to the success of the entire confused APK decompilation source.

skylot commented 3 years ago

@jpstotz it is a wild guess, but maybe @zgfflc wants some kind of partial recompilation? So make it possible to recompile only some parts of java code in case of decompilation errors or other cases when only small part needs to be changed. I recently found jadx fork which try to achieve that: https://github.com/LucasBaizer/apkSpy. I am not sure if I will implement this in jadx, this looks like a lot of work, but it is possible :)

zgfflc commented 3 years ago

You're right. I just want to package some SmalI into jars. In fact, there are ready-made tools for Packaging Jars, smali2jar and dex2jar-2.0. But the problem I'm facing now is that if the confused projects are packaged, jadx can't be called because of anti obfuscation. You can think about whether there are any quick methods that are compatible with them. Thank you!

busmaker commented 3 years ago

Man, you can upload the APK to GitHub, add the .zip ext to file name.

zgfflc commented 3 years ago

app1.zip app2.zip app3.zip app4.zip

Because the compressed file is a little big, I divided it into four packages.Thank you!

kgti commented 3 years ago

Is this issue talking about ApkProtector / DexEncryptor / ApkRepack? Usually a custom ClassLoader is used to unpack / decrypt the real .dex file at runtime.