A dynamic Java code instrumentation SDK for Android apps to profile runtime, examine coverage, and track high-risk behaviors without source code.
ProbeDroid is a dynamic Java code instrumentation SDK for Android that allows developers to create custom analysis tools without needing the app's source code. It enables runtime profiling, code coverage examination, and tracking of high-risk behaviors by hooking into Java methods. The toolkit targets Android 5.0 and above, providing APIs to manipulate method inputs and outputs during app execution.
Android security researchers, performance engineers, and developers needing to analyze or modify app behavior dynamically without source access. It's particularly useful for those building custom instrumentation tools for profiling, debugging, or security auditing.
ProbeDroid offers a flexible, programmable approach to Android instrumentation using Java, eliminating the need for Android framework customization. Its method-level hooking and source-free analysis capabilities provide a unique advantage for dynamic behavioral exploration and runtime manipulation.
A SDK for the creation of analysis tools without obtaining app source code in order to profile runtime performance, examine code coverage, and track high-risk behaviors of a given app on Android 5.0 and above.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows developers to write custom instrument tools in Java, hooking methods and modifying inputs/outputs, as described in the programmable instrumentation feature for tailored analysis.
Deployment is succinct, requiring only the ProbeDroid engine and tools without Android framework changes, per the succinct deployment feature, simplifying setup.
Enables profiling and tracking of app behaviors without access to original source code, making it ideal for third-party app exploration, as highlighted in the key features.
Uses Java methods as the basic instrumentation unit for precise manipulation of runtime behavior, allowing detailed hooking and modification, as emphasized in the design philosophy.
Currently only supports Android 5.0 and devices based on Intel x86 and ARM eabi v7a, excluding newer Android versions and other architectures, which restricts usability.
Cannot instrument native methods, a stated limitation that reduces analysis depth for apps with C/C++ code, though it's under development.
The project is under construction, with more features planned, implying potential instability, incomplete documentation, and breaking changes.