mirror of
https://github.com/mandiant/capa.git
synced 2025-12-26 04:41:13 -08:00
* Sync capa rules submodule * Sync capa-testfiles submodule * Sync capa rules submodule * changelog * *: remove /x32 and /x64 flavors from number and offset features * *: remove more references to /x32 and /x64 * linter: accept instruction scope * rules: fix max operand index (4) * API: better support A/W functions * vverbose: show lib rule matches * main: accept multiple paths to rules * main: fix removal of default rules path * lint: fix rules path * changelog * capa_as_library: fix rules path is list now * main: better handle multiple rules paths * main: bail if python 3.6 or below closes #964 * ida: readme: remove python 3.6 support * capa2yara: fix rules paths * render: meta: display rule paths on separate lines closes #971 * render: verbose: add doc * verbose: make rule path multiline more concise * vverbose: don't show examples in output closes #970 * vverbose: render subscope name, like "basic block:" closes #963 * build(deps-dev): bump pytest from 7.0.1 to 7.1.1 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.0.1 to 7.1.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.0.1...7.1.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * ci: build: update pip and setuptools * ci: build: bump pyinstall to v4.10 * Sync capa rules submodule * Dotnet mixed mode detect (#969) * feat: start dotnet detection (#955) * feat: start dotnet detection * Apply suggestions from code review Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> * refactor: dn instead of dotnet * refactor: format branches, extractor reorg * refactor: format selection and dotnet detect * feat: get format, arch, os * refactor: log errors and exceptions * ci: also test and build for dotnet-main dev * fix: import path * fix: circular dep * fix: remove buf argument feat: get runtime meta data * fix: log unsupported runtime error * fix: type ignore Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> * fix: imports and add tests * feat: detect mixed mode and tests * feat: start dotnet detection (#955) * feat: start dotnet detection * Apply suggestions from code review Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> * refactor: dn instead of dotnet * refactor: format branches, extractor reorg * refactor: format selection and dotnet detect * feat: get format, arch, os * refactor: log errors and exceptions * ci: also test and build for dotnet-main dev * fix: import path * fix: circular dep * fix: remove buf argument feat: get runtime meta data * fix: log unsupported runtime error * fix: type ignore Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> * fix: imports and add tests Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> * test: checkout submodules recursively Co-authored-by: Capa Bot <capa-dev@mandiant.com> Co-authored-by: Willi Ballenthin <willi.ballenthin@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
93 lines
2.5 KiB
YAML
93 lines
2.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, dotnet-main ]
|
|
pull_request:
|
|
branches: [ master, dotnet-main ]
|
|
|
|
# save workspaces to speed up testing
|
|
env:
|
|
CAPA_SAVE_WORKSPACE: "True"
|
|
|
|
jobs:
|
|
changelog_format:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout capa
|
|
uses: actions/checkout@v2
|
|
# The sync GH action in capa-rules relies on a single '- *$' in the CHANGELOG file
|
|
- name: Ensure CHANGELOG has '- *$'
|
|
run: |
|
|
number=$(grep '\- *$' CHANGELOG.md | wc -l)
|
|
if [ $number != 1 ]; then exit 1; fi
|
|
|
|
code_style:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout capa
|
|
uses: actions/checkout@v2
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.8"
|
|
- name: Install dependencies
|
|
run: pip install -e .[dev]
|
|
- name: Lint with isort
|
|
run: isort --profile black --length-sort --line-width 120 -c .
|
|
- name: Lint with black
|
|
run: black -l 120 --check .
|
|
- name: Lint with pycodestyle
|
|
run: pycodestyle --show-source capa/ scripts/ tests/
|
|
- name: Check types with mypy
|
|
run: mypy --config-file .github/mypy/mypy.ini capa/ scripts/ tests/
|
|
|
|
rule_linter:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout capa with submodules
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.8"
|
|
- name: Install capa
|
|
run: pip install -e .
|
|
- name: Run rule linter
|
|
run: python scripts/lint.py rules/
|
|
|
|
tests:
|
|
name: Tests in ${{ matrix.python-version }} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
needs: [code_style, rule_linter]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-20.04, windows-2019, macos-10.15]
|
|
# across all operating systems
|
|
python-version: ["3.7", "3.10"]
|
|
include:
|
|
# on Ubuntu run these as well
|
|
- os: ubuntu-20.04
|
|
python-version: "3.8"
|
|
- os: ubuntu-20.04
|
|
python-version: "3.9"
|
|
steps:
|
|
- name: Checkout capa with submodules
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install pyyaml
|
|
if: matrix.os == 'ubuntu-20.04'
|
|
run: sudo apt-get install -y libyaml-dev
|
|
- name: Install capa
|
|
run: pip install -e .[dev]
|
|
- name: Run tests
|
|
run: pytest -v tests/
|