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.
Introduction ------------ This release is based on a feedback from our users (including myself). The main goal of this release is to increase the usability of BAP. Major changes ------------- 1. `Bitvector` (aka `Word`, aka `Addr`) now provides all `Integer` interface without any monads right at the toplevel of the module. In other words, now you can write: `Word.(x + y)`. 2. `Bitvector.Int` is renamed to `Bitvector.Int_exn` so that it don't clobber the real `Int` module 3. All BIL is now consolidated in one module named `Bil`. This module contains everything, including constructors for statements, expressions casts, binary and unary operations. It also includes functional constructors, that are now written by hand and, thus, don't suffer from syntactic clashes with keywords. There're also a plenty of other functions and new operators, available from the new `Bap_helpers` module, see later. Old modules, like `Expr`, `Stmt`, etc are still available, they implement `Regular` interface for corresponding types. 4. New feature: visitor classes to traverse and transform the AST. Writing a pattern matching code every time you need to traverse or map the BIL AST is error prone and time-consuming. This visitors, do all the traversing for you, allowing you to override default behavior. Some handy algorithms, that use visitors are provided in an internal `Bap_helpers` module, that is included into resulting `Bil` module. Several optimizations were added to `bap-objdump` utility, like constant propogation, inlining, pruning unused variables and resolving addresses to symbols. 5. Insn interface now provides predicates to query insn classes, this predicates use BIL if available. 6. Disam interface now provides `linear_sweep` function. Minor Changes ------------- There're some bug fixes, the most important is fixing `bitsub`. Now it is renamed to `extract`, as it can output words of greater size, and it also handles signed extraction correctly. The drastic `disassemble_file` function now checks for errors.
- Loading branch information
Showing
38 changed files
with
1,423 additions
and
316 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
OASISFormat: 0.4 | ||
Name: bap | ||
Version: 0.9.1 | ||
Version: 0.9.3 | ||
Synopsis: BAP Core Library | ||
Authors: BAP Team | ||
Maintainers: Ivan Gotovchits <[email protected]> | ||
|
@@ -118,6 +118,7 @@ Library types | |
Bap_bitvector, | ||
Bap_common, | ||
Bap_exp, | ||
Bap_helpers, | ||
Bap_int_conversions, | ||
Bap_integer, | ||
Bap_integer_intf, | ||
|
@@ -126,7 +127,8 @@ Library types | |
Bap_size, | ||
Bap_stmt, | ||
Bap_type, | ||
Bap_var | ||
Bap_var, | ||
Bap_visitor | ||
|
||
Library conceval | ||
Path: lib/bap_types | ||
|
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
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
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
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.