1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-21 15:49:30 +08:00
Files
Alas/blcrack/cracker/Dobby/source/dobby.cpp

32 lines
874 B
C++
Raw Normal View History

2025-11-01 00:23:46 +08:00
#include "dobby/dobby_internal.h"
#include "Interceptor.h"
__attribute__((constructor)) static void ctor() {
DEBUG_LOG("================================");
DEBUG_LOG("Dobby");
DEBUG_LOG("dobby in debug log mode, disable with cmake flag \"-DDOBBY_DEBUG=OFF\"");
DEBUG_LOG("================================");
}
PUBLIC const char *DobbyGetVersion() {
return __DOBBY_BUILD_VERSION__;
}
PUBLIC int DobbyDestroy(void *address) {
#if defined(TARGET_ARCH_ARM)
if ((addr_t)address % 2) {
address = (void *)((addr_t)address - 1);
}
#endif
auto entry = Interceptor::SharedInstance()->find((addr_t)address);
if (entry) {
uint8_t *buffer = entry->origin_insns;
uint32_t buffer_size = entry->origin_insn_size;
DobbyCodePatch(address, buffer, buffer_size);
Interceptor::SharedInstance()->remove((addr_t)address);
return 0;
}
return -1;
}