1056 Commits

Author SHA1 Message Date
George Hotz
841b8d41fe Merge pull request #81 from nedwill/static_perf
Make static non-blocking, support runtime error checks in tester
2015-03-10 23:59:31 -07:00
Ned Williamson
ef226335b2 use sleeps 2015-03-11 01:27:00 -04:00
Ned Williamson
e0d14859d3 respect with_static 2015-03-11 01:25:32 -04:00
Ned Williamson
5d76d2589b Merge branch 'master' of https://github.com/BinaryAnalysisPlatform/qira into static_perf 2015-03-09 19:42:53 -04:00
Ned Williamson
78395b7301 respect the recursive flag
We may need this to do some kind of "quick analysis" where functions
that are in the trace are processed first without recursing.
2015-03-09 19:40:21 -04:00
Ned Williamson
e0da2f9201 Don't rely on trace.maxclnum.
Using trace.maxclnum here makes sense, but if the analysis
thread takes a long time to process large binaries,
trace.maxclnum will be None and the loop body never gets
executed. We will go out of bounds using clend at the end
of the trace, but get_instruction will return None and so
we still see the desired behavior in the UI.
2015-03-09 19:29:34 -04:00
Ned Williamson
232dd8560b run static analysis in a thread so interface starts 2015-03-09 19:27:28 -04:00
Ned Williamson
7ac4aed581 tweak to formatting 2015-03-08 16:57:09 -04:00
Ned Williamson
540289068b check runtime errors 2015-03-08 16:46:19 -04:00
Ned Williamson
21a663a3c1 Merge pull request #79 from tim-becker/fix_relative_jumps
Hacky fix for #76
2015-03-05 21:25:57 -05:00
Tim Becker
ee6614137d Hacky fix for #76 2015-03-05 16:05:15 -05:00
George Hotz
2b9119660b better markdown 2015-02-22 14:32:26 -08:00
George Hotz
950e97b213 rip out broken CDA 2015-02-22 14:17:34 -08:00
George Hotz
dda2548997 add clang to deps and switch readme to markdown 2015-02-22 14:15:52 -08:00
George Hotz
04072502f9 removed capstone build 2015-02-22 14:02:57 -08:00
George Hotz
c2f1035e94 add missing qq 2015-02-22 05:11:20 -08:00
George Hotz
cde4688e10 added missing apt to install, readme, gitignore 2015-02-16 20:16:42 +00:00
George Hotz
2a950c0bf0 Merge pull request #68 from nedwill/tests_cleanup
Tests Cleanup
2015-02-16 11:58:08 -08:00
George Hotz
666c6b9326 update readme 2015-02-16 19:56:52 +00:00
George Hotz
8d9b767820 Merge pull request #67 from tim-becker/cfg_fixes
Fixes to CFG on x86, x86-64, and ARM
2015-02-16 11:51:17 -08:00
Ned Williamson
c309af24bb reminder about virtualenv 2015-02-12 16:28:20 -05:00
Ned Williamson
69830a93a8 Merge branch 'master' into tests_cleanup 2015-02-12 16:22:00 -05:00
Tim Becker
04f1476739 Fixed one more x86 issue 2015-02-12 16:06:06 -05:00
Tim Becker
72565004e4 Fixed two bugs in x86 destinations 2015-02-12 15:44:04 -05:00
Ned Williamson
c5ba1f8c9e restore old behavior for 64-bit ints in x86
actually we get 64-bit ints from BAP for x86 pretty often.
now warn when debug_level >= 1

Also, only call calc_offset if dst.arg is an int
2015-02-12 15:09:11 -05:00
Ned Williamson
9b88559c59 assume bap gives us the correct size in calc_offset 2015-02-12 14:50:55 -05:00
Ned Williamson
fa9de22b0c restored missing fixes to model.py 2015-02-12 14:47:58 -05:00
Tim Becker
6f8557b2f1 Function calls do not end blocks. 2015-02-12 14:06:20 -05:00
Tim Becker
9627abe22b Another fix to CFG. 2015-02-12 14:04:19 -05:00
Tim Becker
43b06c40dd Improvements to CFG recovery using BIL 2015-02-12 14:04:01 -05:00
George Hotz
9c610c277a Merge pull request #65 from tim-becker/fix_bap_install
Specify llvm_version to bap installation.
2015-02-09 11:13:08 -08:00
Tim Becker
664322e2a8 Specify llvm_version to bap installation. 2015-02-07 21:14:11 -05:00
Ivan Gotovchits
590f80f7a9 Merge pull request #63 from ivg/integration-with-bap
Add BAP as backend.
2015-01-29 09:57:53 -05:00
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
George Hotz
d60f64f444 Merge pull request #64 from nedwill/static_testing_new
Static Tester Updates
2015-01-28 14:18:03 -08:00
Ned Williamson
8184e3d89c slight line width tweak 2015-01-19 17:24:29 -05:00
Ned Williamson
dfb195969d refactor get_file_test 2015-01-19 17:22:52 -05:00
Ned Williamson
f59ddace99 stop on KeyboardInterrupt 2015-01-19 17:17:59 -05:00
Ned Williamson
cbc41d0014 printesp is manual, not all arches 2015-01-19 17:07:56 -05:00
Ned Williamson
cbcc6a411e move source files that don't compile OOB, rename directories
appropriately
2015-01-19 17:03:57 -05:00
Ned Williamson
9b9b96d941 Merge branch 'static_testing_new' into tests_cleanup 2015-01-19 17:01:29 -05:00
Ned Williamson
de407a8e40 fix regression from recursive option 2015-01-19 17:01:11 -05:00
Ned Williamson
857d6d008d reorganize directories into source/binary 2015-01-19 16:56:52 -05:00
Ned Williamson
46f31ef834 option to recurse into subdirectories 2015-01-19 14:23:54 -05:00
Ned Williamson
0e0e7d8ef9 fail on 0 functions id'd in dwarf 2015-01-19 13:59:42 -05:00
Ned Williamson
dcacd2ebe7 pretty 2015-01-19 00:38:06 -05:00
Ned Williamson
c907cde043 fail if no functions identified 2015-01-19 00:26:04 -05:00
Ned Williamson
694450be17 this_engine.process() can fail too 2015-01-19 00:15:54 -05:00
Ned Williamson
67e297eef3 better printing, don't just fail on static error 2015-01-19 00:09:37 -05:00
Ned Williamson
66b9047295 more consistent output 2015-01-18 23:59:42 -05:00