Solving UnCrackable Android App Level 1 with Runtime Mobile Security (RMS), based on this video
WARNING
This tutorial is under construction!
| Version | 2022.04.08 |
|---|---|
![]() |
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License |
| [How To Install Node.js 14 on Ubuntu 22.04 | 20.04 | 18.04](https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/) |
NOTE
This tutorial might not work with an Android Virtual Device due to the limitations of the used tools. These instructions were tested on a Samsung A40 running Android 10.
> npm install -g rms-runtime-mobile-security
frida-server is up and running on the target device and make a quick test:> frida-ps -Uai
PID Name Identifier
---- ----------------------- ---------------------------------------
2164 Calendar com.google.android.calendar
1297 Google com.google.android.googlequicksearchbox
...
> rms
RMS - Runtime Mobile Security
Version: 1.5.11
by @mobilesecurity_
Twitter Profile: https://twitter.com/mobilesecurity_
_________________________________________________________
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
[http://127.0.0.1:5000/](http://127.0.0.1:5000/) and this is how it looks:
On Device detected you should see your Android Emulator.
NOTE
If RMS is not able to detect your device, please perform the following checks:
- check if
frida-serveris up and running on the target deviceRMSmust be started afterfrida-server- make sure that only 1 device is connected to your computer,
RMSis currently not able to detect multiple devices- kill
RMSand start it again
There are two steps to solve this challenge:
First, download the UnCrackable-Level1.apk app, then install it:
> adb install UnCrackable-Level1.apk
Success
Now, run the Uncrackable1 app and you should see this error message:

The app is able to detect that it’s running on a rootedf device and exists. This is a common security mechanism used to prevent man-in-the-middle attacks. However, this is exactly want we want to do in order to study the app behaviour.
The next step is to trick the app to believe the device isn’t rooted. This can be acheived with a frida script, but RMS already has some built-in scripts for thid purpose. The next steps are:
Mobile OS choose AndroidPackage name type owasp.mstg.uncrackable1
frida-ps -Uai will list all installed apps and their namesLoad Default Frida Scripts and choose [24] system_exit_bypass.js (the number might be different depending on the installed version)Start RMSUncrackable1 should be open and show the same Root detected error
OK?test in the Enter the Secret String field and click VERIFY
On the RMS tool:
Load ClassesInsert a FilterHook all classes that start with field the text sg.vantagepointSubmit3. Load Methods4. Hook all methods buttonOn the Android device:
VERIFY button againHere’s what you should have now on RMS

Still on RMS:
Dump TAB and check that the public void verify() is listedLoad Frida Script tab[25] - tracer_cipher.js (the number might be different depending on the installed RMS version)Run Custom Frida ScriptOn the Android device:
VERIFY button againOn RMS tool:
Global Console Output
