CACAO
Functions | Variables
patcher.cpp File Reference

Go to the source code of this file.

Functions

static void patch_helper_ldr (u1 *codeptr, s4 offset, bool isint)
 Helper function to patch in the correct LOAD instruction as we have ambiguity. More...
 
static void patch_helper_cmp_imm (u1 *codeptr, s4 offset)
 
static void patch_helper_mov_imm (u1 *codeptr, s4 offset)
 
void patcher_patch_code (patchref_t *pr)
 
bool patcher_resolve_classref_to_classinfo (patchref_t *pr)
 
bool patcher_resolve_classref_to_vftbl (patchref_t *pr)
 
bool patcher_resolve_classref_to_flags (patchref_t *pr)
 
bool patcher_get_putstatic (patchref_t *pr)
 
bool patcher_get_putfield (patchref_t *pr)
 
bool patcher_invokestatic_special (patchref_t *pr)
 
bool patcher_invokevirtual (patchref_t *pr)
 
bool patcher_invokeinterface (patchref_t *pr)
 
bool patcher_checkcast_interface (patchref_t *pr)
 
bool patcher_instanceof_interface (patchref_t *pr)
 

Variables

patcher_function_list_t patcher_function_list []
 

Function Documentation

static void patch_helper_cmp_imm ( u1 codeptr,
s4  offset 
)
static

Definition at line 76 of file patcher.cpp.

static void patch_helper_ldr ( u1 codeptr,
s4  offset,
bool  isint 
)
static

Helper function to patch in the correct LOAD instruction as we have ambiguity.

Definition at line 57 of file patcher.cpp.

static void patch_helper_mov_imm ( u1 codeptr,
s4  offset 
)
static

Definition at line 91 of file patcher.cpp.

bool patcher_checkcast_interface ( patchref_t pr)

Definition at line 526 of file patcher.cpp.

bool patcher_get_putfield ( patchref_t pr)

Definition at line 308 of file patcher.cpp.

bool patcher_get_putstatic ( patchref_t pr)

Definition at line 264 of file patcher.cpp.

bool patcher_instanceof_interface ( patchref_t pr)

Definition at line 572 of file patcher.cpp.

bool patcher_invokeinterface ( patchref_t pr)

Definition at line 477 of file patcher.cpp.

bool patcher_invokestatic_special ( patchref_t pr)

Definition at line 392 of file patcher.cpp.

bool patcher_invokevirtual ( patchref_t pr)

Definition at line 433 of file patcher.cpp.

void patcher_patch_code ( patchref_t pr)

Definition at line 114 of file patcher.cpp.

bool patcher_resolve_classref_to_classinfo ( patchref_t pr)

Definition at line 148 of file patcher.cpp.

bool patcher_resolve_classref_to_flags ( patchref_t pr)

Definition at line 225 of file patcher.cpp.

bool patcher_resolve_classref_to_vftbl ( patchref_t pr)

Definition at line 188 of file patcher.cpp.

Variable Documentation

patcher_function_list_t patcher_function_list[]
Initial value:
= {
{ PATCHER_initialize_class, "initialize_class" },
{ PATCHER_resolve_class, "resolve_class" },
{ PATCHER_resolve_classref_to_classinfo, "resolve_classref_to_classinfo"},
{ PATCHER_resolve_classref_to_vftbl, "resolve_classref_to_vftbl"},
{ PATCHER_resolve_classref_to_flags, "resolve_classref_to_flags"},
{ PATCHER_resolve_native_function, "resolve_native_function" },
{ PATCHER_invokestatic_special, "invokestatic_special" },
{ PATCHER_invokevirtual, "invokevirtual" },
{ PATCHER_invokeinterface, "invokeinterface" },
{ PATCHER_breakpoint, "breakpoint" },
{ PATCHER_checkcast_interface, "checkcast_interface" },
{ PATCHER_instanceof_interface, "instanceof_interface" },
{ PATCHER_get_putstatic, "get_putstatic" },
{ PATCHER_get_putfield, "get_putfield" },
{ NULL, "-UNKNOWN PATCHER FUNCTION-" }
}
#define PATCHER_resolve_classref_to_flags
#define PATCHER_invokeinterface
#define PATCHER_resolve_classref_to_vftbl
#define PATCHER_get_putfield
#define PATCHER_resolve_class
#define PATCHER_breakpoint
#define PATCHER_get_putstatic
#define PATCHER_instanceof_interface
#define PATCHER_resolve_native_function
#define PATCHER_checkcast_interface
#define PATCHER_invokestatic_special
#define PATCHER_invokevirtual
#define PATCHER_initialize_class
#define PATCHER_resolve_classref_to_classinfo

Definition at line 607 of file patcher.cpp.