| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Fix incorrect docstring for write_register ta/docs | Theofilos Augoustis | 2025-10-16 | 1 | -1/+1 |
| | | |||||
| * | Update README to include information about running helper tools | Theofilos Augoustis | 2025-10-16 | 1 | -1/+12 |
| | | |||||
| * | Simplify issue 2248 reproducer ta/arm64 | Theofilos Augoustis | 2025-10-14 | 1 | -4/+12 |
| | | |||||
| * | Update to new Miasm version with support for ldsmaxb | Theofilos Augoustis | 2025-10-14 | 3 | -5/+8 |
| | | |||||
| * | Add better diagnostic for incorrect symbolic expressions | Theofilos Augoustis | 2025-10-14 | 1 | -3/+6 |
| | | |||||
| * | Add indentation to any and all Focaccia dunmps to make the human-inspectable | Theofilos Augoustis | 2025-10-14 | 1 | -1/+1 |
| | | |||||
| * | Dump Focaccia symbolic equations with indentation (to help debugging) | Theofilos Augoustis | 2025-10-10 | 1 | -1/+1 |
| | | |||||
| * | More alternatives for accessing aarch64 vectors | Theofilos Augoustis | 2025-10-09 | 1 | -1/+4 |
| | | |||||
| * | Update QEMU validator to manually pass executable (necessary for cases where ↵ | Theofilos Augoustis | 2025-10-09 | 2 | -12/+36 |
| | | | | | GDB cannot determine the executable on its own, e.g. when we specify -march) | ||||
| * | Improve handling of vector reads when validating QEMU | Theofilos Augoustis | 2025-10-07 | 1 | -6/+17 |
| | | |||||
| * | Add basic indentation to the TraceEnvironment dumps to improve readability | Theofilos Augoustis | 2025-10-07 | 1 | -1/+1 |
| | | |||||
| * | Enable reading DCZID properly | Theofilos Augoustis | 2025-10-07 | 1 | -1/+9 |
| | | |||||
| * | Add support for reading DCZID host-side | Theofilos Augoustis | 2025-10-07 | 7 | -3/+65 |
| | | |||||
| * | Properly support TPIDR register | Theofilos Augoustis | 2025-10-07 | 2 | -3/+4 |
| | | |||||
| * | Add correct handling for Q<num> registers by converting them to the ↵ | Theofilos Augoustis | 2025-10-07 | 2 | -34/+75 |
| | | | | | (standard) V<num> form | ||||
| * | Make cross-validation of results with native execution optional | Theofilos Augoustis | 2025-10-07 | 3 | -21/+34 |
| | | |||||
| * | Add basic reproducer for issue 2248 with Focaccia (hacked, does not work yet) | Theofilos Augoustis | 2025-09-29 | 4 | -1/+28 |
| | | |||||
| * | Disable hardening to enable compiling non-PIE binaries on aarch64 | Theofilos Augoustis | 2025-09-29 | 1 | -0/+2 |
| | | |||||
| * | Add correct cross-compilation architecture for musl developer environment | Theofilos Augoustis | 2025-09-10 | 1 | -1/+1 |
| | | |||||
| * | Add support for running tests with flake check | Theofilos Augoustis | 2025-09-10 | 5 | -83/+164 |
| | | |||||
| * | Add descriptions to apps declared by flake | Theofilos Augoustis | 2025-09-10 | 1 | -0/+15 |
| | | |||||
| * | Fix handling of Focaccia dependencies | Theofilos Augoustis | 2025-09-01 | 3 | -26/+44 |
| | | |||||
| * | Refactor tool handling to match flake system | Theofilos Augoustis | 2025-08-28 | 7 | -22/+73 |
| | | |||||
| * | Migrate to LLDB from pylldb | Theofilos Augoustis | 2025-08-28 | 3 | -73/+96 |
| | | |||||
| * | Migrate to nix flakes, uv and pyproject toml for builds | Theofilos Augoustis | 2025-08-27 | 30 | -19/+663 |
| | | |||||
| * | Merge branch 'ta/develop' | Theofilos Augoustis | 2025-02-25 | 31 | -588/+3730 |
| |\ | |||||
| | * | Implement online verification of symbolic backend ta/develop | Theofilos Augoustis | 2024-10-14 | 7 | -106/+412 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Read instructions directly from program memory | Theofilos Augoustis | 2024-10-13 | 2 | -19/+32 |
| | | | | | | | | | | | | | | | Instead of loading an executable file and disassembling instructions from there, load instructions directly from the concrete execution's memory. This allows symbolic tracing to work for non-statically compiled executables as well as JIT-compiled code. | ||||
| | * | Enable Focaccia's logging in capture_transforms.py | Theofilos Augoustis | 2024-07-28 | 2 | -11/+10 |
| | | | | | | | | | | | | | | | Disable Miasm's disassembly logger by default. Enable Focaccia's symbolic execution logger. Also refactor envp construction to use the `utils.get_envp` function. | ||||
| | * | Add support for aarch64 | Theofilos Augoustis | 2024-07-12 | 10 | -88/+293 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Implement an architecture description for aarch64 - Add endianness information to the `Arch` class. - Move conversion from flags register to logical flag values from the calling code to the concrete targets (LLDB and GDB), which is the only point where we (have to) deal in flags registers. - Handle assembly/disassembly errors in serialization of SymbolicTransform - Move ProgramState's `arch` attribute into ReadableProgramState. Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Rework Focaccia's command line interface | Theofilos Augoustis | 2024-02-22 | 2 | -64/+132 |
| | | | |||||
| | * | Make symbolic equations more symbolic | Theofilos Augoustis | 2024-02-19 | 10 | -198/+413 |
| | | | | | | | | | | | | | Reduce the impact of concrete guidance on the process of calculating an instruction's symbolic equation. The resulting equations will contain less assumptions about the concrete state and thus be more generic. | ||||
| | * | Add hostname argument to `verify_qemu.py` | Theofilos Augoustis | 2024-02-15 | 1 | -6/+6 |
| | | | |||||
| | * | Rewrite symbolic tracing algorithm | Theofilos Augoustis | 2024-02-14 | 3 | -191/+139 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Store instructions in SymbolicTransformation | Theofilos Augoustis | 2024-02-08 | 6 | -59/+151 |
| | | | |||||
| | * | Basic reproducer generator setup | Theofilos Augoustis | 2024-02-02 | 9 | -21/+257 |
| | | | | | | | | | | | Co-authored-by: Alp Berkman <alp.berkman@no-reply.com> Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> | ||||
| | * | Extract matching algorithms into a module | Theofilos Augoustis | 2024-02-07 | 3 | -39/+108 |
| | | | | | | | | | | | | | | | | | We have: - Trace folding: Resolve mismatches in snapshot granularity - Trace matching: Resolve mismatches in program flow | ||||
| | * | Verify QEMU by abstracting over inconsistencies in trace logs via matching ↵ | Theofilos Augoustis | 2024-01-30 | 3 | -135/+288 |
| | | | | | | | | | | | | | | | algorithm Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Add ReadableProgramState interface | Theofilos Augoustis | 2024-02-02 | 4 | -71/+97 |
| | | | | | | | | | | | | | It often occurs that a function only wants to read values from a ProgramState, but not write them. The new interface ReadableProgramState captures this need. | ||||
| | * | Refactor comparison and user-facing logic | Theofilos Augoustis | 2024-01-24 | 5 | -102/+55 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Use symbolic execution to speed up QEMU testing | Theofilos Augoustis | 2024-01-22 | 5 | -169/+231 |
| | | | | | | | | | | | | | | | | | We don't need QEMU's log anymore, so we connect to a GDB server instance that the user has to start with `$ qemu -g <port> ...`. Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Refactor symbolic transformation handling | Theofilos Augoustis | 2024-01-17 | 9 | -209/+464 |
| | | | |||||
| | * | Refactor project structure | Theofilos Augoustis | 2023-12-31 | 17 | -121/+102 |
| | | | | | | | | | | | | | | | | | Read concrete state on demand during concolic exec During concolic tracing, don't record full program snapshots at each basic block, but instead read concrete values directly from the concrete target when they are needed. | ||||
| | * | Verify QEMU by converting logs to internal data format | Theofilos Augoustis | 2023-12-26 | 4 | -1/+274 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Extend error reporting system | Theofilos Augoustis | 2023-12-27 | 4 | -92/+169 |
| | | | | | | | | | | | Add error severities and the ability to filter for them. Include more information in comparison error messages. | ||||
| | * | Refactor parser.py (for gdb integration) | Theofilos Augoustis | 2023-12-26 | 1 | -25/+56 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Improve SparseMemory.write_memory performance | Theofilos Augoustis | 2023-12-26 | 2 | -8/+13 |
| | | | | | | | | | Reduce overhead of handling sparse memory | ||||
| | * | Implement symbolic comparison and match traces via Miasm | Theofilos Augoustis | 2023-12-14 | 10 | -293/+511 |
| | | | | | | | | | | | Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Adapt symbolic compare to new transform interface | Theofilos Augoustis | 2023-12-08 | 18 | -614/+278 |
| | | | | | | | | | | | | | | | | | | | | | | | | | Also implement a `MiasmSymbolicTransform.concat` function that concatenates two transformations. Some minor adaptions to the eval_expr code was necessary to remove some assumptions that don't work if the resolver state returns symbols instead of concrete values. Remove obsolete utilities that were used for angr. Co-authored-by: Theofilos Augoustis <theofilos.augoustis@gmail.com> Co-authored-by: Nicola Crivellin <nicola.crivellin98@gmail.com> | ||||
| | * | Replace symbolic execution tools with Miasm | Theofilos Augoustis | 2023-12-07 | 4 | -400/+317 |
| | | | | | | | | | | | | | | | | | | | Refactor SymbolicTransform interface a bit to include transformations of memory content. Implement it for Miasm as a backend. Move all symbolic execution things out of the test script (`miasm_test.py`) and move them to `symbolic.py` to replace the angr-based algorithms. | ||||