Charlie is an tool for collecting fingerprints in Android Webview. It relies on an dynamic instrumentation based on Frida. It currently supports monkey testing to increase coverage.
You can find charlie
in the charlie
directory.
Charlie requires the following dependencies:
- Python 3 with pip
- Frida Dynamic Instrumentation
- Android SDK - You need to have the Android SDK and initialize the
ANDROID_SDK_ROOT
environment variable. Install it with Android Studio or install it from command line tools.
Charlie is a python script and can be run via python within the charlie
directory. As of now, it is necessary to run Charlie on an emulated device. PLEASE DON'T RUN CHARLIE ON A PERSONAL DEVICE, YOU MIGHT LOOSE INSTALLED APPS.
First, you need to setup Frida server. Follow these instructions (https://frida.re/docs/android/) to setup Frida.
Next, you can run charlie via the python script python3 charlie.py
. Please ensure that you run charlie
from charlie
directory. You need to specify the apk file [-a]
or the directory containing a bunch of apk files [-d]
. By default, it uses 127.0.0.1 and 5037 as adb client and port.
$ python3 charlie.py -a <path to apk>
Alternatively, you can also run it for all apps within a directory.
$ python charlie.py -d <path/to/dir>
Charlie usage
usage: charlie.py [-h] [-l ADB_HOST] [-p ADB_PORT] (-d DIRECTORY | -a APK_FILE)
options:
-h, --help show this help message and exit
-l ADB_HOST adb hostname (default=127.0.0.1)
-p ADB_PORT adb port (default=5037)
-d DIRECTORY analyze all apk files in the directory
-a APK_FILE analyze apk
- Alimerdan Rahimov (alimerdan.rahimov@gmail.com)
- Jyoti Prakash (jpksh90@gmail.com)
- Abhishek Tiwari (mig40000@gmail.com)