Skip to main content

Hook your mobile tests with Frida

Project description

Frida Fusion

Hook your mobile tests with Frida.

 [ FRIDA ]—o—( FUSION )—o—[ MOBILE TESTS ] // v0.1.0
     > hook your mobile tests with Frida


optional arguments:
  -h, --help                                    show this help message and exit

Device selector:
  -D [ID], --device [ID]                        Connect to device with the given ID
  -U, --usb                                     Connect to USB device
  -R, --remote                                  Connect to remote frida-server
  -H [HOST], --host [HOST]                      Connect to remote frida-server on HOS

Application selector:
  -f [APP ID], --package [APP ID]               Spawn application ID
  -p [PID], --attach-pid [PID]                  Spawn application ID

General Setting:
  -s [path], --script-path [path]               JS File path or directory with Frida script
  --delay-injection                             Delay script injection
  --show-time                                   Display time
  -o [output file]                              Save output to disk (default: none)
  -l [level], --min-level [level]               Minimum log level to be displayed (V,D,I,W,E,F) (default: I)

Modules:
  --list-modules                                List available modules
  -m ENABLED_MODULES, --module ENABLED_MODULES  Enabled module by name. You can specify multiple values repeating the flag.

Install

pip3 install frida-fusion

Custom Frida script

You must provide a custom Frida script as usual. To do this you must provide -s/--script-path parameter.

# Just one file
frida-fusion -f [app_id] -U --script-path mytest.js

# A entire directory
frida-fusion -f [app_id] -U --script-path /tmp/scripts

Exposed JavaScript (frida) functions

The Frida Fusion define/expose several functions to be used at frida scripts. Follows the typedef of these functions.

# Send message/data to Frida-Fusion
void    fusion_sendMessage(String level, String message);
void    fusion_sendMessageWithTrace(String level, String message);
void    fusion_sendKeyValueData(String module, Object items);

# Print StackTrace
void    fusion_printStackTrace();

# Print all methods of class 'name'
void    fusion_printMethods(String name);

# Wait until the class 'name' exists in memory to execute the callback function
void    fusion_waitForClass(String name, CallbackFunction onReady)

# Conversions
byte[]  fusion_stringToBase64(String message);
String  fusion_bytesToBase64(byte[] byteArray);
String  fusion_encodeHex(byte[] byteArray);

Module engine

You can check available modules with frida-fusion --list-modules command.

frida-fusion --list-modules

 [ FRIDA ]—o—( FUSION )—o—[ MOBILE TESTS ] // v0.1.4
     > hook your mobile tests with Frida


Available modules
  Module Name     : Description
  Crypto          : Hook cryptography/hashing functions

External modules

You can develop or download community modules and load into frida-fusion.

To pass to the Frida Fusion the external module path you can use the environment variable FUSION_MODULES with the full path of modules

At linux:

export FUSION_MODULES=/tmp/modules

# List all modules
frida-fusion --list-modules

# Using available module
frida-fusion -f [app_id] -U --script-path mytest.js -m [module_name]

At windows:

$env:FUSION_MODULES = "C:\extra_mods"

# List all modules
frida-fusion --list-modules

# Using available module
frida-fusion -f [app_id] -U --script-path mytest.js -m [module_name]

Community modules

You can also use one of community developed modules

cd /tmp/
git clone https://github.com/helviojunior/frida-fusion-community-modules
export FUSION_MODULES=/tmp/frida-fusion-community-modules

# List all modules
frida-fusion --list-modules

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

frida_fusion-0.1.9.tar.gz (32.4 kB view details)

Uploaded Source

File details

Details for the file frida_fusion-0.1.9.tar.gz.

File metadata

  • Download URL: frida_fusion-0.1.9.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for frida_fusion-0.1.9.tar.gz
Algorithm Hash digest
SHA256 071f0634b5a6f1049ca2b93deceade849d41e47d55fff9bed528e9c9ac49f254
MD5 a7e2d4ab6a473cd0201d5f80615f1beb
BLAKE2b-256 f1f82ab1d4466c17b9ab8ac5ca470d79b2a4f8d6444859bb57321d3600bd3785

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page