From d6590525cc85eb86009024be6a2ac3882bf34334 Mon Sep 17 00:00:00 2001 From: pancake Date: Fri, 12 Apr 2024 17:08:57 +0200 Subject: [PATCH] Honor `:e hook` options from traces coming from plugins --- src/agent/log.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/agent/log.ts b/src/agent/log.ts index 8befde2f..e0d8965d 100644 --- a/src/agent/log.ts +++ b/src/agent/log.ts @@ -20,7 +20,29 @@ export function traceEmit(msg: string) { r2frida.logs = logs; } -export function traceLog(msg: string) { +function objtrim(msg: any, field: string) : string { + try { + const obj = JSON.parse(msg); + delete obj[field]; + msg = JSON.stringify(obj); + } catch (e) { + try { + delete msg[field]; + } catch (e2) { + } + } + return msg; +} + +export function traceLog(msg: any|string) { + if (!config.getBoolean('hook.time')) { + msg = objtrim(msg, 'ts'); + } + if (!config.getBoolean('hook.backtrace')) { + msg = objtrim(msg, 'backtrace'); + } + msg = objtrim(msg, 'scope'); + msg = objtrim(msg, 'type'); if (config.getBoolean('hook.verbose')) { send(wrapStanza('log', { message: msg