Skip to content

Commit f909a2f

Browse files
committed
frames-2.0
This is a new version of the frames protocol, that is extended with a new frame - metaframe. This version also provides: - a total rewrite of the frame reader, instead of the old buggy and slow trace container. Frame reader understands both versions 1.0 and 2.0. The new frame reader is typesafe, as it doesn't use any Obj.magic. Also the reader is able to work with pipes, and can start processing data on the very first byte. - new library BFD, that includes architecture and machine specifications.
1 parent 22ab8d6 commit f909a2f

27 files changed

+8004
-633
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ META
2626
/frames.ml
2727
/myocamlbuild.ml
2828
/setup.ml
29+
/setup.ml

.merlin

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,12 @@ EXT ounit
55
FLG -short-paths
66
FLG -w -4-33-40-41-42-43-34-44
77

8-
PKG camlzip
98
PKG core_kernel
10-
PKG fileutils
11-
PKG jsonm
12-
PKG ocamlbuild
13-
PKG ocamlgraph
149
PKG uuidm
1510
PKG bap
11+
PKG bap-traces
1612
PKG uri
17-
PKG sexplib
1813
PKG cmdliner
1914

2015
B _build
2116
B _build/plugin
22-

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
The MIT License (MIT)
2-
Copyright (c) 2014 Carnegie Mellon University
2+
Copyright (c) 2016 Carnegie Mellon University
33
Permission is hereby granted, free of charge, to any person obtaining a copy of
44
this software and associated documentation files (the "Software"), to deal in
55
the Software without restriction, including without limitation the rights to

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,25 @@
66
- A BAP plugin `frame` that provides `frames` format reader for the `bap-plugins` library
77
- A playground `test/tracedump` to inspect the traces
88

9+
# Build and install
10+
11+
## From sources
12+
```
13+
oasis setup
14+
./configure --prefix=`opam config var prefix`
15+
make
16+
make install
17+
```
18+
19+
## From opam
20+
21+
1. Add our opam repository if you don't have one
22+
23+
```
24+
opam repository add bap git://github.com/BinaryAnalysisPlatform/opam-repository.git
25+
```
26+
2. install
27+
28+
```
29+
opam install bap-frames
30+
```

_oasis

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
11
OASISFormat: 0.4
22
Name: bap-frames
3-
Version: 0.1
3+
Version: 1.0.0-alpha
44
Synopsis: data format for execution traces
55
Authors: BAP Team
66
License: MIT
77
Plugins: META (0.4)
8-
BuildTools: ocamlbuild, bapbuild
8+
BuildTools: ocamlbuild
9+
10+
Library bfd
11+
Path: lib/bfd
12+
Modules: Bfd
13+
FindlibName: bfd
14+
CompiledObject: best
15+
BuildDepends: ppx_deriving.std
16+
917

