Skip to content

Commit

Permalink
BAP Platform
Browse files Browse the repository at this point in the history
This PR introduces BAP as a platform.
A significant amount of code is moved from the Bap.Std library into
separate plugins and libraries, that can be installed separately.
The plugin system is severely reimplemented. Here is the short list of
changes, a detailed list will be added later to the `CHANGES.md`.

- moved Regular library out of bap.
- moved Graphlib from Bap.
- made module's state storable
- moved x86 from the library
- moved ARM from the library
- moved Dwarf and Elf from the library.
- moved byteweight from the library.
- moved traces from the library
- rewrote disassembler level
- add properties to insn
- moved llvm to plugins
- added caching framework
- added printing framework
- redesigned build system
- reimplemented plugin framework
- Current set of plugins:
  * emit-ida-script  extract a python script from the project data type
  * dump-symbols     dump symbol information as a list of blocks
  * arm              provide ARM lifter
  * piqi-printers    provides piqi serialization for main data types (BIL, IR)
  * phoenix          output project information in a phoenix format
  * print            print project in various formats
  * cache            provide caching services
  * byteweight       find function starts using Byteweight algorithm
  * x86              provide x86 lifter
  * llvm             provide loader and disassembler
  * ida              use ida to provide rooter, symbolizer and reconstructor
  * read-symbols     read symbol information from file
  * elf-loader       read ELF and DWARF formats in a pure OCaml

Note: this PR doesn't update the documentation, it will be pushed
later.
  • Loading branch information
ivg committed Feb 29, 2016
1 parent 963c6d0 commit 93ee72c
Show file tree
Hide file tree
Showing 401 changed files with 12,213 additions and 10,646 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@
/setup.log
/setup.ml
META
_oasis
/bap_config.ml
/man/bap-mc.1
/man/bap-byteweight.1
/man/bap.1
/lib/bap_config/bap_config.ml
32 changes: 13 additions & 19 deletions .merlin
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,29 @@ EXT ounit
FLG -short-paths
FLG -w -4-33-40-41-42-43-34-44

PKG camlzip
PKG core_kernel
PKG fileutils
PKG jsonm
PKG ocamlbuild
PKG ocamlgraph
PKG uuidm
PKG uri

B _build
B _build/lib/bap
B _build/lib/bap_types
B _build/lib/bap_image
B _build/lib/bap_disasm
B _build/lib/bap_sema
B _build/lib/bap_bundle
B _build/lib/bap_dwarf
B _build/lib/bap_elf
B _build/lib/bap_future
B _build/lib/bap_image
B _build/lib/bap_sema
B _build/lib/bap_trace
B _build/lib/bap_types
B _build/piqi
B _build/lib/bap_plugins
B _build/lib/text_tags
B _build/lib/regular
B _build/lib/graphlib

S lib/bap
S lib/bap_disasm
S lib/bap_bundle
S lib/bap_dwarf
S lib/bap_elf
S lib/bap_future
S lib/bap_image
S lib/bap_sema
S lib/bap_trace
S lib/bap_types
S piqi
S lwt
S lib/bap_plugins
S lib/text_tags
S lib/regular
S lib/graphlib
5 changes: 0 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@ language: c
install: wget https://raw.githubusercontent.com/ocaml/ocaml-travisci-skeleton/master/.travis-opam.sh
script: bash -ex .travis-opam.sh
sudo: false
cache:
directories:
- $HOME/.opam
before_cache:
- rm -rf $HOME/.opam/log
addons:
apt:
sources:
Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ all: setup.data

install: setup.data
$(SETUP) -install $(BAPINSTALLFLAGS)
sh tools/build_plugins.sh

uninstall: setup.data
$(SETUP) -uninstall $(BAPUNINSTALLFLAGS)

reinstall: setup.data
$(SETUP) -reinstall $(BAPREINSTALLFLAGS)
make uninstall
make install

clean: setup.data
$(SETUP) -clean $(BAPCLEANFLAGS)
Expand Down
Loading

0 comments on commit 93ee72c

Please sign in to comment.