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