const char *DobbyBuildVersion();
int DobbyHook(void *address, void *replace_call, void **origin_call);
int DobbyDestroy(void *address);
void *DobbySymbolResolver(const char *image_name, const char *symbol_name);
int DobbyGlobalOffsetTableReplace(char *image_name, char *symbol_name,
void *fake_func, void **orig_func);
typedef enum {
kMemoryOperationSuccess,
kMemoryOperationError,
kNotSupportAllocateExecutableMemory,
kNotEnough,
kNone
} MemoryOperationError;
MemoryOperationError CodePatch(void *address, unsigned char *buffer,
unsigned int buffer_size);
void log_set_level(int level);
void log_switch_to_syslog();
void log_switch_to_file(const char *path);