* Update to latest remill APIs and way of using CMake.
* Minor fixes
* Bug fixes for AArch64
* Tweaks
* Adds some nifty functionality useful for debugging some aarch64 bugs
* Fixes a subtle bug
* Bug fixes
* Make the test suite use explicit args
* Bug fix in xrefs
* Disable tests for now
* API improvements. Must be used with the api_improvements branch of both Remill and McSema
fixes for x86 and running the lifted code with klee
* Update dockerfile to clone anvill
* update remill commit id
* Add python3 to dockerfile
* update python3
* disable abi script
* Updated cmake to find anvill
* Update main.cpp
* update find_package for anvill
* WIP:updated prebuild cfg
* update prebuild cfg files
* enable abi build for testsuite
* Fix memory leak
* install missing package for testcases
* frontend: Reflect cfg file changes in dyninst frontend.
* frontend: Update local files copyrights to reflect overall change to agplv3.
* fix failing testcases
* update test cfgs
* Fix test failure with local state pointer
* set the flag to use local state_ptr in default mode
Co-authored-by: kumarak <iit.akshay@gmail.com>
Co-authored-by: Lukas Korencik <xkorenc1@fi.muni.cz>
* bc: Inline calls to semantic functions and wrappers manually.
* bc: Inline calls to semantics and wrappers only if some flags are set.
* Refactor code that is responsible for abi libs loading.
* Wrap global pointers in RAII.
* Update .remill_commit_id
Co-authored-by: Peter Goodman <peter.goodman@gmail.com>
* Attempt to resolve Issue #521
* minor fix
* minor fix
* minor fix
* Simplifications and comments
* If it's a copy of shared data, then don't treat it as an xref
* Error log if there is segment variable with the same name as external var
* Added flag and checks if the variable needs initialization if already defined;
* fix noreturn for the functions throwing exceptions;
* review changes
* Update get_cfg.py
* Update get_cfg.py
* Fix the recovery of exception action table chain
* Update the prebuild cfg for testsuite
* Fix entrypoint function not getting recovered in ida7
* Change the order of idc.GetFunctionName and idc.GetTrueName while looking for function name
* Add initial support for --abi_library flags
* support for abi_library
* Remove the weak linkage for __mcsema_debug_get_reg_state.
* Fix num of agruments for __cxa_allocate_exception
* Remove --library flag and cleanup
* Don't reload/overwrite mcsema::gModule after loading in the protobuf.
* Use PrepareModuleDataLayout to avoid checks for __remill_basic_block function.
* Bump the remill commit id to support --abi_library flag
* Fix travis build failure
* Initialize the test log filename;
* trim newline char from the eof
* In progress. Working on an example of using KLEE on a Maze, but with the maze program being compiled to x86, amd64, and aarch64.
* Making lots of progress on getting lifting and runnning an aarch64 maze program on amd64, but using --explicit_args. The key thing I'm working through right now is a jump offset table, but where the offset is a block pc, rather than a table base. Also adding various bits of code here and there to making runnning with klee more directly doable, and working on a debugging facility to track down when the emulated program counter gets out of sync with the original program.
* Fixed a subtle @PAGE and @PAGEOFF-related reference bug on AArch64. Partially disabled the special jump offset table handling I had in table.py, as it doesn't (yet) handle the shifted table values. However, I still have the code there, so that it can recognize that a basic block address is used as a possible offset, so that I can remove the block address as a reference, which permits a new heuristic on the C++ side to work. On the C++ side, when there's a jump instruction that isn't associated with a cross-reference flow, I try to auto-augment it with addition switch cases, targeting blocks with no predecessors (as present in the CFG). This seems to work reasonably well.
* Improved the scripts and updated the READMEs.
* Minor rephrase
* Minor rephrase
* Generalizes two debugging features. The first, -add-breakpoints, adds instruction-specific 'breakpoint' function calls before every lifted instruction. The second, -add-reg-tracer, adds in a function that prints out the value of every general purpose register before each instruction execution.
* In-progress doc
* ...
* More of the debugging doc, some more images, a PIN tool to complement the new -add-reg-tracer option to mcsema-lift. Still a ways from being done though.
* Adding the document, and moved some more files around to make the xrefs in the doc make sense
* Update readme
* try to make xref link paths work
* minor wording
* minor wording
* Addressed comments
* Initial move of some of the files
* Rename the semantics files.
* Moves more stuff, adds some files, removes others, fixes include paths.
* Addresses comments