public interface

IDEmulatorHooks

com.pnfsoftware.jeb.core.units.code.android.ir.IDEmulatorHooks

Class Overview

An interface for user-defined hooks called by dexdec's IR emulator when executing internal (in DEX) code.

Tutorial on how to use emulator hooks: in the JEB coreplugins/scripts/ folder, refer to DOptEmuHooksExample.py.DISABLED for an example in Python, DOptEmuHooksGlobalExample.java.DISABLED for an example in Java (remove the .DISABLED extension to enable the plugin).

See Also

Summary

Public Methods
abstract Wrapper<IDImm> examineMethodResult(long reqid, IDImm result)
This method is called after the emulator successfully executed the IR of an internal dex method.
abstract Wrapper<IDImm> invokeMethod(long reqid, String msig, List<IDImm> args)
This method is called when the emulator is about to execute the IR of an internal dex method.

Public Methods

public abstract Wrapper<IDImm> examineMethodResult (long reqid, IDImm result)

This method is called after the emulator successfully executed the IR of an internal dex method.

Parameters
reqid internal request id (matching the id provided to a previous call to invokeMethod)
result the execution result, which may be modified
Returns
  • the hook may provide an object (wrapped in a Wrapper object; the object itself may be null); returning null means proceed as normal (other hooks will be tried, and eventually, the emulator execution will resume and provide the original returned value)

public abstract Wrapper<IDImm> invokeMethod (long reqid, String msig, List<IDImm> args)

This method is called when the emulator is about to execute the IR of an internal dex method.

Parameters
reqid internal request id
msig target method to be executed
args the evaluated arguments (careful, the first entry is the object's `this` iff the target method is not static)
Returns
  • if non-null, the result will be used as the invocation return; if null, proceed (other hooks will be executed)