These 51 commits are when the Protocol Buffers files have changed:
Commit: | b91183b | |
---|---|---|
Author: | Francesco Bertolaccini |
Export function epilogue address
Commit: | a4fa8f1 | |
---|---|---|
Author: | William Tan |
add true basic block address to spec
Commit: | 70209a8 | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
Basic pointer use heuristic (#402) * basic pointer fix * add binary addrs * spurious header * add type names * named types * default for null ty * fix typedef
Commit: | ebd47cc | |
---|---|---|
Author: | 2over12 |
add type names
Commit: | 71fc1eb | |
---|---|---|
Author: | 2over12 |
add binary addrs
Commit: | 9cfd0d6 | |
---|---|---|
Author: | William Tan | |
Committer: | GitHub |
Sleigh sparc (#387) * update link to empirehacking slack (#383) * use sparc sleigh * update submodule * bump remill * bump remill * update remill * pass build flags to remill for debug symbols * update remill * add noreturn flag * correctly handle noreturn pt1 * fix return value to also take into account noreturn * bump remill * bump remill * update remill * bump remill * bump remill * bump remill * bump remill * bump remill * adapt type for stack offsets * use specified register directly * bump remill * bump remill --------- Co-authored-by: James Olds <oldsj@users.noreply.github.com> Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | 610205a | |
---|---|---|
Author: | Eric Kilmer | |
Committer: | GitHub |
UID codeblocks refactor (#396) * Use UID for codeblocks * Fix BasicBlockContext lookups Fixes the missing literal_struct_2 issue * Test CI * Strong Uid typing * Cleanup and support parsing Json spec * Revert "Test CI" This reverts commit 4cfe2d955b1b70f2e3d0fd984cfd1e43b23a19a3. * Remove basic block address metadata Look up address using UID * Fix review comments and add entry_uid to function spec * Keep track of UID to CodeBlock mapping Useful for getting CodeBlock function addresses without a tracked function * point to compatible irene --------- Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | e04ff9d | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
Ian/allow for typehints in spec (#390) * add support for type hints after instructions * fix annotations to use intrinsics * remove spurious header * remove unrequired import * remove unused import
Commit: | c10af58 | |
---|---|---|
Author: | 2over12 |
add support for type hints after instructions
Commit: | 0a9dd3f | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | GitHub |
Add `required_globals` to spec (#386) * Add `required_globals` to spec * Make `required_globals` a set
Commit: | f213954 | |
---|---|---|
Author: | Francesco Bertolaccini |
Add `required_globals` to spec
Commit: | 09cef2b | |
---|---|---|
Author: | William Tan | |
Committer: | GitHub |
Add image base spec (#379) * add image base to spec * add image name to spec * add image base/name to anvill spec * use std::uint64_t * Use const ref where appropriate * fix dcheck * maintain backwards compat --------- Co-authored-by: Alex Cameron <asc@tetsuo.sh> Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | 9f5518c | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | GitHub |
Split symvals into equalities at entry and exit (#375) * Split symvals into equalities at entry and exit * Ignore assignments active at entry and exit * Factor out some code * More refactoring * Only pack live values at exit if not constant --------- Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | d709d4d | |
---|---|---|
Author: | Francesco Bertolaccini |
Split symvals into equalities at entry and exit
Commit: | df58f86 | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | GitHub |
Tail call control flow (#364) * Always pass all stack vars and regs to bb funcs * Read used registers from spec * Port commit from old PR * Fix ownership bug * Tail call by passing all the arguments * Fix compile error * Fix empty basic block function declarations * Use locally allocated storage for next_pc * Optimize after removing intrinsics to improve control flow * Lift function returns to native returns * look at all in scope vars at once * filter through all variables * only recover references for variables in scope in the block * add back permissiveness related to lives * Remove unused parameter * Remove unused passes * Use named constants for argument indices * Bump anvill to C++20 * Use default comparison when searching parameters * create empty decls as needed for bad edges * remove stale test script * Don't share basic blocks between functions * Relax type spec comparison --------- Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | 7197615 | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
Rework load lifted value and store native to operate over composite low level storage (#356) * hacky compiles * links * casts * first kinda working version * keep around entities * dont try to lift null return * add check * remove spurious check * bump remill * dont let passbuilder use default lib info
Commit: | 8231977 | |
---|---|---|
Author: | 2over12 |
casts
Commit: | 4e00513 | |
---|---|---|
Author: | 2over12 |
hacky compiles
Commit: | 7d84a1c | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
Respect taint pc flag when lifting constant symvals (#355) * update format * adapt types
Commit: | bb63282 | |
---|---|---|
Author: | 2over12 |
adapt types
Commit: | d976a2e | |
---|---|---|
Author: | 2over12 |
update format
Commit: | 3531c89 | |
---|---|---|
Author: | 2over12 |
continue refactor
Commit: | a47dcf4 | |
---|---|---|
Author: | 2over12 |
fixup proto
Commit: | e2c55bc | |
---|---|---|
Author: | 2over12 | |
Committer: | 2over12 |
rework representation of parameters to decouple names from locations
Commit: | 491541b | |
---|---|---|
Author: | William Tan | |
Committer: | GitHub |
Update CI (#345) * update path in script * update ignore list * run on large runner * Remove `LLVM_VERSION` compatibility checks for LLVM < 15 * Remove references to LLVM 14 in README and scripts * update macos version in matrix * Revert "update macos version in matrix" This reverts commit a19dd6713539fcbe75f9e15bf4cddd8d12964020. * bump anvill ci tools, add languageid overrides * handle created block with no terminator * add error for undecodeable instructions * bump java version * upload error logs on CI failure * tar + compress logs first * enable all ppc binaries except for challenge 10 * bump remill to fix infinite loop * more aggressively fix up terminators * prevent underflow and add parameter offset * handle cdi bugs by assuming the max depth is the stack depth * bump testing tool --------- Co-authored-by: Alex Cameron <asc@tetsuo.sh> Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | 02c8766 | |
---|---|---|
Author: | Alex Cameron | |
Committer: | GitHub |
PowerPC Support (#340) * PowerPC Support * Add PowerPC architecture to Protobuf specification * Pin Remill submodule to PPC branch * Fix inconsistency with mismatching address and PC reg size * Add PPC case to util functions * More address size fixes * Another address type fix * Log decoding error message * bump remill * bump cxx-common, drop llvm 14, bump mac runner * Bump Remill * Use `auto` where appropriate Co-authored-by: lkorenc <lukas.korencik@trailofbits.com> * Remove unused `injected_sret` * Use type aliases for function types * update deprecated CI * remove binja from ci * update path in script * lifting tools updates * update ignore list * run on large runner * update gh actions * Revert "update path in script" This reverts commit b51e67664e1a5bd427819bf5230c5cbdc155c35a. * Revert "lifting tools updates" This reverts commit 420546089b73ee5a58b27ef0d56a8183596a9c8b. * ABI fixes and comments * Bump Remill * Rename since EABI is based off SysV * Pin Remill to master * ignore go tests * upload error logs on CI failure * tar + compress logs first * enable globbing * fix shell syntax * reduce cores so build is less likely to race * decouple requirements from matrix name * bump lifting-tools-ci * remove ignore for ppc * fix missing comma * add language overrides * ignore hidden files --------- Co-authored-by: William Tan <1284324+Ninja3047@users.noreply.github.com> Co-authored-by: lkorenc <lukas.korencik@trailofbits.com> Co-authored-by: 2over12 <ian.smith@trailofbits.com>
Commit: | 58224b7 | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
Fix CI Build (#343) * switch to rustup * add cargo path * fix typo * switch remill submod * fix pass tests * use gh action * only warn when missing reg * allow for missing registers in affine eqs * log as error * Fix errors when decoding opaque pointer specs * Fix macos build * more robustness * add pointer displacements * hacky solution for dynamic use of stack * actually do the replacement when cast to int * get max stack depth from ghidra * fix assert to allow for max depth * fix insert point for casts * bump to remill version that allows additional parameters by default * escape anvill_sp if a stack reference isnt recoverable --------- Co-authored-by: Francesco Bertolaccini <francesco.bertolaccini@trailofbits.com>
Commit: | 3fc6a17 | |
---|---|---|
Author: | 2over12 |
get max stack depth from ghidra
Commit: | c8eb140 | |
---|---|---|
Author: | 2over12 |
add pointer displacements
Commit: | 1df0ee5 | |
---|---|---|
Author: | 2over12 | |
Committer: | GitHub |
refactor to lift all live variables (#341) * refactor to lift all live variables * implement shared liveness utilities * convert bytes to bits... * insert into right vector
Commit: | 38656b5 | |
---|---|---|
Author: | 2over12 |
refactor to lift all live variables
Commit: | e26c58e | |
---|---|---|
Author: | 2over12 |
add liveness to spec
Commit: | 5daa0f3 | |
---|---|---|
Author: | 2over12 |
add frame size
Commit: | d90e942 | |
---|---|---|
Author: | 2over12 | |
Committer: | 2over12 |
fix thumb mode
Commit: | 7cd6bcd | |
---|---|---|
Author: | 2over12 |
update spec
Commit: | c5a37b4 | |
---|---|---|
Author: | 2over12 |
add contexts
Commit: | 13cf91b | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | Francesco Bertolaccini |
Parse local variable decls
Commit: | 998acf0 | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | 2over12 |
Use per-block context assignments
Commit: | f702e7c | |
---|---|---|
Author: | 2over12 | |
Committer: | 2over12 |
first lift of a func
Commit: | 7f309bc | |
---|---|---|
Author: | Francesco Bertolaccini | |
Committer: | GitHub |
Migrate to new spec format (#328) * Add new spec proto * New type spec * Remove `anvill-specify-bitcode` * Begin parsing stuff, everything is still a mess * Fix `anvill-decompile` * Add constructors for type specs to fix `make_shared` calls * Get things compiling. Now just a linker error to resolve. * Get things linking * Remove JSON module * Fill in a few Protobuf translator methods * Parse values, global variables * Parse control flow overrides * Get default callable decl spec files working * Update to latest spec format * Update spec * Begin rewriting `FunctionLifter` * Fix spec * Restore call redirections * Lift tailcalls * Update spec * Add `return_stack_pointer` * Fix target address in calls * WIP: parse recursive types * Store aliased types into the type map * Check for UINT32_MAX sized unknown types * Don't let Misc overrides displace calls as was happening in challenge 7 * Check that we're not displacing control overrides * add function linkage field * update decl fields * add param splitting to have hacky support for structures for now * print error * revert splitting anvill side * remove compiler used (#331) * implement callsites in pb * dont delete decls too early * keep used in favor of rellic fix * add folding of constant loads * add option to keep anvill pc * Update Dockerfile to not use Binja * Fixed type spec tests for Ghidra * Remove tests referencing JSON things * Disable lifting-tools-ci for now * submodule fix attempt * Do not run angha tests that currently need binja * pass down ghidra install dir * reenable amp integration tests * install ghidra in CI * handle indirect jump to return overrides * add comment explaining that we should unify how we handle overrides * add deps for running CI integration tests * fix indentation error * double timeout for now * install rust * run noninteractive * fix command line arg * third times the charm * short arg * try to fix env * install rust with action * try apt * -y * add ssh client * use checkout for irene3 * fix paths * fix typo * add just to path * bash shell * install java CI * move ghidra install to correct place * switch to ghidra invocation of test challenge bins * Remove unused enum * update readme * remove binja install * change build for anvill decompile to decompile-spec * change decompile name * bump lifting-tools ci * remove stale reference to deb * update more decompile names * change cmd Co-authored-by: Alex Cameron <asc@tetsuo.sh> Co-authored-by: 2over12 <ian.smith@trailofbits.com> Co-authored-by: Artem Dinaburg <artem@trailofbits.com>
The documentation is generated from this commit.
Commit: | 0d8c700 | |
---|---|---|
Author: | 2over12 |
implement callsites in pb
The documentation is generated from this commit.
Commit: | dadffa0 | |
---|---|---|
Author: | 2over12 |
add function linkage field
Commit: | 90c8ba6 | |
---|---|---|
Author: | Francesco Bertolaccini |
WIP: parse recursive types
Commit: | bd0b734 | |
---|---|---|
Author: | Alex Cameron |
Add `return_stack_pointer`
Commit: | 5c2513d | |
---|---|---|
Author: | Francesco Bertolaccini |
Update spec
Commit: | 23dbdbd | |
---|---|---|
Author: | Francesco Bertolaccini |
Fix spec
Commit: | ff8200b | |
---|---|---|
Author: | Francesco Bertolaccini |
Update spec
Commit: | 686081d | |
---|---|---|
Author: | Francesco Bertolaccini |
Update to latest spec format
Commit: | 2e6163d | |
---|---|---|
Author: | Francesco Bertolaccini |
Parse values, global variables
Commit: | ed86106 | |
---|---|---|
Author: | Alex Cameron |
Fill in a few Protobuf translator methods
Commit: | 0399730 | |
---|---|---|
Author: | Francesco Bertolaccini |
Add new spec proto