com.pnfsoftware.jeb.core.units.code.android.ir.IDEmulatorHooks |
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).
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.
| ||||||||||
abstract Boolean |
setField(long reqid, String fsig, IDImm obj, IDImm[] avalue)
This method is called when the emulator is about to set an internal field's value.
|
This method is called after the emulator successfully executed the IR of an internal dex method.
reqid | internal request id (matching the id provided to a previous call to
invokeMethod ) |
---|---|
result | the execution result, which may be modified |
This method is called when the emulator is about to execute the IR of an internal dex method.
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) |
This method is called when the emulator is about to set an internal field's value.
reqid | internal request id |
---|---|
fsig | field signature |
obj | field object, null if static |
avalue | a one-element array containing the value to be set (this is an input/output array; if this method returns false, the value located in the array will be used by the sandbox to set the field) |