katnip.controllers.server.frida module

Frida based controllers for server fuzzing.

class katnip.controllers.server.frida.FridaLaunchServerController(name, logger, device_path, argv, js_script=None)

Bases: kitty.controllers.base.BaseController

This controller uses frida to launch an application. You can pass JS script so kitty will be able to detect failures using Frida’s capabilities.

Example:
js_code = """
Interceptor.attach(ptr(failure_func_addr), {
    onEnter: function(args) {
        send('[kitty:failed] this function should never be called!');
    }
});

"""
ctl = FridaLaunchServerController('fritty', None, 'local', ['someproc'], js_code)
__init__(name, logger, device_path, argv, js_script=None)
Parameters:
  • name – name of the object
  • logger – logger for the object
  • device_path – frida target device path
  • argv (list of str) – arguments to launch the application
  • js_script (str) – JS script to run on the target. in this script you can perform hooks and detect “failures” on the device. if a failure is detected, call send(‘[kitty:failed] (reason)’); from JS. if somehow a pass is detected, call send(‘[kitty:passed] (reason)’); from JS. (default: None)
post_test()
pre_test(test_number)
setup()
teardown()