Permalink
Browse files

BAP Platform

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 93ee72c0768a9a3692e48e599f1a72431d129e58
Showing 401 changed files with 12,213 additions and 10,646 deletions.
View
@@ -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
View
32 .merlin
@@ -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
View
@@ -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:
View
@@ -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)
Oops, something went wrong.

0 comments on commit 93ee72c

Please sign in to comment.