Commit Graph

6046 Commits

Author SHA1 Message Date
Willi Ballenthin
dc4d64cb01 vverbose: use capa.helpers.assert_never
typing.assert_never isn't available until py3.11
2026-04-23 16:11:58 +03:00
Willi Ballenthin
f5e3aa4a3b fix: address Pyright diagnostics in vivisect extractors (chunk 8)
- basicblock.py: fix real bug (/ -> // for integer division in get_printable_len); type: ignore for _dis_regctx (dynamically set)
- extractor.py: cast+assert for funcy.cached_property basic_blocks/instructions; type: ignore for get_function_name Address vs int
- file.py: assert pe/IMAGE_NT_HEADERS not None instead of type: ignore
- function.py: cast+assert for funcy.cached_property basic_blocks/instructions; type: ignore for getBranches() base return type
- insn.py: type hint derefs() as Iterator[int]; isinstance guard before derefs calls; import Elf + isinstance assert for parsedbin; cast for f.basic_blocks[0] and bb.instructions; type: ignore for dynamically-injected REG_* constants and getBranches()
2026-04-23 16:11:58 +03:00
Willi Ballenthin
191c889adf fix: remaining import, type annotation, and xfail type issues (chunk 7)
- fixtures.py: add import capa.render.result_document; local import capa.loader in functions
- fixtures.py: fix xfail reason type annotation (None -> str = "")
- main.py: type: ignore for PyInstaller-injected sys._MEIPASS
2026-04-23 16:11:58 +03:00
Willi Ballenthin
89a365fa3d fix: address Optional member access and type mismatch in tests (chunk 6)
- test_binexport_accessors.py: type: ignore on .expression accesses guarded by test assertions
- test_freeze_dynamic.py: assert isinstance DynamicFeatureExtractor before compare_extractors
- test_binja_features.py: type: ignore on binaryninja guarded by skipif decorator
2026-04-23 16:11:58 +03:00
Willi Ballenthin
2b536e2f53 fix: address type override, alias parameter, and Statement.children issues (chunk 5)
- engine.py: type: ignore for children/replace_child hasattr-guarded subclass attrs
- result_document.py: type: ignore for Pydantic analysis field override and alias args
- render/proto/__init__.py: type: ignore on Pydantic alias argument lines
- rules/__init__.py: type: ignore on ensure_feature_valid_for_scopes StringFactory calls
- result_document.py: fix Scope|None by extracting scope var with assert
2026-04-23 16:11:58 +03:00
Willi Ballenthin
96cabbcc6b fix: address reportAttributeAccessIssue and override mismatches (chunk 4)
- dnfile/helpers.py, insn.py: add import dnfile.mdtable; type: ignore dnfile Unknown returns
- dnfile/extractor.py: rename get_basic_blocks param f->fh
- pefile.py: rename f/bb->fh/bbh stub params; type: ignore for pefile OPTIONAL_HEADER stubs
- ghidra/file.py, helpers.py: initialize addr=0 before conditional loop
2026-04-23 16:11:58 +03:00
Willi Ballenthin
b34079208c fix: address reportPossiblyUnbound diagnostics (chunk 3)
- elf.py: fix bug where vdso_guess except handler set symtab_guess=None
- result_document.py: add assert_never after StaticAnalysis/DynamicAnalysis
- binexport2/helpers.py: guard empty operand_expressions with early return
- tests/fixtures.py: restructure kernel32-64.dll_ workaround to single if/else
2026-04-23 16:11:58 +03:00
Willi Ballenthin
ad8ed3b0b3 fix: align base_extractor abstract method parameter names with all concrete implementations 2026-04-23 16:11:58 +03:00
Willi Ballenthin
d16a85bdba fix: add missing explicit submodule imports for Pyright attribute resolution 2026-04-23 16:11:58 +03:00
Willi Ballenthin
25edb58fdd rules: raise InvalidRule instead of asserting 2026-04-23 16:11:58 +03:00
Willi Ballenthin
ab629e9a8a changelog 2026-04-23 16:11:58 +03:00
Willi Ballenthin
30b97dc9af fix: use tempfile.TemporaryFile as context manager, drop tfile=None guard 2026-04-23 16:11:58 +03:00
Willi Ballenthin
fe4fece1bc fix: revert disable_progress to bool=False, drop Optional[bool]=None workaround 2026-04-23 16:11:58 +03:00
Willi Ballenthin
295ae3ee4b fix: add missing submodule imports for Pyright attribute access 2026-04-23 16:11:58 +03:00
Willi Ballenthin
0655263ed3 fix: add inline explanations to all type: ignore comments 2026-04-23 16:11:58 +03:00
Willi Ballenthin
eb0d313264 fix: type: ignore placement for Pydantic alias parameters in freeze/__init__.py 2026-04-23 16:11:58 +03:00
Willi Ballenthin
aa502d3523 fix: rename unused self to _self in filter closures in base_extractor.py 2026-04-23 16:11:58 +03:00
Willi Ballenthin
546f0b77ea fix: private imports, return types, and unused imports in elffile.py and test_optimizer.py 2026-04-23 16:11:58 +03:00
Willi Ballenthin
7e75f97614 fix: type narrowing, unused imports, and TextIOWrapper guard in main.py 2026-04-23 16:11:58 +03:00
Willi Ballenthin
98d62bd39a fix: assert_never for exhaustive checks, tfile/line unbound, import paths, progress columns 2026-04-23 16:11:58 +03:00
Willi Ballenthin
dadf8b0961 fix: type annotations for disable_progress and module attribute access 2026-04-23 16:11:58 +03:00
Willi Ballenthin
2881939dc3 fix: possibly unbound variables and type annotations in elf.py and address.py 2026-04-23 16:11:58 +03:00
Moritz
74276c8c40 Merge pull request #3006 from mandiant/dependabot/pip/pydantic-2.13.0
build(deps): bump pydantic from 2.12.4 to 2.13.0
2026-04-17 15:23:57 +00:00
dependabot[bot]
e72f8baea6 build(deps): bump rich from 14.3.2 to 15.0.0 (#3007)
Bumps [rich](https://github.com/Textualize/rich) from 14.3.2 to 15.0.0.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v14.3.2...v15.0.0)

---
updated-dependencies:
- dependency-name: rich
  dependency-version: 15.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-16 12:36:42 -06:00
Mike Hunhoff
3cd0e7867b Merge branch 'master' into dependabot/pip/pydantic-2.13.0 2026-04-16 12:36:15 -06:00
Moritz
557f521713 tests: update expected Binary Ninja version to 5.3 (#3011) 2026-04-16 12:35:43 -06:00
Moritz
c0ce1a3fb5 build(deps): bump msgspec from 0.20.0 to 0.21.1 (#3008)
Bumps [msgspec](https://github.com/jcrist/msgspec) from 0.20.0 to 0.21.1.
- [Release notes](https://github.com/jcrist/msgspec/releases)
- [Changelog](https://github.com/jcrist/msgspec/blob/main/docs/changelog.md)
- [Commits](https://github.com/jcrist/msgspec/compare/0.20.0...0.21.1)

---
updated-dependencies:
- dependency-name: msgspec
  dependency-version: 0.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 07:59:11 +00:00
dependabot[bot]
b4e307b85d build(deps): bump msgspec from 0.20.0 to 0.21.1
Bumps [msgspec](https://github.com/jcrist/msgspec) from 0.20.0 to 0.21.1.
- [Release notes](https://github.com/jcrist/msgspec/releases)
- [Changelog](https://github.com/jcrist/msgspec/blob/main/docs/changelog.md)
- [Commits](https://github.com/jcrist/msgspec/compare/0.20.0...0.21.1)

---
updated-dependencies:
- dependency-name: msgspec
  dependency-version: 0.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 16:00:22 +00:00
dependabot[bot]
d71dc8520f build(deps): bump pydantic from 2.12.4 to 2.13.0
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.12.4 to 2.13.0.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.12.4...v2.13.0)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 16:00:05 +00:00
Moritz
99ecd65852 ci: update GitHub Actions to Node.js 24 (#2984)
* ci: update GitHub Actions to Node.js 24 and pin more versions
2026-04-13 16:35:55 +02:00
Mike Hunhoff
0798528b7b ci: use explicit and per job permissions (#3002)
* ci: use explicit and per job permissions

* update CHANGELOG
2026-04-07 14:39:41 -06:00
Mike Hunhoff
c55b06860c ci: fix web rules failure (#3003)
* ci: fix web rules failure

* address feedback

* ruff cleanup
2026-04-07 13:01:23 -06:00
Mike Hunhoff
ed7e0cd77d lint: replace black/isort/flake8 with ruff (#2992)
* lint: replace isort/flake8 with ruff

* update ruff links

* remove stale isort reference

* update CHANGELOG

* address review

* remove unused imports

* remove unnecessary list comprehension

* remove quotes from type annotation

* use dict.get instead of if-else block

* remove unnecessary utf-8 encoding declaration

* Revert "remove unused imports"

This reverts commit 18ba50a22b.

* skip check for unused imports

* fix UP036 Version block is outdated for minimum Python version

* add TODO comment for unused imports

* replace black with ruff

* address review comments
2026-04-07 12:10:41 -06:00
Moritz
ac1cba74b3 feat: update vivisect to 1.3.2 (#3001) 2026-04-07 10:30:21 -06:00
Moritz
ed6b40e967 Merge pull request #3000 from mandiant/dependabot/npm_and_yarn/web/explorer/vite-6.4.2
build(deps-dev): bump vite from 6.4.1 to 6.4.2 in /web/explorer
2026-04-07 09:36:36 +00:00
dependabot[bot]
c07b9e1d33 build(deps-dev): bump vite from 6.4.1 to 6.4.2 in /web/explorer
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.4.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.4.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-06 18:21:14 +00:00
dependabot[bot]
70f275ac0b build(deps-dev): bump types-protobuf (#2994)
Bumps [types-protobuf](https://github.com/python/typeshed) from 6.32.1.20250918 to 7.34.1.20260403.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-protobuf
  dependency-version: 7.34.1.20260403
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mike Hunhoff <mike.hunhoff@gmail.com>
2026-04-06 12:15:37 -06:00
dependabot[bot]
63aa5729ee build(deps-dev): bump mypy from 1.19.1 to 1.20.0 (#2993)
Bumps [mypy](https://github.com/python/mypy) from 1.19.1 to 1.20.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.19.1...v1.20.0)

---
updated-dependencies:
- dependency-name: mypy
  dependency-version: 1.20.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-06 10:42:18 -06:00
dependabot[bot]
63edbedb7c build(deps-dev): bump lodash from 4.17.23 to 4.18.1 in /web/explorer (#2991)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-06 08:59:48 -06:00
Rizky Mirzaviandy Priambodo
ac82a25e11 build: bump linux standalone build to Python 3.13 (#2941)
Co-authored-by: Mike Hunhoff <mike.hunhoff@gmail.com>
2026-04-03 09:42:00 -06:00
Capa Bot
0b7a5f4b78 Sync capa-testfiles submodule 2026-04-03 15:12:39 +00:00
eversinc33
6aeec0f2b2 Change capa-rules version in installation guide (#2965)
* Change capa-rules version in installation guide

Updated the installation instructions to reflect the newest version of capa-rules.

* add md files from /doc to bumpversion.toml

* adjust rule installation command

* bump to 9.4.0
2026-04-03 09:06:49 -06:00
Moritz
7a79f799a7 Merge pull request #2982 from mandiant/fix/workflow-zip-env
ci: fix ZIP_NAME environment variable in build workflow
v9.4.0
2026-04-01 09:28:48 +00:00
mr-tz
4e4e16391a ci: fix ZIP_NAME environment variable in build workflow 2026-04-01 09:27:00 +00:00
Moritz
3276e351db Prepare release v9.4.0 (#2981)
* Prepare release v9.4.0
2026-04-01 10:58:02 +02:00
Capa Bot
d9b05ed534 Sync capa rules submodule 2026-03-31 16:39:30 +00:00
dependabot[bot]
c5fd75f118 build(deps): bump pyasn1 from 0.5.1 to 0.6.3 (#2939) 2026-03-30 21:12:42 +00:00
Moritz
b82c07d87e Merge pull request #2980 from mandiant/dependabot/pip/pygments-2.20.0 2026-03-30 21:12:06 +00:00
dependabot[bot]
0933594ae9 build(deps): bump pygments from 2.19.1 to 2.20.0
Bumps [pygments](https://github.com/pygments/pygments) from 2.19.1 to 2.20.0.
- [Release notes](https://github.com/pygments/pygments/releases)
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
- [Commits](https://github.com/pygments/pygments/compare/2.19.1...2.20.0)

---
updated-dependencies:
- dependency-name: pygments
  dependency-version: 2.20.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 18:43:24 +00:00
Moritz
db84b2cf33 Merge pull request #2978 from mandiant/dependabot/pip/pygithub-2.9.0
build(deps-dev): bump pygithub from 2.8.1 to 2.9.0
2026-03-30 20:42:45 +02:00