about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTheofilos Augoustis <theofilos.augoustis@gmail.com>2024-07-28 15:47:00 +0200
committerTheofilos Augoustis <theofilos.augoustis@gmail.com>2024-07-28 15:47:00 +0200
commit4f005b2917ff83acb966495741487029ab34ab1a (patch)
treeb122b08138eb11104bc1cea5c6766f59f7ea8678
parent243aaa08afd66f1b409774693b716e30fa9ffacc (diff)
downloadfocaccia-4f005b2917ff83acb966495741487029ab34ab1a.tar.gz
focaccia-4f005b2917ff83acb966495741487029ab34ab1a.zip
Enable Focaccia's logging in capture_transforms.py
Disable Miasm's disassembly logger by default. Enable Focaccia's
symbolic execution logger.

Also refactor envp construction to use the `utils.get_envp` function.
-rw-r--r--focaccia/symbolic.py10
-rwxr-xr-xtools/capture_transforms.py11
2 files changed, 10 insertions, 11 deletions
diff --git a/focaccia/symbolic.py b/focaccia/symbolic.py
index d5475a6..6338a14 100644
--- a/focaccia/symbolic.py
+++ b/focaccia/symbolic.py
@@ -22,7 +22,11 @@ from .snapshot import ProgramState, ReadableProgramState, \
                       RegisterAccessError, MemoryAccessError
 from .trace import Trace, TraceEnvironment
 
-warn = logging.warning
+logger = logging.getLogger('focaccia-symbolic')
+warn = logger.warn
+
+# Disable Miasm's disassembly logger
+logging.getLogger('asmblock').setLevel(logging.CRITICAL)
 
 def eval_symbol(symbol: Expr, conc_state: ReadableProgramState) -> int:
     """Evaluate a symbol based on a concrete reference state.
@@ -619,8 +623,8 @@ def collect_symbolic_trace(env: TraceEnvironment,
             instr = ctx.mdis.dis_instr(pc)
         except:
             err = sys.exc_info()[1]
-            warn(f'[WARNING] Unable to disassemble instruction at {hex(pc)}:'
-                 f' {err}. Skipping.')
+            warn(f'Unable to disassemble instruction at {hex(pc)}: {err}.'
+                 f' Skipping.')
             target.step()
             continue
 
diff --git a/tools/capture_transforms.py b/tools/capture_transforms.py
index 5a104c0..552b855 100755
--- a/tools/capture_transforms.py
+++ b/tools/capture_transforms.py
@@ -1,12 +1,10 @@
 #!/usr/bin/env python3
 
 import argparse
-import logging
-import os
 
-from focaccia import parser
+from focaccia import parser, utils
 from focaccia.symbolic import collect_symbolic_trace
-from focaccia.trace import Trace, TraceEnvironment
+from focaccia.trace import TraceEnvironment
 
 def main():
     prog = argparse.ArgumentParser()
@@ -20,10 +18,7 @@ def main():
                       help='Name of output file. (default: trace.out)')
     args = prog.parse_args()
 
-    logging.disable(logging.CRITICAL)
-    env = TraceEnvironment(args.binary,
-                           args.args,
-                           [f'{k}={v}' for k, v in os.environ.items()])
+    env = TraceEnvironment(args.binary, args.args, utils.get_envp())
     trace = collect_symbolic_trace(env, None)
     with open(args.output, 'w') as file:
         parser.serialize_transformations(trace, file)