1

There are two or even more Android applications that somehow interact with each other:

Application A invokes application B or sends request to it directly or via third application C. I don't have the source code for any of these applications. Are there any tools that I can use to perform dynamic analysis of this interaction. Preferably on Windows. I'd like to understand how these application interact.

I'm thinking about the following scenario.

  • Connect a physical Android device to a PC
  • Initiate the function which involves interaction between the applications
  • Use some tool which can show which application/view is currently active on the device

How is this done? How do I find out which part of application A initiates this interaction. And which part of application B is responsible for serving the request from the application A.

1 Answer 1

1

If apps communicate they usually use the Intent system of Android (see Google example Send simple data to other apps).

On a rooted device you can hook those calls using Frida and hook the method startActivity/startActivities methods of the Context class in all three apps.

I would try this command:

frida-trace -U -f <app package name> -j "android.content.Context!startActi*"

frida-trace will create for each hooked method a .js file in the subdirectory __handlers__. This file contains the logging code that is executed when the method is executed. If the intent argument is not correctly printed you can modify the .js file(s) and change the logging code for e.g. printing sub-elements that are not covered by the standard .toString() implementation. Even modifications are possible.

1
  • If I'm not mistaken, a standard logcat also lists the fired Intents, although probably not that detailed.
    – Andrew T.
    Commented Sep 4 at 8:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.