matrix
matrix copied to clipboard
Memory Hook
// Init backtrace
if (is64BitRuntime()) {
WeChatBacktrace.instance()
.configure(application)
.setBacktraceMode(WeChatBacktrace.Mode.Fp)
.setQuickenAlwaysOn()
.commit();
} else {
WeChatBacktrace.instance()
.configure(application)
.warmUpSettings(WeChatBacktrace.WarmUpTiming.PostStartup, 0)
.directoryToWarmUp(WeChatBacktrace.getSystemFrameworkOATPath() + "boot.oat")
.directoryToWarmUp(
WeChatBacktrace.getSystemFrameworkOATPath() + "boot-framework.oat")
.commit();
}
try { HookManager.INSTANCE // Memory hook .addHook(MemoryHook.INSTANCE .addHookSo("libTest.so") .enableStacktrace(true) .stacktraceLogThreshold(0) .enableMmapHook(true) ) .commitHooks(); } catch (HookManager.HookFailedException e) { e.printStackTrace(); }
String output = LOG_DIR + "/memory_hook.log";
MemoryHook.INSTANCE.dump(output, output);
这样使用memory hook是正确的吗, 为什么没跑出预期的结果?
addHookSo 的参数应该是正则表达式,可以匹配包名来 hook 应用内所有 so,参考 demo 中的写法,或者 POSIX Basic Regular Expressions