Skip to content

Releases: BinaryAnalysisPlatform/bap

v0.9.4

28 Feb 05:17
@ivg ivg
Compare
Choose a tag to compare
  • x86 and x86_64 lifter #106
  • New byteweight implementation #99
  • Intra-procedure CFG reconstruction #102
  • IDA integration #103
  • Binary release #108
  • Man pages and documentation #107
  • Unconstraint opam file and extended it with system dependents #109

v0.9.3

20 Feb 17:43
@ivg ivg
Compare
Choose a tag to compare

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.

v0.9.2

05 Feb 22:48
@ivg ivg
Compare
Choose a tag to compare

CFG Recovery and Simplified Interface

This is a major update, that brings:

1. Recursive descent disassembler
2. High-level simple to use interface to BAP
3. New utility `bap-objdump`
4. Enhanced pretty-printing
5. Lots of small fixes and new handy functions
6. Automatically generated documentation.

There're some breaking changes also, like:

1. `Bitvector` is no longer `Identifiable` (i.e., doesn't implement `Identifiable` interface)
2. `Memory.size` is renamed to `Memory.length`
3. Basic disassembler as well as its `Insn` is moved to `Disasm_expert` namespace

v.0.9.1

17 Jan 22:04
@ivg ivg
Compare
Choose a tag to compare
Merge pull request #72 from ivg/opam

Preliminary support for OPAM.

This will also fix compilation issue on OCaml 4.01 in Mac OS X