我正在尝试制作一个自我修改的代码库,但我已经满脑子都是,我有以下代码:
typedef int (*FUNC) (void);
int test();
JNIEXPORT int Java_com_example_untitled_MyActivity_decrypt( JNIEnv* env, jobject thiz)
{
void *code = mmap(NULL, 4, PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (code != MAP_FAILED) {
memcpy(code, test, 4);
return ( (FUNC)code)();
}
return 0;
}
int test()
{
return 100;
}
请帮助...我在Android上使用本机自修改代码作为我的起点,他们说了一些关于使用“-marm”和拇指位编译的内容...
我遇到的问题是,它只是崩溃了。我试过使用 cacheflush 功能,似乎没有帮助。我很茫然。