1018
Library "bap-frames"
11-
Path: .
12-
Modules: Trace_container, Frame_piqi, Frame_piqi_ext, Arch_bfd
13-
BuildDepends: core_kernel, piqirun.pb, piqirun.ext, piqilib, ppx_jane
14-
DataFiles: *.piqi
19+
Path: lib/frames
20+
Modules: Frame_events, Frame_piqi, Frame_reader
21+
FindlibName: bap-frames
22+
BuildTools: piqi
23+
BuildDepends: bap, bap-traces, bfd, core_kernel, piqirun.pb, ppx_jane, ppx_deriving.std
24+
CompiledObject: best
25+
DataFiles: ../../*.piqi
1526

1627
Library "bap-plugin-frames"
1728
Path: plugin
1829
FindlibName: bap-plugin-frames
1930
Modules: Frame_trace_plugin
20-
InternalModules: Frame_events
2131
BuildDepends: bap, bap-frames, bap-traces
22-
XMETADescription: read traces in frames format
23-
24-
Executable tracedump
25-
Path: test
26-
MainIs: tracedump.ml
27-
CompiledObject: best
28-
Install: false
29-
BuildDepends: bap, bap-frames, bap-plugin-frames, cmdliner
32+
XMETADescription: read traces in frames format

_tags

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# OASIS_START
2-
# DO NOT EDIT (digest: 20d045e1058268e74375bb77116b7fd0)
2+
# DO NOT EDIT (digest: 2af87a2cce103ee0987cdf9582dfc68f)
33
# Ignore VCS directories, you can use the same kind of rule outside
44
# OASIS_START/STOP if you want to exclude directories that contains
55
# useless stuff for the build process
@@ -14,42 +14,26 @@ true: annot, bin_annot
1414
".git": not_hygienic
1515
"_darcs": -traverse
1616
"_darcs": not_hygienic
17+
# Library bfd
18+
"lib/bfd/bfd.cmxs": use_bfd
19+
<lib/bfd/*.ml{,i,y}>: pkg_ppx_deriving.std
1720
# Library bap-frames
18-
"bap-frames.cmxs": use_bap-frames
19-
<*.ml{,i,y}>: pkg_core_kernel
20-
<*.ml{,i,y}>: pkg_piqilib
21-
<*.ml{,i,y}>: pkg_piqirun.ext
22-
<*.ml{,i,y}>: pkg_piqirun.pb
23-
<*.ml{,i,y}>: pkg_ppx_jane
21+
"lib/frames/bap-frames.cmxs": use_bap-frames
22+
<lib/frames/*.ml{,i,y}>: pkg_bap
23+
<lib/frames/*.ml{,i,y}>: pkg_bap-traces
24+
<lib/frames/*.ml{,i,y}>: pkg_core_kernel
25+
<lib/frames/*.ml{,i,y}>: pkg_piqirun.pb
26+
<lib/frames/*.ml{,i,y}>: pkg_ppx_deriving.std
27+
<lib/frames/*.ml{,i,y}>: pkg_ppx_jane
28+
<lib/frames/*.ml{,i,y}>: use_bfd
2429
# Library bap-plugin-frames
2530
"plugin/bap-plugin-frames.cmxs": use_bap-plugin-frames
2631
<plugin/*.ml{,i,y}>: pkg_bap
2732
<plugin/*.ml{,i,y}>: pkg_bap-traces
2833
<plugin/*.ml{,i,y}>: pkg_core_kernel
29-
<plugin/*.ml{,i,y}>: pkg_piqilib
30-
<plugin/*.ml{,i,y}>: pkg_piqirun.ext
3134
<plugin/*.ml{,i,y}>: pkg_piqirun.pb
35+
<plugin/*.ml{,i,y}>: pkg_ppx_deriving.std
3236
<plugin/*.ml{,i,y}>: pkg_ppx_jane
3337
<plugin/*.ml{,i,y}>: use_bap-frames
34-
# Executable tracedump
35-
<test/tracedump.{native,byte}>: pkg_bap
36-
<test/tracedump.{native,byte}>: pkg_bap-traces
37-
<test/tracedump.{native,byte}>: pkg_cmdliner
38-
<test/tracedump.{native,byte}>: pkg_core_kernel
39-
<test/tracedump.{native,byte}>: pkg_piqilib
40-
<test/tracedump.{native,byte}>: pkg_piqirun.ext
41-
<test/tracedump.{native,byte}>: pkg_piqirun.pb
42-
<test/tracedump.{native,byte}>: pkg_ppx_jane
43-
<test/tracedump.{native,byte}>: use_bap-frames
44-
<test/tracedump.{native,byte}>: use_bap-plugin-frames
45-
<test/*.ml{,i,y}>: pkg_bap
46-
<test/*.ml{,i,y}>: pkg_bap-traces
47-
<test/*.ml{,i,y}>: pkg_cmdliner
48-
<test/*.ml{,i,y}>: pkg_core_kernel
49-
<test/*.ml{,i,y}>: pkg_piqilib
50-
<test/*.ml{,i,y}>: pkg_piqirun.ext
51-
<test/*.ml{,i,y}>: pkg_piqirun.pb
52-
<test/*.ml{,i,y}>: pkg_ppx_jane
53-
<test/*.ml{,i,y}>: use_bap-frames
54-
<test/*.ml{,i,y}>: use_bap-plugin-frames
38+
<plugin/*.ml{,i,y}>: use_bfd
5539
# OASIS_STOP

arch_bfd.ml

Lines changed: 0 additions & 91 deletions
This file was deleted.

arch_bfd.mli

Lines changed: 0 additions & 88 deletions
This file was deleted.

bap-traces.mldylib

Lines changed: 0 additions & 7 deletions
This file was deleted.

bap-traces.mllib

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)