BinaryAnalysisPlatform / bap

Binary Analysis Platform
MIT License
2.07k stars 273 forks source link

Issues installing BAP #1613

Open Abhiroop opened 2 months ago

Abhiroop commented 2 months ago

I am trying to install bap. Firstly I tried installing it from the sources (opam install bap) and ran into this error:

[ERROR] The compilation of bap-std.2.5.0 failed at "make".

#=== ERROR while compiling bap-std.2.5.0 ======================================#
# context     2.1.2 | linux/x86_64 | ocaml-base-compiler.4.14.1 | https://opam.ocaml.org#b7a474459d5c5da61dd939353c4899d25eaad097
# path        ~/.opam/my_switch1/.opam-switch/build/bap-std.2.5.0
# command     ~/.opam/opam-init/hooks/sandbox.sh build make
# exit-code   2
# env-file    ~/.opam/log/bap-std-311605-3117d1.env
# output-file ~/.opam/log/bap-std-311605-3117d1.out
### output ###
# [...]
# Use the camlp-streams library instead.
# File "myocamlbuild.ml", line 467, characters 42-53:
# 467 |         Stream.junk lxr; Stream.junk lxr; Stream.junk lxr;
#                                                 ^^^^^^^^^^^
# Alert deprecated: module Stdlib.Stream
# Use the camlp-streams library instead.
# File "myocamlbuild.ml", line 479, characters 17-34:
# 479 |         let st = Stream.of_channel chn in
#                        ^^^^^^^^^^^^^^^^^
# Alert deprecated: module Stdlib.Stream
# Use the camlp-streams library instead.
# make: *** [Makefile:8: build] Error 1

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build bap-std 2.5.0
└─ 

I am assuming using camlp-streams would require changing the dependencies of the project.

Next, I tried installing from the prebuilt binaries. Upon issuing bap /bin/echo -d, I get:

Failed to load plugin "primus-symbolic-executor": Failed to load z3ml: error loading shared library: Dynlink.Error (Dynlink.Cannot_open_dll "Failure(\"/tmp/z3ml2706c5.cmxs: undefined symbol: Z3_mk_u32string\")")
Failed to load 1 plugins, details follow:
The plugin `/usr/local/lib/bap/primus_symbolic_executor.plugin' has failed with the following error:
Failed to load z3ml: error loading shared library: Dynlink.Error (Dynlink.Cannot_open_dll "Failure(\"/tmp/z3ml2706c5.cmxs: undefined symbol: Z3_mk_u32string\")")

Any suggestions on fixing these? For reference, I am running this on Ubuntu 22.04.

opam switch
#  switch      compiler                    description
   default     ocaml.4.13.1                default
→  my_switch1  ocaml-base-compiler.4.14.1  my_switch1