[ANN] BAP tutorial

community
bap
learning

#1

I’m pleased to announce the BAP tutorial. Even if you’re not really interested in the binary analysis or reverse engineering, you may still find it interesting, especially if you are interested in program analysis or OCaml programming in general. An interesting feature of the tutorial is that it is bilingual, i.e., it is written in OCaml and Python, so it gives us a chance to compare these two implementations side by side.

As a side note, BAP also has a blog, that we are planning to revive and update more frequently.


#2

Would be nice if there were a Docker image with things pre-installed. I tried to create one with this Dockerfile:

FROM ocaml/opam:debian-9_ocaml-4.03.0
RUN opam install bap -y

but it fails to build, with:

[ERROR] curl: code 429 while downloading
        https://github.com/BinaryAnalysisPlatform/bap/archive/v1.3.0.tar.gz
[ERROR] The sources of the following couldn't be obtained, aborting:
          - regular.1.3.0
        (This may be fixed by running 'opam update')

#3

The docker image is built automatically after every merged PR and pushed to the docker hub, as binaryanalysisplatform/bap. See http://tiny.cc/bap-docker for more info.

The tutorial uses a Vargant VM, as I believe, that it is easier to develop in a VM, though I might be wrong.

There are also prebuilt (with flambda) binaries in the form of deb, rpm, and the packages. This would be the fastest way to get bap up and running.


#4

Besides, this Error 429 - Too Many Requests is a real problem for all CI systems. This is the main reason why we can’t pass the opam-repository CI. Probably, we should try to find some hosting and provide more mirrors.