diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f385f369..c9860292f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 mehunhoff@google.com @@ -25,7 +53,6 @@ - host-interaction/firewall/modify/access-firewall-policy-via-inetfwpolicy2 jakub.jozwiak@mandiant.com - host-interaction/firewall/modify/access-firewall-rule-properties-via-inetfwrule jakub.jozwiak@mandiant.com - host-interaction/registry/open-recentdocs-registry-key matthew.williams@mandiant.com -- ### Bug Fixes @@ -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 diff --git a/capa/ghidra/capa_explorer.py b/capa/ghidra/capa_explorer.py index e0b2cf19a..4628b6752 100644 --- a/capa/ghidra/capa_explorer.py +++ b/capa/ghidra/capa_explorer.py @@ -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 diff --git a/capa/ghidra/capa_ghidra.py b/capa/ghidra/capa_ghidra.py index 55ab8046e..817924930 100644 --- a/capa/ghidra/capa_ghidra.py +++ b/capa/ghidra/capa_ghidra.py @@ -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()) diff --git a/capa/main.py b/capa/main.py index 518c9ce26..60c5d638a 100644 --- a/capa/main.py +++ b/capa/main.py @@ -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:] diff --git a/capa/version.py b/capa/version.py index dce982c2c..8b31915f7 100644 --- a/capa/version.py +++ b/capa/version.py @@ -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(): diff --git a/doc/release.md b/doc/release.md index 2149b8f5e..602c7eacc 100644 --- a/doc/release.md +++ b/doc/release.md @@ -26,7 +26,9 @@ ### Bug Fixes - ### capa explorer IDA Pro plugin + ### capa Explorer Web + + ### capa Explorer IDA Pro plugin ### Development