Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v7.4.0 #2426

Merged
merged 3 commits into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 32 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,39 @@

### New Features

### Breaking Changes

### New Rules (0)

-

### Bug Fixes

### capa Explorer Web

### capa Explorer IDA Pro plugin

### Development

### Raw diffs
- [capa v7.4.0...master](https://github.com/mandiant/capa/compare/v7.4.0...master)
- [capa-rules v7.4.0...master](https://github.com/mandiant/capa-rules/compare/v7.4.0...master)

## v7.4.0

The v7.4.0 capa release fixes a bug when processing VMRay analysis archives and enhances API extraction for all dynamic backends. For better terminal rendering capa now solely relies on the rich library.

The standalone capa executable can now automatically detect installations of relevant third party applications and use their backends (notably, idalib and Binary Ninja). For the extra standalone Linux build we've upgraded from Python 3.11 to 3.12.

Twelve new rules have been added. Thanks to all the contributors!

*This is the last capa version supporting Python 3.8 and 3.9. If you have major concerns about this please reach out to us.*

### New Features

- add IDA v9.0 backend via idalib #2376 @williballenthin
- locate Binary Ninja API using XDG Desktop Entries #2376 @williballenthin

### Breaking Changes

### New Rules (15)

- nursery/access-unmanaged-com-objects-in-dotnet [email protected]
Expand All @@ -25,7 +53,6 @@
- host-interaction/firewall/modify/access-firewall-policy-via-inetfwpolicy2 [email protected]
- host-interaction/firewall/modify/access-firewall-rule-properties-via-inetfwrule [email protected]
- host-interaction/registry/open-recentdocs-registry-key [email protected]
-

### Bug Fixes

Expand All @@ -39,14 +66,10 @@
### capa Explorer Web
- improve navigation in capa Explorer Web @s-ff #2425

### capa Explorer IDA Pro plugin

### Development

### Raw diffs

- [capa v7.3.0...master](https://github.com/mandiant/capa/compare/v7.3.0...master)
- [capa-rules v7.3.0...master](https://github.com/mandiant/capa-rules/compare/v7.3.0...master)
- [capa v7.3.0...v7.4.0](https://github.com/mandiant/capa/compare/v7.3.0...v7.4.0)
- [capa-rules v7.3.0...v7.4.0](https://github.com/mandiant/capa-rules/compare/v7.3.0...v7.4.0)

## v7.3.0

Expand Down
4 changes: 4 additions & 0 deletions capa/ghidra/capa_explorer.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,10 @@ def main():
from capa.exceptions import UnsupportedRuntimeError

raise UnsupportedRuntimeError("This version of capa can only be used with Python 3.8+")
elif sys.version_info < (3, 10):
from warnings import warn

warn("This is the last capa version supporting Python 3.8 and 3.9.", DeprecationWarning, stacklevel=2)
exit_code = main()
if exit_code != 0:
popup("capa explorer encountered errors during analysis. Please check the console output for more information.") # type: ignore [name-defined] # noqa: F821
Expand Down
4 changes: 4 additions & 0 deletions capa/ghidra/capa_ghidra.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,4 +164,8 @@ def main():
from capa.exceptions import UnsupportedRuntimeError

raise UnsupportedRuntimeError("This version of capa can only be used with Python 3.8+")
elif sys.version_info < (3, 10):
from warnings import warn

warn("This is the last capa version supporting Python 3.8 and 3.9.", DeprecationWarning, stacklevel=2)
sys.exit(main())
4 changes: 4 additions & 0 deletions capa/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -903,6 +903,10 @@ def apply_extractor_filters(extractor: FeatureExtractor, extractor_filters: Filt
def main(argv: Optional[List[str]] = None):
if sys.version_info < (3, 8):
raise UnsupportedRuntimeError("This version of capa can only be used with Python 3.8+")
elif sys.version_info < (3, 10):
from warnings import warn

warn("This is the last capa version supporting Python 3.8 and 3.9.", DeprecationWarning, stacklevel=2)

if argv is None:
argv = sys.argv[1:]
Expand Down
2 changes: 1 addition & 1 deletion capa/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and limitations under the License.
__version__ = "7.3.0"
__version__ = "7.4.0"


def get_major_version():
Expand Down
4 changes: 3 additions & 1 deletion doc/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@

### Bug Fixes

### capa explorer IDA Pro plugin
### capa Explorer Web

### capa Explorer IDA Pro plugin

### Development

Expand Down