I tried to harden my APK from reverse engineering. I know it's impossible preventing decompile APK but I saw some APKs used a trick to throw exception apktool in decompile process (Not just APK tool, all of decompiler like QARK can't return a classes.dex APK), so I decided to do that for take longer time in reverse engineering
Here you can see some result of result of hardened application : winrar:winrar.winrar2
apktool:
sudo apktool d -f app/TTT.apk --keep-broken-res
I: Using Apktool 2.3.1-dirty on TTT.apk
I: Loading resource table...
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
W: Multiple types detected! ignored!
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/lab/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
Exception in thread "main" java.lang.NullPointerException
at brut.androlib.res.data.value.ResEnumAttr.serializeBody(ResEnumAttr.java:56)
at brut.androlib.res.data.value.ResAttr.serializeToResValuesXml(ResAttr.java:64)
at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResources.java:555)
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:269)
at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:132)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:124)
at brut.apktool.Main.cmdDecode(Main.java:163)
at brut.apktool.Main.main(Main.java:72)
Please explain for me, how it's possible ?(I need detail of implementation)