qira/middleware
Ivan Gotovchits 222d6da4f0 Add BAP as backend.
This PR introduces bap as a backend for QIRA.
The backend is made optional, but is enabled by default.

This backend allows one to disassemble instructions for all platforms,
supported by LLVM (at the time of writing it is about 25 targets).

Also, to some platforms BAP will provide BIL and/or target specific
instructions, lifted to first class python values, as opposed to
strings.

A new instruction class is introduces, that will use BIL if available to
infer destinations, as well as to infer registers touched or modified by
the instruction. Using, BIL allows us to determine instructions like
`pop {r0, pc}` as calls, that, as a consequence, allows us to build a
more correct CFG. As a drawback on ARM platform the built CFG is so big,
that it takes a considerable amount of time just to draw it.

Since BAP can provide a reasonable analysis for all platforms, including
those that at the time of writing still doesn't have a BIL support, the
static analysis in QIRA will be always turned on.

BAP is installed using opam, and BAP Python bindings a downloaded
directly from the git repository using pip.

As a free bonus, this PR will also fix Travis CI issue.
2015-01-29 09:21:05 -05:00
..
__init__.py testing is getting better 2014-11-22 22:08:50 +00:00
arch.py more qira_program refactoring 2014-11-22 21:06:37 +00:00
qira.py ripped out cda and dwarf for now 2014-11-22 21:00:33 +00:00
qira_analysis.py removing extra debug print statement 2014-11-28 18:47:59 -05:00
qira_base.py ahh quality, should parameterize the stack 2014-08-04 16:11:05 +00:00
qira_config.py Add BAP as backend. 2015-01-29 09:21:05 -05:00
qira_log.py cleaned up dead code 2014-09-19 17:32:15 -04:00
qira_program.py fix fetch_memory 2014-11-28 19:42:37 +00:00
qira_socat.py Merge web and socat hosts. 2014-09-07 18:34:14 -04:00
qira_webserver.py Fixed some stupid bugs in displaying function call arguments 2014-11-23 01:46:34 -08:00
qira_webstatic.py Fixed up manual arg fixup to be a bit more user friendly.. we don't want to keep hacking to be TOO elite 2014-11-23 01:23:58 -08:00