Repository Analysis

mandiant/capa

The FLARE team's open-source tool to identify capabilities in executable files.

51.0 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of mandiant/capa, a Python project with 6,133 GitHub stars. SynthScan v2.0 examined 68,160 lines of code across 301 source files, recording 1244 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 51.0 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

51.0
Adjusted Score
51.0
Raw Score
100%
Time Factor
2026-08-13
Last Push
6.1K
Stars
Python
Language
68.2K
Lines of Code
301
Files
1.2K
Pattern Hits
2026-08-13
Scan Date
0.78
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 175HIGH 59MEDIUM 22LOW 988

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1244 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators175 hits · 2182 pts
SeverityFileLineSnippetContext
CRITICALweb/explorer/src/components/MetadataPanel.vue102const fileName = props.data.meta.sample.path.split("/").pop();CODE
CRITICALweb/rules/public/js/jquery-3.5.1.slim.min.js18!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALcapa/loader.py289 return capa.features.extractors.cape.extractor.CapeExtractor.from_report(report)CODE
CRITICALcapa/loader.py295 return capa.features.extractors.drakvuf.extractor.DrakvufExtractor.from_report(report)CODE
CRITICALcapa/loader.py300 return capa.features.extractors.vmray.extractor.VMRayExtractor.from_zipfile(input_path)CODE
CRITICALcapa/loader.py308 return capa.features.extractors.dnfile.extractor.DnfileFeatureExtractor(input_path)CODE
CRITICALcapa/loader.py541 file_extractors.append(capa.features.extractors.cape.extractor.CapeExtractor.from_report(report))CODE
CRITICALcapa/loader.py548 file_extractors.append(capa.features.extractors.drakvuf.extractor.DrakvufExtractor.from_report(report))CODE
CRITICALcapa/loader.py553 file_extractors.append(capa.features.extractors.vmray.extractor.VMRayExtractor.from_zipfile(input_file))CODE
CRITICALcapa/loader.py338 return capa.features.extractors.binja.extractor.BinjaFeatureExtractor(bv)CODE
CRITICALcapa/loader.py371 return capa.features.extractors.viv.extractor.VivisectFeatureExtractor(vw, input_path, os_)CODE
CRITICALcapa/loader.py384 return capa.features.extractors.binexport2.extractor.BinExport2FeatureExtractor(be2, buf)CODE
CRITICALcapa/loader.py423 return capa.features.extractors.ida.extractor.IdaFeatureExtractor()CODE
CRITICALcapa/loader.py487 return capa.features.extractors.ghidra.extractor.GhidraFeatureExtractor(ctx_manager=cm, tmpdir=tmpdir)CODE
CRITICALcapa/main.py1093 capabilities = find_capabilities(rules, capa.features.extractors.ida.extractor.IdaFeatureExtractor())STRING
CRITICALcapa/main.py1126 capa.features.extractors.ghidra.context.set_context(program, flat_api, monitor_)STRING
CRITICALcapa/main.py1143 capa.features.extractors.ghidra.extractor.GhidraFeatureExtractor(),STRING
CRITICALcapa/features/extractors/viv/extractor.py51 self.global_features.extend(capa.features.extractors.viv.file.extract_file_format(self.buf))CODE
CRITICALcapa/features/extractors/viv/extractor.py53 self.global_features.extend(capa.features.extractors.viv.global_.extract_arch(self.vw))CODE
CRITICALcapa/features/extractors/viv/extractor.py63 yield from capa.features.extractors.viv.file.extract_features(self.vw, self.buf)CODE
CRITICALcapa/features/extractors/viv/extractor.py73 yield from capa.features.extractors.viv.function.extract_features(fh)CODE
CRITICALcapa/features/extractors/viv/extractor.py83 yield from capa.features.extractors.viv.basicblock.extract_features(fh, bbh)CODE
CRITICALcapa/features/extractors/viv/extractor.py95 yield from capa.features.extractors.viv.insn.extract_features(fh, bbh, ih)CODE
CRITICALcapa/features/extractors/viv/insn.py100 target = capa.features.extractors.viv.helpers.get_coderef_from(f.vw, insn.va)CODE
CRITICALcapa/features/extractors/viv/insn.py151 target = capa.features.extractors.viv.helpers.get_coderef_from(f.vw, target)CODE
CRITICALcapa/features/extractors/dnfile/extractor.py111 yield from capa.features.extractors.dnfile.file.extract_features(self.pe)CODE
CRITICALcapa/features/extractors/dnfile/extractor.py157 yield from capa.features.extractors.dnfile.function.extract_features(fh)CODE
CRITICALcapa/features/extractors/dnfile/extractor.py178 yield from capa.features.extractors.dnfile.insn.extract_features(fh, bbh, ih)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py52 self.global_features = list(capa.features.extractors.drakvuf.global_.extract_features(self.report))CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py62 yield from capa.features.extractors.drakvuf.file.extract_features(self.report)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py65 yield from capa.features.extractors.drakvuf.file.get_processes(self.sorted_calls)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py68 yield from capa.features.extractors.drakvuf.process.extract_features(ph)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py74 yield from capa.features.extractors.drakvuf.process.get_threads(self.sorted_calls, ph)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py80 yield from capa.features.extractors.drakvuf.thread.get_calls(self.sorted_calls, ph, th)CODE
CRITICALcapa/features/extractors/drakvuf/extractor.py96 yield from capa.features.extractors.drakvuf.call.extract_features(ph, th, ch)CODE
CRITICALcapa/features/extractors/ida/extractor.py46 self.global_features.extend(capa.features.extractors.ida.file.extract_file_format())CODE
CRITICALcapa/features/extractors/ida/extractor.py47 self.global_features.extend(capa.features.extractors.ida.global_.extract_os())CODE
CRITICALcapa/features/extractors/ida/extractor.py48 self.global_features.extend(capa.features.extractors.ida.global_.extract_arch())CODE
CRITICALcapa/features/extractors/ida/extractor.py57 yield from capa.features.extractors.ida.file.extract_features()CODE
CRITICALcapa/features/extractors/ida/extractor.py71 yield from capa.features.extractors.ida.function.extract_features(fh)CODE
CRITICALcapa/features/extractors/ida/extractor.py80 yield from capa.features.extractors.ida.basicblock.extract_features(fh, bbh)CODE
CRITICALcapa/features/extractors/ida/extractor.py89 yield from capa.features.extractors.ida.insn.extract_features(fh, bbh, ih)CODE
CRITICALcapa/features/extractors/ida/file.py55 for off in capa.features.extractors.ida.helpers.find_byte_sequence(seg.start_ea, seg.end_ea, mzx):CODE
CRITICALcapa/features/extractors/ida/file.py88 for seg in capa.features.extractors.ida.helpers.get_segments(skip_header_segments=True):CODE
CRITICALcapa/features/extractors/ida/file.py118 for ea, info in capa.features.extractors.ida.helpers.get_file_imports().items():CODE
CRITICALcapa/features/extractors/ida/file.py139 for ea, info in capa.features.extractors.ida.helpers.get_file_externs().items():CODE
CRITICALcapa/features/extractors/ida/file.py150 for seg in capa.features.extractors.ida.helpers.get_segments(skip_header_segments=True):CODE
CRITICALcapa/features/extractors/ida/file.py161 for seg in capa.features.extractors.ida.helpers.get_segments():CODE
CRITICALcapa/features/extractors/ida/file.py162 seg_buff = capa.features.extractors.ida.helpers.get_segment_buffer(seg)CODE
CRITICALcapa/features/extractors/ida/basicblock.py33 op_val = capa.features.extractors.ida.helpers.mask_op_val(op)CODE
CRITICALcapa/features/extractors/ida/basicblock.py82 for insn in capa.features.extractors.ida.helpers.get_instructions_in_range(bb.start_ea, bb.end_ea):CODE
CRITICALcapa/features/extractors/ida/basicblock.py98 if capa.features.extractors.ida.helpers.is_basic_block_tight_loop(bbh.inner):CODE
CRITICALcapa/features/extractors/ida/function.py50 if capa.features.extractors.ida.helpers.is_function_recursive(fh.inner):CODE
CRITICALcapa/features/extractors/ida/function.py73 for aname in capa.features.extractors.ida.helpers.get_function_alternative_names(fh.inner.start_ea):CODE
CRITICALcapa/features/extractors/ida/insn.py207 ref = capa.features.extractors.ida.helpers.find_data_reference_from_insn(insn)CODE
CRITICALcapa/features/extractors/ida/insn.py209 extracted_bytes = capa.features.extractors.ida.helpers.read_bytes_at(ref, MAX_BYTES_FEATURE_SIZE)CODE
CRITICALcapa/features/extractors/ida/insn.py211 if not capa.features.extractors.ida.helpers.find_string_at(ref):CODE
CRITICALcapa/features/extractors/ida/insn.py227 ref = capa.features.extractors.ida.helpers.find_data_reference_from_insn(insn)CODE
CRITICALcapa/features/extractors/ida/insn.py229 found = capa.features.extractors.ida.helpers.find_string_at(ref)CODE
CRITICALcapa/features/extractors/ida/insn.py334 for insn in capa.features.extractors.ida.helpers.get_instructions_in_range(bb.start_ea, bb.end_ea):CODE
115 more matches not shown…
Hyper-Verbose Identifiers453 hits · 436 pts
SeverityFileLineSnippetContext
LOWweb/explorer/src/utils/rdocParser.js137function createAdditionalMatchesNode(index, additionalMatchCount) {CODE
LOWweb/explorer/src/utils/rdocParser.js262export function parseFunctionCapabilities(doc) {CODE
LOWweb/explorer/src/utils/rdocParser.js429function invertNotStatementSuccess(node) {CODE
LOWcapa/main.py194def simple_message_exception_handler(CODE
LOWcapa/main.py523def ensure_input_exists_from_cli(args):CODE
LOWcapa/main.py540def get_input_format_from_cli(args) -> str:CODE
LOWcapa/main.py713def get_file_extractors_from_cli(args, input_format: str) -> list[FeatureExtractor]:CODE
LOWcapa/main.py759def find_static_limitations_from_cli(args, rules: RuleSet, file_extractors: list[FeatureExtractor]):CODE
LOWcapa/main.py792def find_dynamic_limitations_from_cli(args, rules: RuleSet, file_extractors: list[FeatureExtractor]):CODE
LOWcapa/main.py910def get_extractor_filters_from_cli(args, input_format) -> FilterConfig:CODE
LOWcapa/helpers.py223def get_format_from_extension(sample: Path) -> str:CODE
LOWcapa/helpers.py270def log_unsupported_format_error():CODE
LOWcapa/helpers.py280def log_unsupported_cape_report_error(error: str):CODE
LOWcapa/helpers.py291def log_unsupported_drakvuf_report_error(error: str):CODE
LOWcapa/helpers.py302def log_unsupported_vmray_report_error(error: str):CODE
LOWcapa/helpers.py313def log_empty_sandbox_report_error(error: str, sandbox_name: str):CODE
LOWcapa/helpers.py337def log_unsupported_arch_error():CODE
LOWcapa/helpers.py376def is_cache_newer_than_rule_code(cache_dir: Path) -> bool:CODE
LOWcapa/capabilities/dynamic.py221def find_process_capabilities(CODE
LOWcapa/capabilities/dynamic.py271def find_dynamic_capabilities(CODE
LOWcapa/capabilities/common.py111def is_static_limitation_rule(r: Rule) -> bool:CODE
LOWcapa/capabilities/common.py120def is_dynamic_limitation_rule(r: Rule) -> bool:CODE
LOWcapa/capabilities/static.py39def find_instruction_capabilities(CODE
LOWcapa/capabilities/static.py71def find_basic_block_capabilities(CODE
LOWcapa/features/extractors/pefile.py36def extract_file_export_names(pe, **kwargs):CODE
LOWcapa/features/extractors/pefile.py63def extract_file_import_names(pe, **kwargs):CODE
LOWcapa/features/extractors/pefile.py95def extract_file_section_names(pe, **kwargs):CODE
LOWcapa/features/extractors/pefile.py111def extract_file_function_names(**kwargs):CODE
LOWcapa/features/extractors/pefile.py217 def extract_function_features(self, fh):CODE
LOWcapa/features/extractors/pefile.py223 def extract_basic_block_features(self, fh, bbh):CODE
LOWcapa/features/extractors/null.py82 def extract_function_features(self, fh):CODE
LOWcapa/features/extractors/null.py90 def extract_basic_block_features(self, fh, bbh):CODE
LOWcapa/features/extractors/base_extractor.py223 def extract_function_features(self, fh: FunctionHandle) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/base_extractor.py252 def extract_basic_block_features(self, fh: FunctionHandle, bbh: BBHandle) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/elf.py906def guess_os_from_ident_directive(elf: ELF) -> Optional[OS]:CODE
LOWcapa/features/extractors/elf.py962def guess_os_from_abi_versions_needed(elf: ELF) -> Optional[OS]:CODE
LOWcapa/features/extractors/elf.py995def guess_os_from_needed_dependencies(elf: ELF) -> Optional[OS]:CODE
LOWcapa/features/extractors/elf.py1116def guess_os_from_go_buildinfo(elf: ELF) -> Optional[OS]:CODE
LOWcapa/features/extractors/elf.py1450def guess_os_from_vdso_strings(elf: ELF) -> Optional[OS]:CODE
LOWcapa/features/extractors/dotnetfile.py66def extract_file_import_names(pe: dnfile.dnPE, **kwargs) -> Iterator[tuple[Import, Address]]:CODE
LOWcapa/features/extractors/dotnetfile.py77def extract_file_function_names(pe: dnfile.dnPE, **kwargs) -> Iterator[tuple[FunctionName, Address]]:CODE
LOWcapa/features/extractors/dotnetfile.py82def extract_file_namespace_features(pe: dnfile.dnPE, **kwargs) -> Iterator[tuple[Namespace, Address]]:CODE
LOWcapa/features/extractors/dotnetfile.py106def extract_file_class_features(pe: dnfile.dnPE, **kwargs) -> Iterator[tuple[Class, Address]]:CODE
LOWcapa/features/extractors/dotnetfile.py158def extract_file_mixed_mode_characteristic_features(CODE
LOWcapa/features/extractors/dotnetfile.py249 def extract_function_features(self, fh):CODE
LOWcapa/features/extractors/dotnetfile.py255 def extract_basic_block_features(self, fh, bbh):CODE
LOWcapa/features/extractors/helpers.py92def reformat_forwarded_export_name(forwarded_name: str) -> str:CODE
LOWcapa/features/extractors/elffile.py33def extract_file_export_names(elf: ELFFile, **kwargs):CODE
LOWcapa/features/extractors/elffile.py88def extract_file_import_names(elf: ELFFile, **kwargs):CODE
LOWcapa/features/extractors/elffile.py148def extract_file_section_names(elf: ELFFile, **kwargs):CODE
LOWcapa/features/extractors/elffile.py243 def extract_function_features(self, fh):CODE
LOWcapa/features/extractors/elffile.py249 def extract_basic_block_features(self, fh, bbh):CODE
LOWcapa/features/extractors/viv/indirect_calls.py38def get_previous_instructions(vw: VivWorkspace, va: int) -> list[int]:CODE
LOWcapa/features/extractors/viv/extractor.py72 def extract_function_features(self, fh: FunctionHandle) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/extractor.py82 def extract_basic_block_features(self, fh: FunctionHandle, bbh) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/file.py45def extract_file_export_names(vw: vivisect.VivWorkspace, **kwargs) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/file.py66def extract_file_import_names(vw, **kwargs) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/file.py101def extract_file_section_names(vw, **kwargs) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/file.py110def extract_file_function_names(vw, **kwargs) -> Iterator[tuple[Feature, Address]]:CODE
LOWcapa/features/extractors/viv/function.py29def extract_function_symtab_names(CODE
393 more matches not shown…
Cross-File Repetition48 hits · 240 pts
SeverityFileLineSnippetContext
HIGHcapa/features/extractors/pefile.py0extract function imports 1. imports by ordinal: - modulename.#ordinal 2. imports by name, results in two features to supSTRING
HIGHcapa/features/extractors/viv/file.py0extract function imports 1. imports by ordinal: - modulename.#ordinal 2. imports by name, results in two features to supSTRING
HIGHcapa/features/extractors/ida/file.py0extract function imports 1. imports by ordinal: - modulename.#ordinal 2. imports by name, results in two features to supSTRING
HIGHcapa/features/extractors/binja/file.py0extract function imports 1. imports by ordinal: - modulename.#ordinal 2. imports by name, results in two features to supSTRING
HIGHcapa/features/extractors/ghidra/file.py0extract function imports 1. imports by ordinal: - modulename.#ordinal 2. imports by name, results in two features to supSTRING
HIGHcapa/features/extractors/pefile.py0extract the names of statically-linked library functions.STRING
HIGHcapa/features/extractors/viv/file.py0extract the names of statically-linked library functions.STRING
HIGHcapa/features/extractors/ida/file.py0extract the names of statically-linked library functions.STRING
HIGHcapa/features/extractors/binja/file.py0extract the names of statically-linked library functions.STRING
HIGHcapa/features/extractors/ghidra/file.py0extract the names of statically-linked library functions.STRING
HIGHcapa/features/extractors/viv/basicblock.py0return string length if all operand bytes are ascii or utf16-le printableSTRING
HIGHcapa/features/extractors/ida/basicblock.py0return string length if all operand bytes are ascii or utf16-le printableSTRING
HIGHcapa/features/extractors/binja/function.py0return string length if all operand bytes are ascii or utf16-le printableSTRING
HIGHcapa/features/extractors/ghidra/basicblock.py0return string length if all operand bytes are ascii or utf16-le printableSTRING
HIGHcapa/features/extractors/viv/insn.py0parse call $+5 instruction from the given instruction.STRING
HIGHcapa/features/extractors/ida/insn.py0parse call $+5 instruction from the given instruction.STRING
HIGHcapa/features/extractors/binja/insn.py0parse call $+5 instruction from the given instruction.STRING
HIGHcapa/features/extractors/ghidra/insn.py0parse call $+5 instruction from the given instruction.STRING
HIGHcapa/features/extractors/ida/basicblock.py0check basic block for stackstring indicators true if basic block contains enough moves of constant bytes to the stackSTRING
HIGHcapa/features/extractors/binja/function.py0check basic block for stackstring indicators true if basic block contains enough moves of constant bytes to the stackSTRING
HIGHcapa/features/extractors/ghidra/basicblock.py0check basic block for stackstring indicators true if basic block contains enough moves of constant bytes to the stackSTRING
HIGHcapa/features/extractors/ida/insn.py0parse instruction number features example: push 3136b0h ; dwcontrolcodeSTRING
HIGHcapa/features/extractors/binja/insn.py0parse instruction number features example: push 3136b0h ; dwcontrolcodeSTRING
HIGHcapa/features/extractors/ghidra/insn.py0parse instruction number features example: push 3136b0h ; dwcontrolcodeSTRING
HIGHcapa/features/extractors/ida/insn.py0parse referenced byte sequences example: push offset iid_004118d4_ishelllinka ; riidSTRING
HIGHcapa/features/extractors/binja/insn.py0parse referenced byte sequences example: push offset iid_004118d4_ishelllinka ; riidSTRING
HIGHcapa/features/extractors/ghidra/insn.py0parse referenced byte sequences example: push offset iid_004118d4_ishelllinka ; riidSTRING
HIGHcapa/features/extractors/ida/insn.py0parse instruction string features example: push offset aacr ; "acr > "STRING
HIGHcapa/features/extractors/binja/insn.py0parse instruction string features example: push offset aacr ; "acr > "STRING
HIGHcapa/features/extractors/ghidra/insn.py0parse instruction string features example: push offset aacr ; "acr > "STRING
HIGHcapa/features/extractors/ida/insn.py0parse instruction structure offset features example: .text:0040112f cmp [esi+4], ebxSTRING
HIGHcapa/features/extractors/binja/insn.py0parse instruction structure offset features example: .text:0040112f cmp [esi+4], ebxSTRING
HIGHcapa/features/extractors/ghidra/insn.py0parse instruction structure offset features example: .text:0040112f cmp [esi+4], ebxSTRING
HIGHcapa/features/extractors/ida/insn.py0inspect the instruction for a call or jmp that crosses section boundariesSTRING
HIGHcapa/features/extractors/binja/insn.py0inspect the instruction for a call or jmp that crosses section boundariesSTRING
HIGHcapa/features/extractors/ghidra/insn.py0inspect the instruction for a call or jmp that crosses section boundariesSTRING
HIGHcapa/features/extractors/ida/insn.py0extract functions calls from features most relevant at the function scope, however, its most efficient to extract at theSTRING
HIGHcapa/features/extractors/binja/insn.py0extract functions calls from features most relevant at the function scope, however, its most efficient to extract at theSTRING
HIGHcapa/features/extractors/ghidra/insn.py0extract functions calls from features most relevant at the function scope, however, its most efficient to extract at theSTRING
HIGHcapa/features/extractors/ida/insn.py0extract indirect function calls (e.g., call eax or call dword ptr [edx+4]) does not include calls like => call ds:dword_STRING
HIGHcapa/features/extractors/binja/insn.py0extract indirect function calls (e.g., call eax or call dword ptr [edx+4]) does not include calls like => call ds:dword_STRING
HIGHcapa/features/extractors/ghidra/insn.py0extract indirect function calls (e.g., call eax or call dword ptr [edx+4]) does not include calls like => call ds:dword_STRING
HIGHtests/test_rule_cache.py0rule: meta: authors: - user@domain.com examples: - foo1234 - bar5678 scopes: static: function dynamic: process name: aaaSTRING
HIGHtests/test_fmt.py0rule: meta: authors: - user@domain.com examples: - foo1234 - bar5678 scopes: static: function dynamic: process name: aaaSTRING
HIGHtests/test_render.py0rule: meta: authors: - user@domain.com examples: - foo1234 - bar5678 scopes: static: function dynamic: process name: aaaSTRING
HIGHtests/test_result_document.py0rule: meta: name: test rule no scopes scopes: static: function dynamic: process features: - api: createfileSTRING
HIGHtests/test_rules.py0rule: meta: name: test rule no scopes scopes: static: function dynamic: process features: - api: createfileSTRING
HIGHtests/test_scripts.py0rule: meta: name: test rule no scopes scopes: static: function dynamic: process features: - api: createfileSTRING
Over-Commented Block248 hits · 237 pts
SeverityFileLineSnippetContext
LOW.pre-commit-config.yaml1# install the pre-commit hooks:COMMENT
LOWpyproject.toml1# Copyright 2023 Google LLCCOMMENT
LOWpyproject.toml41dependencies = [COMMENT
LOWpyproject.toml61 #COMMENT
LOWweb/rules/scripts/build_rules.py1# Copyright 2024 Google LLCCOMMENT
LOWweb/rules/scripts/build_rules.py161 logger.info("wrote: %s", html_path)COMMENT
LOWweb/rules/scripts/modified-dates.py1# Copyright 2024 Google LLCCOMMENT
LOWweb/rules/scripts/build_root.py1# Copyright 2024 Google LLCCOMMENT
LOWcapa/perf.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/version.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/engine.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/engine.py261 raise ValueError("cannot evaluate a subscope directly!")COMMENT
LOWcapa/loader.py1# Copyright 2024 Google LLCCOMMENT
LOWcapa/optimizer.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/exceptions.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/main.py1#!/usr/bin/env python3COMMENT
LOWcapa/main.py441 # from sys.stdout type hint:COMMENT
LOWcapa/helpers.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/capabilities/dynamic.py1# Copyright 2023 Google LLCCOMMENT
LOWcapa/capabilities/dynamic.py81 super().__init__()COMMENT
LOWcapa/capabilities/common.py1# Copyright 2023 Google LLCCOMMENT
LOWcapa/capabilities/static.py1# Copyright 2023 Google LLCCOMMENT
LOWcapa/features/address.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/file.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/common.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/basicblock.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/insn.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/freeze/__init__.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/freeze/features.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/freeze/__main__.py1# Copyright 2026 Google LLCCOMMENT
LOWcapa/features/extractors/pefile.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/null.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/loops.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/base_extractor.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/common.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/elf.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/elf.py1141 #COMMENT
LOWcapa/features/extractors/elf.py1201 #COMMENT
LOWcapa/features/extractors/elf.py1301 # - freebsd_amd64COMMENT
LOWcapa/features/extractors/elf.py1321 # - linux_x86COMMENT
LOWcapa/features/extractors/elf.py1381 # candidates today:COMMENT
LOWcapa/features/extractors/elf.py1401 # - linux_armCOMMENT
LOWcapa/features/extractors/dotnetfile.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/helpers.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/strings.py1# strings code from FLOSS, https://github.com/mandiant/flare-flossCOMMENT
LOWcapa/features/extractors/elffile.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/viv/indirect_calls.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/extractor.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/viv/file.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/basicblock.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/helpers.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/global_.py1# Copyright 2021 Google LLCCOMMENT
LOWcapa/features/extractors/viv/function.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/insn.py1# Copyright 2020 Google LLCCOMMENT
LOWcapa/features/extractors/viv/insn.py81 if target in imports:COMMENT
LOWcapa/features/extractors/dnfile/types.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/dnfile/extractor.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/dnfile/file.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/dnfile/helpers.py1# Copyright 2022 Google LLCCOMMENT
LOWcapa/features/extractors/dnfile/function.py1# Copyright 2022 Google LLCCOMMENT
188 more matches not shown…
Deep Nesting142 hits · 124 pts
SeverityFileLineSnippetContext
LOWweb/rules/scripts/build_root.py54CODE
LOWcapa/loader.py184CODE
LOWcapa/loader.py265CODE
LOWcapa/loader.py513CODE
LOWcapa/loader.py561CODE
LOWcapa/loader.py677CODE
LOWcapa/optimizer.py23CODE
LOWcapa/main.py401CODE
LOWcapa/main.py568CODE
LOWcapa/main.py713CODE
LOWcapa/main.py850CODE
LOWcapa/main.py944CODE
LOWcapa/helpers.py200CODE
LOWcapa/helpers.py223CODE
LOWcapa/capabilities/static.py151CODE
LOWcapa/features/freeze/__init__.py72CODE
LOWcapa/features/freeze/__init__.py106CODE
LOWcapa/features/freeze/features.py113CODE
LOWcapa/features/freeze/features.py28CODE
LOWcapa/features/extractors/pefile.py36CODE
LOWcapa/features/extractors/pefile.py63CODE
LOWcapa/features/extractors/common.py67CODE
LOWcapa/features/extractors/common.py90CODE
LOWcapa/features/extractors/common.py125CODE
LOWcapa/features/extractors/elf.py829CODE
LOWcapa/features/extractors/elf.py873CODE
LOWcapa/features/extractors/elf.py906CODE
LOWcapa/features/extractors/elf.py962CODE
LOWcapa/features/extractors/elf.py1541CODE
LOWcapa/features/extractors/elf.py495CODE
LOWcapa/features/extractors/elffile.py88CODE
LOWcapa/features/extractors/elffile.py174CODE
LOWcapa/features/extractors/viv/indirect_calls.py79CODE
LOWcapa/features/extractors/viv/basicblock.py30CODE
LOWcapa/features/extractors/viv/basicblock.py103CODE
LOWcapa/features/extractors/viv/function.py29CODE
LOWcapa/features/extractors/viv/function.py59CODE
LOWcapa/features/extractors/viv/insn.py59CODE
LOWcapa/features/extractors/viv/insn.py260CODE
LOWcapa/features/extractors/viv/insn.py420CODE
LOWcapa/features/extractors/viv/insn.py477CODE
LOWcapa/features/extractors/viv/insn.py518CODE
LOWcapa/features/extractors/viv/insn.py677CODE
LOWcapa/features/extractors/dnfile/insn.py95CODE
LOWcapa/features/extractors/drakvuf/models.py126CODE
LOWcapa/features/extractors/ida/file.py107CODE
LOWcapa/features/extractors/ida/basicblock.py31CODE
LOWcapa/features/extractors/ida/helpers.py267CODE
LOWcapa/features/extractors/ida/insn.py308CODE
LOWcapa/features/extractors/binja/find_binja_api.py107CODE
LOWcapa/features/extractors/binja/file.py57CODE
LOWcapa/features/extractors/binja/file.py149CODE
LOWcapa/features/extractors/binja/insn.py66CODE
LOWcapa/features/extractors/binja/insn.py123CODE
LOWcapa/features/extractors/binja/insn.py493CODE
LOWcapa/features/extractors/binja/insn.py135CODE
LOWcapa/features/extractors/binexport2/__init__.py62CODE
LOWcapa/features/extractors/binexport2/extractor.py48CODE
LOWcapa/features/extractors/binexport2/helpers.py202CODE
LOWcapa/features/extractors/binexport2/helpers.py352CODE
82 more matches not shown…
Modern Structural Boilerplate61 hits · 62 pts
SeverityFileLineSnippetContext
LOWweb/rules/scripts/build_rules.py27logger = logging.getLogger(__name__)CODE
LOWweb/rules/scripts/modified-dates.py22logger = logging.getLogger(__name__)CODE
LOWweb/rules/scripts/build_root.py22logger = logging.getLogger(__name__)CODE
LOWcapa/loader.py62logger = logging.getLogger(__name__)CODE
LOWcapa/optimizer.py20logger = logging.getLogger(__name__)CODE
LOWcapa/capabilities/dynamic.py30logger = logging.getLogger(__name__)CODE
LOWcapa/capabilities/common.py35logger = logging.getLogger(__name__)CODE
LOWcapa/capabilities/static.py30logger = logging.getLogger(__name__)CODE
LOWcapa/features/common.py32logger = logging.getLogger(__name__)CODE
LOWcapa/features/freeze/__init__.py39logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/pefile.py28logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/common.py47logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/elf.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/dotnetfile.py58logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/elffile.py30logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/viv/extractor.py39logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/viv/global_.py21logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/dnfile/helpers.py33logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/dnfile/function.py27logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/dnfile/insn.py41logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/thread.py23logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/models.py20logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/extractor.py36logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/file.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/process.py24logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/call.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/drakvuf/global_.py23logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/ida/idalib.py18logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/ida/global_.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binja/find_binja_api.py23logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binja/global_.py23logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/__init__.py41logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/extractor.py44logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/file.py29logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/insn.py39logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/arch/intel/insn.py33logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/binexport2/arch/arm/insn.py35logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/ghidra/global_.py25logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/vmray/__init__.py25logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/vmray/extractor.py41logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/vmray/file.py25logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/vmray/call.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/vmray/global_.py36logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/thread.py23logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/extractor.py37logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/file.py26logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/process.py24logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/call.py27logger = logging.getLogger(__name__)CODE
LOWcapa/features/extractors/cape/global_.py35logger = logging.getLogger(__name__)CODE
LOWcapa/render/vverbose.py36logger = logging.getLogger(__name__)CODE
LOWcapa/ida/plugin/__init__.py22logger = logging.getLogger(__name__)CODE
LOWcapa/ida/plugin/form.py53logger = logging.getLogger(__name__)CODE
LOWcapa/ida/plugin/qt_compat.py79__all__ = ["qt_get_item_flag_tristate", "Signal", "QAction", "QtGui", "QtCore", "QtWidgets"]CODE
LOWcapa/rules/cache.py28logger = logging.getLogger(__name__)CODE
LOWcapa/rules/__init__.py50logger = logging.getLogger(__name__)CODE
LOWtests/test_extractor_hashing.py23logger = logging.getLogger(__name__)CODE
LOWtests/test_idalib_features.py23logger = logging.getLogger(__name__)CODE
LOWtests/test_binexport_accessors.py60logger = logging.getLogger(__name__)CODE
LOWtests/test_scripts.py28logger = logging.getLogger(__name__)CODE
LOWscripts/minimize_vmray_results.py29logger = logging.getLogger(__name__)CODE
1 more matches not shown…
Excessive Try-Catch Wrapping56 hits · 54 pts
SeverityFileLineSnippetContext
LOWweb/rules/scripts/build_root.py259 except Exception as e:STRING
LOWweb/rules/scripts/build_root.py341 except Exception as e:CODE
LOWcapa/loader.py145 except Exception:CODE
LOWcapa/loader.py154 except Exception:CODE
LOWcapa/loader.py231 except Exception as e:CODE
LOWcapa/loader.py480 except Exception:CODE
LOWcapa/features/extractors/elf.py1547 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1554 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1561 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1568 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1575 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1582 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1589 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1596 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1603 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1610 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1617 except Exception as e:CODE
LOWcapa/features/extractors/elf.py1624 except Exception as e:CODE
LOWcapa/features/extractors/elf.py819 except Exception:CODE
LOWcapa/features/extractors/viv/function.py38 except Exception:CODE
LOWcapa/features/extractors/viv/insn.py112 except Exception:CODE
LOWcapa/features/extractors/viv/insn.py205 except Exception:CODE
LOWcapa/features/extractors/binja/helpers.py68 except Exception:CODE
LOWcapa/features/extractors/ghidra/helpers.py87 except Exception:CODE
MEDIUMcapa/ida/plugin/form.py570def ensure_capa_settings_rule_path(self):CODE
LOWcapa/ida/plugin/form.py712 except Exception as e:CODE
LOWcapa/ida/plugin/form.py729 except Exception as e:CODE
LOWcapa/ida/plugin/form.py610 except Exception as e:CODE
LOWcapa/ida/plugin/form.py638 except Exception as e:CODE
LOWcapa/ida/plugin/form.py741 except Exception as e:CODE
LOWcapa/ida/plugin/form.py779 except Exception as e:CODE
LOWcapa/ida/plugin/form.py813 except Exception as e:CODE
LOWcapa/ida/plugin/form.py827 except Exception as e:CODE
LOWcapa/ida/plugin/form.py843 except Exception as e:CODE
LOWcapa/ida/plugin/form.py864 except Exception as e:CODE
LOWcapa/ida/plugin/form.py915 except Exception as e:CODE
LOWcapa/ida/plugin/form.py935 except Exception as e:CODE
LOWcapa/ida/plugin/form.py989 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1007 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1034 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1055 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1076 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1161 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1175 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1188 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1205 except Exception as e:CODE
LOWcapa/ida/plugin/form.py1218 except Exception as e:CODE
MEDIUMcapa/rules/__init__.py1215def _get_yaml_loader():CODE
LOWcapa/rules/__init__.py1222 except Exception:CODE
LOWscripts/detect_duplicate_features.py40 except Exception as e:CODE
LOWscripts/bulk-process.py135 except Exception as e:CODE
LOWscripts/capa2yara.py164 except Exception:STRING
LOWscripts/capa2yara.py367 except Exception:STRING
LOWscripts/capa2yara.py376 except Exception:STRING
MEDIUMscripts/capa2yara.py157def convert_description(statement):CODE
LOWscripts/lint.py442 except Exception as e:STRING
Decorative Section Separators12 hits · 39 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml42 # ---------------------------------------COMMENT
MEDIUMpyproject.toml68 # ---------------------------------------COMMENT
MEDIUMpyproject.toml89 # ---------------------------------------COMMENT
MEDIUMpyproject.toml99 # ---------------------------------------COMMENT
MEDIUMcapa/features/extractors/cape/models.py420 # =========================================================================COMMENT
MEDIUMcapa/rules/__init__.py1716 # -----------------------------------------------------------------COMMENT
MEDIUMcapa/rules/__init__.py1726 # -----------------------------------------------------------------COMMENT
MEDIUMcapa/rules/__init__.py1738 # -----------------------------------------------------------------COMMENT
MEDIUMcapa/rules/__init__.py1747 # -----------------------------------------------------------------COMMENT
MEDIUMcapa/rules/__init__.py1761 # -----------------------------------------------------------------COMMENT
MEDIUMtests/test_match_fixtures.py678# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_match_fixtures.py680# ---------------------------------------------------------------------------COMMENT
Cross-Language Confusion8 hits · 39 pts
SeverityFileLineSnippetContext
HIGHcapa/features/extractors/ghidra/file.py156 fstr = f.toString().split("::") # format: MODULE.dll::import / MODULE::Ordinal_*CODE
HIGHcapa/features/extractors/ghidra/helpers.py133 fstr = f.toString().split("::") # format: MODULE.dll::import / MODULE::Ordinal_* / <EXTERNAL>::importCODE
HIGHcapa/features/extractors/ghidra/insn.py101 # If it returned null, it was an indirectCOMMENT
HIGHcapa/features/extractors/ghidra/insn.py357 # If it returned null, it was an indirectCOMMENT
HIGHcapa/features/extractors/ghidra/insn.py293 insn_str = insn.toString()CODE
HIGHcapa/features/extractors/ghidra/insn.py312 insn_str = insn.toString()CODE
HIGHcapa/ida/plugin/proxy.py59 otherwise return falseSTRING
HIGHtests/test_binja_features.py72 version = binaryninja.core_version_info() # type: ignore[possibly-undefined] # guarded by skipif binja_presentCODE
Unused Imports24 hits · 24 pts
SeverityFileLineSnippetContext
LOWcapa/helpers.py32CODE
LOWcapa/features/extractors/elf.py24CODE
LOWcapa/features/extractors/dnfile/extractor.py16CODE
LOWcapa/features/extractors/dnfile/file.py16CODE
LOWcapa/features/extractors/dnfile/helpers.py16CODE
LOWcapa/features/extractors/dnfile/function.py16CODE
LOWcapa/features/extractors/dnfile/insn.py16CODE
LOWcapa/features/extractors/binja/find_binja_api.py168CODE
LOWcapa/features/extractors/binja/find_binja_api.py178CODE
LOWcapa/features/extractors/ghidra/helpers.py17CODE
LOWcapa/ida/plugin/cache.py16CODE
LOWcapa/ida/plugin/qt_compat.py25CODE
LOWcapa/ida/plugin/qt_compat.py25CODE
LOWcapa/ida/plugin/qt_compat.py26CODE
LOWcapa/ida/plugin/qt_compat.py33CODE
LOWcapa/ida/plugin/qt_compat.py33CODE
LOWcapa/ida/plugin/qt_compat.py34CODE
LOWtests/conftest.py23CODE
LOWtests/test_feature_snapshots.py38CODE
LOWtests/test_feature_snapshots.py231CODE
LOWtests/test_idalib_features.py32CODE
LOWtests/test_match_fixtures.py15CODE
LOWscripts/detect-backends.py40CODE
LOWscripts/detect-backends.py108CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHcapa/features/extractors/base_extractor.py206 fetch any recognized name for the given address. this is only guaranteed to return a value when the givSTRING
HIGHcapa/features/extractors/viv/indirect_calls.py80 scan backwards from the given address looking for assignments to the given register. if a constant, return thatSTRING
HIGHcapa/features/extractors/viv/indirect_calls.py148 inspect the given indirect call instruction and attempt to resolve the target address. args: vw (vivisecSTRING
AI Slop Vocabulary6 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMcapa/features/extractors/viv/indirect_calls.py122 # this is a good place to extend in the future, if we need more robust support.COMMENT
MEDIUMcapa/features/extractors/ida/helpers.py428 # leverage idaapi.FC_NOEXT flag to ignore useless external blocks referenced by the functionCOMMENT
MEDIUMcapa/features/extractors/ghidra/insn.py383 # is not as robust as methods in other functions,COMMENT
MEDIUMcapa/ida/plugin/hooks.py21 """facilitate IDA UI hooksSTRING
LOWcapa/ida/plugin/view.py41 # blank line, which may occur for comments so we simply use the last levelCOMMENT
LOWcapa/ghidra/plugin/capa_explorer.py255 # in many cases, these will be ghidra-labeled data, so just add the existingCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcapa/helpers.py141 # Create a new sys.stdout that points to the redirected fdCOMMENT
MEDIUMscripts/capa2sarif.py183 # Create a SARIF Log object, populate with a single runCOMMENT
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMcapa/features/extractors/base_extractor.py35# you can use the `.address` property to get and render the address of the feature.COMMENT
LOWcapa/rules/__init__.py1218 # on Linux, make sure you install libyaml-dev or similarCOMMENT
Redundant / Tautological Comments2 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/test_elffile_features.py39 # Check if all expected symbol names are foundCOMMENT
LOWtests/test_elffile_features.py56 # Check if all expected symbol names are foundCOMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/detect_duplicate_features.py69CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/capa2sarif.py118 sarif_structure["runs"][0]["artifacts"][0]["description"] = {"text": "placeholder"}CODE