100 Commits
Author SHA1 Message Date
William Ballenthin a5979d3b4d Merge branch 'feature-981' of github.com:fireeye/capa into feature-981 2022-06-14 17:43:24 -06:00
William Ballenthin af9049da6e dnfile: return NO_ADDRESS for base_address 2022-06-14 17:43:04 -06:00
William Ballenthin 6b5e125592 extractors: mypy 2022-06-14 17:42:04 -06:00
William Ballenthin ee5c86913d extractor: clarify base address handling 2022-06-14 17:40:04 -06:00
William Ballenthin c417b5dd79 merge master 2022-06-14 17:05:46 -06:00
William Ballenthin bb74c73f6f sync rules 2022-06-14 17:02:34 -06:00
William Ballenthin aff6191b11 ida: meta: provide [] as argv 2022-06-14 16:59:58 -06:00
William Ballenthin 269f056e52 ida: use new ResultDocument structures 2022-06-14 16:58:32 -06:00
William Ballenthin 9c77488937 ida: meta: extract os/format/platform 2022-06-14 16:57:19 -06:00
William Ballenthin c3418fddb5 tests: json: fix address representation 2022-06-08 13:29:04 -06:00
William Ballenthin faf414e3d8 tests: add more dotnet tests 2022-06-08 13:28:53 -06:00
William Ballenthin c6144a1dfa freeze: address: fix .NET address sorting 2022-06-08 13:07:10 -06:00
William Ballenthin ad153499a3 address: implement __eq__ 2022-06-08 12:46:50 -06:00
William Ballenthin 2767660722 features: substring: correctly record no captures 2022-06-08 11:09:53 -06:00
William Ballenthin b392b48b28 black 2022-01-13 15:24:58 -07:00
William Ballenthin 93355a6884 changelog 2022-01-13 15:23:17 -07:00
William Ballenthin b28b30eb0f elf: parse section headers looking for Linux notes, too
closes #867
2022-01-13 15:21:23 -07:00
William Ballenthin cdfacc6247 Merge branch 'master' of github.com:fireeye/capa into perf/rule-selection 2021-11-10 14:30:08 -07:00
William Ballenthin a6b366602c mypy 2021-11-10 14:21:28 -07:00
William Ballenthin 80fb9dec3c pep8 2021-11-10 14:15:52 -07:00
William Ballenthin 68c86cf620 rules: easy/hard: better detect edge cases in optional, some, and range 2021-11-10 14:13:57 -07:00
William Ballenthin e550d48bcd linter: optional maps to some, not range 2021-11-10 14:13:37 -07:00
William Ballenthin 1aaaa8919c rules: easy/hard: simplify indexing by considering not: hard 2021-11-10 13:55:34 -07:00
William Ballenthin 72c2ffc40b linter: add checks for not and optional not under and 2021-11-10 13:47:30 -07:00
William Ballenthin f7ab2fb13a rules: easy/hard rules: detect not/optional at the root 2021-11-10 13:36:10 -07:00
William Ballenthin 3a1272246f rules: code consistency 2021-11-10 13:36:00 -07:00
William Ballenthin 6039a33bf8 engine: remove old import 2021-11-10 12:56:40 -07:00
William Ballenthin 2d68fb2536 pep8 2021-11-10 12:51:27 -07:00
William Ballenthin 845df282ef tests: split out match tests and validate alternative algorithms 2021-11-10 12:44:58 -07:00
William Ballenthin 1406dc28d9 rules: ruleset: fix collection of features under not statements 2021-11-10 12:44:19 -07:00
William Ballenthin 67884dd255 rules: match: more documentation 2021-11-09 16:42:32 -07:00
William Ballenthin 2bf05ac631 rules: index easy/hard: better handle not: statements 2021-11-09 16:37:30 -07:00
William Ballenthin 8cb04e4737 Merge branch 'master' into perf/rule-selection 2021-11-09 16:28:03 -07:00
William Ballenthin 733126591e Merge branch 'perf/query-optimizer' 2021-11-09 16:27:09 -07:00
William Ballenthin d4d801c246 optimizer: tweak costs slightly 2021-11-09 16:26:26 -07:00
William Ballenthin ea386d02b6 tests: add test demonstrating optimizer 2021-11-09 16:24:26 -07:00
William Ballenthin 77cac63443 Merge branch 'master' into perf/query-optimizer 2021-11-09 16:12:30 -07:00
William Ballenthin 7a4aee592b profile-time: add doc 2021-11-09 16:08:39 -07:00
William Ballenthin e05f8c7034 changelog 2021-11-09 10:27:33 -07:00
William Ballenthin 182377581a main: use ruleset.match instead of engine.mathc 2021-11-09 09:52:45 -07:00
William Ballenthin e647ae2ac4 rules: ruleset: add optimized match routine 2021-11-09 09:52:32 -07:00
William Ballenthin 1311da99ff rules: make Scope an enum 2021-11-09 09:51:50 -07:00
William Ballenthin 8badf226a2 engine: document match routine 2021-11-09 09:51:18 -07:00
William Ballenthin 6909d6a541 changelog 2021-11-08 16:04:15 -07:00
William Ballenthin e287dc9a32 optimizer: fix sort order 2021-11-08 15:54:14 -07:00
William Ballenthin 152d0f3244 ruleset: add query optimizer 2021-11-08 15:34:59 -07:00
William Ballenthin a6e2cfc90a Merge branch 'profiling' into perf/short-circuit 2021-11-08 15:24:50 -07:00
William Ballenthin 18c30e4f12 main: remove perf debug msgs 2021-11-08 15:24:43 -07:00
William Ballenthin 3c4f4d302c Merge branch 'profiling' into perf/short-circuit 2021-11-08 15:23:23 -07:00
William Ballenthin 2abebfbce7 main: remove perf messages 2021-11-08 15:22:58 -07:00
William Ballenthin 0b517c51d8 main: remove perf messages 2021-11-08 15:22:01 -07:00
William Ballenthin 9fbbda11b8 Merge branch 'profiling' into perf/short-circuit 2021-11-08 15:20:22 -07:00
William Ballenthin 6f6831f812 perf: document that counters is unstable 2021-11-08 15:20:11 -07:00
William Ballenthin d425bb31c4 Merge branch 'profiling' into perf/short-circuit 2021-11-08 15:16:22 -07:00
William Ballenthin 334425a08f changelog 2021-11-08 15:16:08 -07:00
William Ballenthin 3e74da96a6 engine: make short circuiting configurable 2021-11-08 14:55:11 -07:00
William Ballenthin ad119d789b Merge branch 'profiling' into perf/short-circuit 2021-11-08 14:35:26 -07:00
William Ballenthin 6c8d246af9 fix bad merge 2021-11-08 14:31:43 -07:00
William Ballenthin 26b7a0b91d Merge branch 'master' into profiling 2021-11-08 14:29:40 -07:00
William Ballenthin 94fd7673fd common: mypy 2021-11-08 14:27:44 -07:00
William Ballenthin f598acb8fc scripts: remove old profiling scripts 2021-11-08 14:24:48 -07:00
William Ballenthin b621205a06 mypy 2021-11-08 14:24:13 -07:00
William Ballenthin 9fa9c6a5d0 tests: add test demonstrating short circuiting 2021-11-08 14:07:44 -07:00
William Ballenthin 1a84051679 changelog 2021-11-08 14:07:31 -07:00
William Ballenthin d987719889 engine: some: correctly count satisfied children 2021-11-08 13:53:37 -07:00
William Ballenthin 96813c37b7 remove old improt 2021-11-08 13:48:33 -07:00
William Ballenthin 70f007525d pep8 2021-11-08 12:11:01 -07:00
William Ballenthin e3496b0660 engine: move optimizer into its own module 2021-11-08 12:10:22 -07:00
William Ballenthin 24b4c99635 changelog 2021-11-08 11:58:02 -07:00
William Ballenthin 27b4a8ba73 common: remove old import 2021-11-08 11:55:58 -07:00
William Ballenthin 51b3f38f55 common: move Result to capa.common from capa.engine
fixes circular import error in capa.features.freeze
2021-11-08 11:54:36 -07:00
William Ballenthin a35be4a666 scripts: add py script for profiling time 2021-11-08 11:52:34 -07:00
William Ballenthin 5770d0c12d perf: add reset routine 2021-11-08 11:52:25 -07:00
William Ballenthin 0629c584e1 common: move Result to capa.common from capa.engine
fixes circular import error in capa.features.freeze
2021-11-08 11:52:13 -07:00
William Ballenthin 480df323e5 scripts: add py script for profiling time 2021-11-08 11:51:09 -07:00
William Ballenthin a995b53c38 perf: add reset routine 2021-11-08 11:50:49 -07:00
William Ballenthin 35fa50dbee pep8 2021-11-08 11:50:37 -07:00
William Ballenthin d86c3f4d48 common: move Result to capa.common from capa.engine
fixes circular import error in capa.features.freeze
2021-11-08 11:50:16 -07:00
William Ballenthin d573b83c94 rule: optimization: add some documentation 2021-11-05 16:49:38 -06:00
William Ballenthin e63f072e40 rules: optimizer: use recursive cost of statements 2021-11-05 16:39:00 -06:00
William Ballenthin a329147d28 engine: some: short circuit 2021-11-05 16:32:23 -06:00
William Ballenthin 18ba986eba engine: or: short circuit 2021-11-05 16:32:12 -06:00
William Ballenthin 8d9f418b2b rules: optimize by cost 2021-11-05 16:20:22 -06:00
William Ballenthin 623bac1a40 engine: statement: document that the order of children is important 2021-11-05 16:19:16 -06:00
William Ballenthin 702d00da91 gitignore 2021-11-05 15:24:24 -06:00
William Ballenthin 3a12472be8 perf: render: show evaluate.feature counter 2021-11-05 15:23:34 -06:00
William Ballenthin 6524449ad1 main: perf: human format the numbers 2021-11-05 15:23:22 -06:00
William Ballenthin 86cab26a69 add perf counters in module capa.perf 2021-11-05 14:59:22 -06:00
William Ballenthin 3d068fe3cd scripts: add utilities for collecting profile traces 2021-11-04 13:17:38 -06:00
William Ballenthin f98236046b main: add coarse timing measurements 2021-11-04 12:38:35 -06:00
William Ballenthin ed3bd4ef75 main: add timing ctx manager 2021-11-04 12:20:05 -06:00
William Ballenthin 041c8a4c2d changelog 2021-10-27 09:43:35 -06:00
William Ballenthin 2b46043419 v3.0.3 2021-10-27 09:32:45 -06:00
William Ballenthin d31c8b0190 changelog 2021-10-27 09:29:54 -06:00
William Ballenthin b1f4a2853e Merge branch 'master' of github.com:fireeye/capa into fix-802 2021-10-27 09:25:29 -06:00
William Ballenthin 07412f047d tests: fix check of status code E_MISSING_FILE 2021-10-27 09:24:22 -06:00
William Ballenthin 4cc496a8e5 main: use constants to represent error codes 2021-10-26 16:57:33 -06:00
William Ballenthin 4f4e0881b5 changelog 2021-10-26 16:48:02 -06:00
William Ballenthin 9fe164665c main: exit with unique error codes when bailing
TODO: create an enum of all these things so they're easy for a human to
read.

closes #802
2021-10-26 16:46:43 -06:00
William Ballenthin c74193b5d7 Merge branch 'master' of github.com:fireeye/capa into fix-130 2021-10-26 15:26:22 -06:00