You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Frida supports interaction with the Android Java runtime through the [Java API](https://www.frida.re/docs/javascript-api/#java"Frida - Java API"). You'll be able to hook and call both Java and native functions inside the process and its native libraries. Your JavaScript snippets have full access to memory, e.g. to read and/or write any structured data.
@@ -15,16 +16,13 @@ Here are some tasks that Frida APIs offer and are relevant or exclusive to Andro
15
16
16
17
Remember that on Android, you can also benefit from the built-in tools provided when installing Frida, which include the Frida CLI (`frida`), `frida-ps`, `frida-ls-devices`, and `frida-trace`, to name some of them.
17
18
18
-
Frida is often compared to Xposed. However, this comparison is far from fair, as both frameworks were designed with different goals in mind. This is important to understand as an app security tester so that you can know which framework to use in which situation:
19
+
Frida is often compared to @MASTG-TOOL-0027 or @MASTG-TOOL-0149. However, this comparison is far from fair, as both frameworks were designed with different goals in mind. This is important to understand as an app security tester so that you can know which framework to use in which situation:
19
20
20
21
- Frida is standalone. All you need is to run the frida-server binary from a known location in your target Android device (see "Installing Frida" below). This means that, in contrast to Xposed, it is not _deep_ installed in the target OS.
21
22
- Reversing an app is an iterative process. As a consequence of the previous point, you obtain a shorter feedback loop when testing, as you don't need to (soft) reboot to apply or simply update your hooks. So you might prefer to use Xposed when implementing more permanent hooks.
22
23
- You may inject and update your Frida JavaScript code on the fly at any point during the runtime of your process (similarly to Cycript on iOS). This way, you can perform the so-called _early instrumentation_ by letting Frida spawn your app, or you may prefer to attach to a running app that you might have brought to a certain state.
23
24
- Frida can handle both Java and native code (JNI), allowing you to modify both of them. This is, unfortunately, a limitation of Xposed, which lacks native code support.
24
25
25
-
!!! note
26
-
Xposed, as of early 2019, does not yet work on Android 9 (API level 28).
nm is a tool that displays the name list (symbol table) of the given binary. You can find here more information for the [Android (GNU)](<https://ftp.gnu.org/old-gnu/Manuals/binutils-2.12/html_node/binutils_4.html>"nm -binutils") version.
7
+
nm is a tool that displays the name list (symbol table) of the given binary. [More information for the Android (GNU)](https://ftp.gnu.org/old-gnu/Manuals/binutils-2.12/html_node/binutils_4.html"nm -binutils") version.
[adb](https://developer.android.com/studio/command-line/adb"Android Debug Bridge") (Android Debug Bridge), shipped with the Android SDK, bridges the gap between your local development environment and a connected Android device. You'll usually leverage it to test apps on the emulator or a connected device via USB or Wi-Fi. Use the `adb devices` command to list the connected devices and execute it with the `-l` argument to retrieve more details on them.
7
+
adb, shipped with the Android SDK, bridges the gap between your local development environment and a connected Android device. You'll usually leverage it to test apps on the emulator or a connected device via USB or Wi-Fi. Use the `adb devices` command to list the connected devices and execute it with the `-l` argument to retrieve more details on them.
The Android NDK contains prebuilt versions of the native compiler and toolchain. Both the GCC and Clang compilers have traditionally been supported, but active support for GCC ended with NDK revision 14. The device architecture and host OS determine the appropriate version. The prebuilt toolchains are in the `toolchains` directory of the NDK, which contains one subdirectory for each architecture.
Local Android SDK installations are managed via Android Studio. Create an empty project in Android Studio and select **Tools** -> **SDK Manager** to open the SDK Manager GUI. The **SDK Platforms** tab is where you install SDKs for multiple API levels. Recent API levels are:
The official IDE for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development - <https://developer.android.com/studio/index.html>
7
+
Android Studio is the official IDE for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.
deprecation_note: The Cydia Substrate framework for Android is no longer maintained, and the last update was in 2015. As a result, Android-SSL-TrustKiller is not compatible with modern Android versions and should not be used for testing SSL certificate pinning bypasses on current devices.
Android-SSL-TrustKiller is a Cydia Substrate Module acting as a blackbox tool to bypass SSL certificate pinning for most applications running on a device - <https://github.com/iSECPartners/Android-SSL-TrustKiller>
10
+
Android-SSL-TrustKiller is a Cydia Substrate Module acting as a blackbox tool to bypass SSL certificate pinning for most applications running on a device.
[APKiD](https://github.com/rednaga/APKiD) gives you information about how an APK was made. It identifies many compilers, packers, obfuscators, and other weird stuff.
7
+
APKiD gives you information about how an APK was made. It identifies many compilers, packers, obfuscators, and other weird stuff.
8
8
9
9
For more information on what this tool can be used for, check out:
-[Detecting Pirated and Malicious Android Apps with APKiD](https://rednaga.io/2016/07/31/detecting_pirated_and_malicious_android_apps_with_apkid/)
13
13
-[APKiD: PEiD for Android Apps](https://github.com/enovella/cve-bio-enovella/blob/master/slides/bheu18-enovella-APKID.pdf)
14
14
-[APKiD: Fast Identification of AppShielding Products](https://github.com/enovella/cve-bio-enovella/blob/master/slides/APKiD-NowSecure-Connect19-enovella.pdf)
[APKLab](https://github.com/APKLab/APKLab"APKLab")is a convenient Visual Studio Code extension leveraging tools such as @MASTG-TOOL-0011 and @MASTG-TOOL-0018 to enable features including app unpacking, decompilation, code patching (e.g. for MITM), and repackaging straight from the IDE.
7
+
APKLabis a Visual Studio Code extension leveraging tools such as @MASTG-TOOL-0011 and @MASTG-TOOL-0018 to enable features including app unpacking, decompilation, code patching (e.g. for MITM), and repackaging straight from the IDE.
8
8
9
9
For more information, you can refer to [APKLab's official documentation](https://apklab.surendrajat.xyz/).
0 commit comments