diff options
| author | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-11-25 14:06:12 +0000 |
|---|---|---|
| committer | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-11-25 15:19:12 +0000 |
| commit | 3cba96240118ea5a1a2a2abfca2fdd50be7f8c87 (patch) | |
| tree | 8780b2c129398ddf3e4a88213e3628d3f97fb63b | |
| parent | f4d35845df46a3f6598db345f5d40543420e4348 (diff) | |
| download | focaccia-3cba96240118ea5a1a2a2abfca2fdd50be7f8c87.tar.gz focaccia-3cba96240118ea5a1a2a2abfca2fdd50be7f8c87.zip | |
Add addresses to oracle log
| -rw-r--r-- | src/focaccia/native/tracer.py | 4 | ||||
| -rw-r--r-- | src/focaccia/parser.py | 1 | ||||
| -rw-r--r-- | src/focaccia/trace.py | 7 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/focaccia/native/tracer.py b/src/focaccia/native/tracer.py index b51de9f..eed5206 100644 --- a/src/focaccia/native/tracer.py +++ b/src/focaccia/native/tracer.py @@ -8,7 +8,7 @@ import logging from pathlib import Path from focaccia.utils import timebound, TimeoutError -from focaccia.trace import Trace, TraceEnvironment +from focaccia.trace import Trace, TraceContainer, TraceEnvironment from focaccia.miasm_util import MiasmSymbolResolver from focaccia.snapshot import ReadableProgramState, RegisterAccessError from focaccia.symbolic import SymbolicTransform, DisassemblyContext, run_instruction @@ -318,5 +318,5 @@ class SymbolicTracer: debug(f'Completed handling event: {post_event}') - return Trace(strace, self.env) + return TraceContainer(strace, self.env) diff --git a/src/focaccia/parser.py b/src/focaccia/parser.py index 60bf2af..4df14ec 100644 --- a/src/focaccia/parser.py +++ b/src/focaccia/parser.py @@ -35,6 +35,7 @@ def serialize_transformations(transforms: Trace[SymbolicTransform], """Serialize symbolic transformations to a text stream.""" data = json.dumps({ 'env': transforms.env.to_json(), + 'addrs': transforms.addresses, 'states': [t.to_json() for t in transforms], }, option=json.OPT_INDENT_2).decode() out_stream.write(data) diff --git a/src/focaccia/trace.py b/src/focaccia/trace.py index ffae8d5..6042108 100644 --- a/src/focaccia/trace.py +++ b/src/focaccia/trace.py @@ -69,9 +69,11 @@ class TraceEnvironment: class Trace(Generic[T]): def __init__(self, states: Iterable[T], + addresses: list[int], env: TraceEnvironment): self.env = env self._iter = states + self.addresses = addresses def __iter__(self): return iter(self._iter) @@ -81,7 +83,10 @@ class TraceContainer(Trace[T]): states: list[T], env: TraceEnvironment): self._state_list = states - super().__init__(iter(states), env) + addr_list = [] + for t in self._state_list: + addr_list.append(t.addr) + super().__init__(iter(states), addr_list, env) def __len__(self) -> int: return len(self._state_list) |