forked from BinaryAnalysisPlatform/bap
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moving logic to library, extending project.
This PR heavily refactors Project module. First of all it hides project implementation. Next most of the stuff from `bap` utility is moved to the project. So now, one can create projects easily without the bap utility. The project itself was changed no only cosmetically. The deprecated fields were removed. First of all, the memory (`mem` field) is now represented as a [memmap] not as a contiguous chunk of data. Second, instead of symbol table, represented as `string table`, we now have [symtab] data structure, that allows to represent non-contiguous and overlapping symbols. As a result, many functions that depend on previous symbol representation were changed. All functions that accepts `bound` as memory, now accepts bound as a function `addr -> bool`. The ABI now has new, more clean and easy to use interface. Other changes includes extending plugin system. (Now any plugin can be loaded dynamically from file). Moving plugin loading stuff from bap utility to bap_plugins library, and the latter is no more dependend on bap library. Also, this PR introduces new more correct and robust symbol recognition algorithm. Some polishes of the IR representation, like adding lifter from instruction and optimizing BIL before lifting (much nicer IR). New pretty-printing for IR, with all attributes printed as tags, that can be enabled with `--emit-attr` option. bap-mc now can print IR for each instruction. Lots of other changes that will be properly enumerated in CHANGES file before the release.
- Loading branch information
Showing
75 changed files
with
1,432 additions
and
1,040 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.