Tags: little-marmot/bap
Tags
fixes handling modified immediate constants in ARM T32 encoding (Bina… …ryAnalysisPlatform#1374) We use the old ARM lifter to handle T32 instructions but, unlike in ARM, LLVM does decode modified immediate constants in T32 mode so we don't need to decode them twice. This change uses the encoding of the instruction for deciding whether the immediate is in the shifted form, or already decoded. Thanks @ccasin for detecting the problem.
updates versions and changelog for 2.3.0 (BinaryAnalysisPlatform#1316)
bumps version and updates the changelog (BinaryAnalysisPlatform#1259)
bumps version and updates the changelog (BinaryAnalysisPlatform#1259)
fixes trivial assertions (BinaryAnalysisPlatform#1108) If an assertion doesn't contain a symbolic value then we were having an empty set of constraints, which trivially were true. In other words, `assert true` doesn't hold. This PR fixes this by treating non-symbolic values as symbolic constants.
BAP 2.0.0 release (candidate) (BinaryAnalysisPlatform#1017) * BAP 2.0.0 release (candidate) Polishes documentation as well as fixes the theory declaration function. And finally bumps the version to 2.0.0. Whle revising the documentation I've noticed that the interface of theory declaration is not allowing references to other theories as it isn't wrapped in the knowledge monad as it should be. I fixed it, but immediately fell into the trap of a recursive instantiation. Indeed, a theory may require itself as a base, which will lead to an infinite recursion and runtime failure. Since it is so easy to fall into this trap, the implementation has to be robust enough and either forbid this, with an appropriate error message, or allow it, with an appropriate semantics. We chose the latter, since our theories are domains we have a sane semantics for recursive theories (well, this is what denotational semantics was invented on the first hand). We employed the same technique for recursive module instantiation as OCaml does, i.e., first initialize the theory with an empty structure, then overwrite it with the result. * updates testsuites commit
updates bap version (BinaryAnalysisPlatform#943) * updates bap version * updates changelog
ensures static linking with llvm >= 4.0 (BinaryAnalysisPlatform#889) it turned out that after `llvm-4.0` a default linking mode is `shared`, and it's not what we want. e.g. debian package will be broken, as `bap` will be depend from `LLVM.so`. our previous request for libraries now returns an extremly short list: ``` ubuntu@ubuntu-xenial:~$ llvm-config-4.0 --libs -lLLVM-4.0 ``` which is just shared library. So what we can do, is to use a new flag for llvm-config: ``` ubuntu@ubuntu-xenial:~$ llvm-config-4.0 --link-static --libs -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMMIRParser ... ``` Here it is!
updates documentation, copyrights, readme, and changes (BinaryAnalysi… …sPlatform#785) Documented new functions, deprecated those that are superceeded by Primus. Enumerated all new features and bug fixes in the CHANGES, bumped all versions and copyright dates. Also added a sed script to our document generator ocamldoc now started to generate lots of `include ??` entries (probably from the ppx derived stuff). Also I've reindented bap.mli. The ocp-indent tool was chocking on it, because of attributes that were put inside of the recursive type definition. Fine by OCaml, not fine to ocp-indent. Once I've fixed it, it moved quite a significant part of bap.mli... so sorry for this big change.
fix few bugs in bap-llvm (BinaryAnalysisPlatform#701) * fix bug with section name * minor
PreviousNext