I tried repackaging an Android app but after installation, when I launch that app, the app crashes immediately.
This is the exception I am getting when I decompile this application using
apktool and rebuild this application using apktool irrespective of any modifications done at the smali level or not.
exalvxhzn.█: 01 at exalvxhzn.▃.─(Unknown Source:68) at exalvxhzn.▃.━(Unknown Source:0) at java.lang.Runtime.nativeLoad(Native Method) at java.lang.Runtime.loadLibrary0(Runtime.java:1014) at java.lang.System.loadLibrary(System.java:1669) at exalvxhzn.╿.│(Unknown Source:43) at exalvxhzn.┇.─(Unknown Source:13) at exalvxhzn.┇.━(Unknown Source:24) at exalvxhzn.┇.━(Unknown Source:6) at androidx.core.app.CoreComponentFactory.<clinit>(Unknown Source:0) at java.lang.Class.newInstance(Native Method) at android.app.LoadedApk.createAppFactory(LoadedApk.java:229) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:733) at android.app.LoadedApk.getClassLoader(LoadedApk.java:812) at android.app.LoadedApk.getResources(LoadedApk.java:1034) at android.app.ContextImpl.createAppContext(ContextImpl.java:2357) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5821) at android.app.ActivityThread.access$1200(ActivityThread.java:200) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1673) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6810) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
When we launch an app, the flow of execution is
constructor -> applications sub-class
onCreate() ->launcher's activity
I tried few code injections at the starting of the
onCreate() as well as at the constructor level. The code injections, I did is regarding
- Insertion of Toast message
- A basic file creation at the internal storage (After installing , I gave the storage permission before launching the app)
I know that there are some anti-repackaging techniques which is applied on the app which resists repackaging. My questions are about:
- Even if an app has depolyed some anti-repackaging technqiues, then even if I am inserting a code (
Toastmessage/file creation) at the beginning of Application's sub-class
onCreate()method, then also shall I be able to see impact of the code modifications? For e.g. Will I be able to see my Toast messages or the file creation at the internal storage?
- Can I apply anti-repackaing technique, if I am only having the apk and not the source code?Like for e.g consider I have an Amazon apk, can I apply anti-repackaging technique on the Amazon apk?
- When we decompile an application, at smali level, which is the 1st function which gets executed when the app is launched?
- Is it like by applying an anti-repackaging technique, then instead of
onCreate(), some other method gets called first when we open the app?
- Why the above exception is coming even if I haven't done any code modifications at the smali level?
- At Smali level, which is the constructor which gets called first, is it the
It will be a big help if someone could give their valuable inputs on this. Thanks!!