A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
This report presents the forensic synthetic code analysis of dashingsoft/pyarmor, a Python project with 5,185 GitHub stars. SynthScan v2.0 examined 45,451 lines of code across 181 source files, recording 702 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 26.3 places this repository in the Moderate 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).
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.
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.
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.
The scanner identified 702 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/check_ntp_time.py | 6 | # ----------------------------------------------------------- | COMMENT |
| MEDIUM | plugins/check_ntp_time.py | 8 | # ----------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | plugins/check_ntp_time.py | 456 | # ----------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | plugins/check_ntp_time.py | 458 | # ----------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 173 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 176 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 186 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 189 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 269 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 273 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 283 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 287 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 297 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 300 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 335 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 339 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 345 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 349 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 355 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 359 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 369 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 373 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 379 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 387 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 396 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 401 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 409 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 412 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 419 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/test-header.sh | 422 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 102 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 104 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 130 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 134 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 145 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 147 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 200 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 208 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 223 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 232 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 252 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 256 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 311 | # ====================================================================== | COMMENT |
| MEDIUM | tests/test-header.sh | 314 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 3 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 7 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 42 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 46 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 65 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 69 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 121 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 125 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 200 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 204 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 245 | # ====================================================================== | COMMENT |
| MEDIUM | tests/cross-test.sh | 249 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/integration-test.sh | 163 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/integration-test.sh | 166 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/integration-test.sh | 176 | # ====================================================================== | COMMENT |
| MEDIUM⚡ | tests/integration-test.sh | 179 | # ====================================================================== | COMMENT |
| 166 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gh.py | 351 | except Exception as e: | CODE |
| LOW | tests.9/script_factory.py | 758 | except Exception: | CODE |
| LOW | tests.9/script_factory.py | 764 | except Exception as e: | CODE |
| LOW | plugins/check_docker.py | 4 | except Exception: | CODE |
| MEDIUM | plugins/check_docker.py | 1 | def get_license_data(): | CODE |
| LOW | plugins/check_gpu.py | 14 | except Exception as e: | CODE |
| MEDIUM | plugins/check_gpu.py | 6 | def get_expiration_info(): | CODE |
| LOW | plugins/check_multiple_machine.py | 7 | except Exception: | CODE |
| LOW | plugins/check_multiple_machine.py | 22 | except Exception: | CODE |
| MEDIUM | plugins/check_multiple_machine.py | 4 | def _get_license_data(): | CODE |
| LOW | plugins/check_multi_mac.py | 4 | except Exception: | CODE |
| MEDIUM | plugins/check_multi_mac.py | 1 | def get_license_data(): | CODE |
| LOW⚡ | plugins/check_ntp_time.py | 464 | except Exception: | CODE |
| MEDIUM | plugins/check_ntp_time.py | 461 | def _get_license_data(): | CODE |
| LOW | tests/test-pyarmor.py | 14 | except Exception: | CODE |
| LOW | tests/test-sppmode.py | 69 | except Exception: | CODE |
| LOW⚡ | tests/test-sppmode.py | 295 | except Exception: | CODE |
| LOW | tests/test-sppmode.py | 505 | except Exception as exc: | CODE |
| MEDIUM | tests/test-sppmode.py | 221 | def f(): | CODE |
| LOW | tests/test-trial-pyarmor.py | 13 | except Exception: | CODE |
| LOW | tests/test-wraparmor.sh | 59 | except Exception: | CODE |
| LOW | tests/test-wraparmor.sh | 68 | except Exception as err: | CODE |
| LOW | tests/function-test.sh | 1712 | except Exception: | CODE |
| LOW | tests/function-test.sh | 1720 | except Exception: | CODE |
| LOW | tests/data/wrapcase.py | 56 | except Exception as e: | CODE |
| LOW | tests/data/mfoo.py | 14 | except Exception: | CODE |
| LOW | docs.7/pyarmor-history.md | 50 | except Exception: | CODE |
| MEDIUM | docs.7/pyarmor-history.md | 25 | def find_module(self, fullname, path=None): | CODE |
| LOW | src/benchmark.py | 125 | except Exception: | CODE |
| MEDIUM | src/benchmark.py | 120 | def verify_license(m): | CODE |
| LOW | src/register.py | 53 | except Exception as e: | CODE |
| LOW | src/register.py | 198 | except Exception: | CODE |
| MEDIUM | src/register.py | 36 | def query_keyinfo(key): | CODE |
| LOW | src/pyarmor.py | 1536 | except Exception: | CODE |
| MEDIUM | src/pyarmor.py | 1533 | def excepthook(type, exc, traceback): | CODE |
| LOW | src/pytransform.py | 243 | except Exception: | CODE |
| LOW | src/pytransform.py | 321 | except Exception as e: | CODE |
| LOW⚡ | src/pytransform.py | 366 | except Exception as e: | CODE |
| MEDIUM | src/pytransform.py | 170 | def check_armored(*names): | CODE |
| LOW | src/sppmode.py | 102 | except Exception: | CODE |
| LOW | src/packer.py | 103 | except Exception: | CODE |
| LOW | src/packer.py | 604 | except Exception: | CODE |
| MEDIUM | src/packer.py | 99 | def relpath(path, start=os.curdir): | CODE |
| MEDIUM | src/packer.py | 592 | def _check_entry_script(filename): | CODE |
| LOW | src/user-guide.md | 1221 | except Exception as err: | CODE |
| LOW | src/user-guide.md | 1275 | except Exception: | CODE |
| LOW | src/user-guide.md | 1283 | except Exception: | CODE |
| MEDIUM | src/utils.py | 805 | def get_registration_code(): | CODE |
| MEDIUM | src/utils.py | 1140 | def relpath(path, start=os.curdir): | CODE |
| MEDIUM | src/utils.py | 1683 | def _urlopen(*args, **kwargs): | CODE |
| LOW | src/utils.py | 180 | except Exception as e: | CODE |
| LOW | src/utils.py | 457 | except Exception: | CODE |
| LOW | src/utils.py | 808 | except Exception: | CODE |
| LOW | src/utils.py | 1144 | except Exception: | CODE |
| LOW | src/utils.py | 1686 | except Exception: | CODE |
| LOW | src/utils.py | 1727 | except Exception: | CODE |
| LOW | src/pyarmor-deprecated.py | 46 | except Exception: | CODE |
| LOW | src/pyarmor-deprecated.py | 110 | except Exception: | STRING |
| LOW | src/pyarmor-deprecated.py | 131 | except Exception: | STRING |
| MEDIUM | src/pyarmor-deprecated.py | 103 | def _import_pytransform(): | CODE |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests.8/samples/foo.py | 1 | CODE | |
| LOW | tests.8/samples/joker/__init__.py | 1 | CODE | |
| LOW | tests.8/samples/joker/__init__.py | 2 | CODE | |
| LOW | tests/test-pyarmor.py | 9 | CODE | |
| LOW | tests/test-trial-pyarmor.py | 7 | CODE | |
| LOW | tests/data/wrapcase.py | 1 | CODE | |
| LOW | docs/conf.py | 16 | CODE | |
| LOW | docs/conf.py | 17 | CODE | |
| LOW | docs.7/conf.py | 16 | CODE | |
| LOW | docs.7/conf.py | 17 | CODE | |
| LOW | src/pyarmor-deprecated.py | 32 | CODE | |
| LOW | src/pyarmor-deprecated.py | 35 | CODE | |
| LOW | src/pyimcore.py | 6 | CODE | |
| LOW | src/examples/helloworld/foo.py | 1 | CODE | |
| LOW | src/examples/cx_Freeze/hello.py | 1 | CODE | |
| LOW | src/examples/cx_Freeze/queens.py | 3 | CODE | |
| LOW | src/examples/simple/queens.py | 3 | CODE | |
| LOW | src/examples/pybench/With.py | 1 | CODE | |
| LOW | src/examples/pybench/systimes.py | 35 | CODE | |
| LOW | src/examples/pybench/CommandLine.py | 14 | CODE | |
| LOW | src/examples/pybench/Imports.py | 4 | CODE | |
| LOW | src/examples/pybench/Imports.py | 5 | CODE | |
| LOW | src/examples/pybench/Imports.py | 16 | CODE | |
| LOW | src/examples/pybench/Imports.py | 17 | CODE | |
| LOW | src/examples/pybench/Imports.py | 18 | CODE | |
| LOW | src/examples/pybench/Imports.py | 19 | CODE | |
| LOW | src/examples/pybench/Imports.py | 20 | CODE | |
| LOW | src/examples/pybench/Imports.py | 22 | CODE | |
| LOW | src/examples/pybench/Imports.py | 23 | CODE | |
| LOW | src/examples/pybench/Imports.py | 24 | CODE | |
| LOW | src/examples/pybench/Imports.py | 25 | CODE | |
| LOW | src/examples/pybench/Imports.py | 26 | CODE | |
| LOW | src/examples/pybench/Imports.py | 28 | CODE | |
| LOW | src/examples/pybench/Imports.py | 29 | CODE | |
| LOW | src/examples/pybench/Imports.py | 30 | CODE | |
| LOW | src/examples/pybench/Imports.py | 31 | CODE | |
| LOW | src/examples/pybench/Imports.py | 32 | CODE | |
| LOW | src/examples/pybench/Imports.py | 34 | CODE | |
| LOW | src/examples/pybench/Imports.py | 35 | CODE | |
| LOW | src/examples/pybench/Imports.py | 36 | CODE | |
| LOW | src/examples/pybench/Imports.py | 37 | CODE | |
| LOW | src/examples/pybench/Imports.py | 38 | CODE | |
| LOW | src/examples/pybench/Imports.py | 40 | CODE | |
| LOW | src/examples/pybench/Imports.py | 41 | CODE | |
| LOW | src/examples/pybench/Imports.py | 42 | CODE | |
| LOW | src/examples/pybench/Imports.py | 43 | CODE | |
| LOW | src/examples/pybench/Imports.py | 44 | CODE | |
| LOW | src/examples/pybench/Imports.py | 61 | CODE | |
| LOW | src/examples/pybench/Imports.py | 62 | CODE | |
| LOW | src/examples/pybench/Imports.py | 63 | CODE | |
| LOW | src/examples/pybench/Imports.py | 64 | CODE | |
| LOW | src/examples/pybench/Imports.py | 65 | CODE | |
| LOW | src/examples/pybench/Imports.py | 67 | CODE | |
| LOW | src/examples/pybench/Imports.py | 68 | CODE | |
| LOW | src/examples/pybench/Imports.py | 69 | CODE | |
| LOW | src/examples/pybench/Imports.py | 70 | CODE | |
| LOW | src/examples/pybench/Imports.py | 71 | CODE | |
| LOW | src/examples/pybench/Imports.py | 73 | CODE | |
| LOW | src/examples/pybench/Imports.py | 74 | CODE | |
| LOW | src/examples/pybench/Imports.py | 75 | CODE | |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gh.py | 1 | #! /usr/bin/env python3 | COMMENT |
| LOW | tests.9/script_factory.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | tests/test-header.sh | 381 | # Return 0 if auto wrap mode doesn't work in this version | COMMENT |
| LOW | tests/integration-test.sh | 401 | || csih_bug "Case 1.1 FAILED" | COMMENT |
| LOW | tests/integration-test.sh | 421 | # || csih_bug "Case 1.3 FAILED: no foo.zip found" | COMMENT |
| LOW | tests/integration-test.sh | 1021 | # DEPRECATED from v5.6.0, no capsule could be generated | COMMENT |
| LOW | tests/integration-test.sh | 1041 | # || csih_bug "Case T1.2 FAILED: no dist/foo.py${extchar} found" | COMMENT |
| LOW | tests/integration-test.sh | 1061 | # Test functions in expired trial license. PART 5 | COMMENT |
| LOW | tests/packer-test.sh | 41 | COMMENT | |
| LOW | docs/conf.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | docs/conf.py | 21 | # documentation root, use os.path.abspath to make it absolute, like shown here. | COMMENT |
| LOW | docs/conf.py | 61 | # The full version, including alpha/beta/rc tags. | COMMENT |
| LOW | docs/conf.py | 81 | # The reST default role (used for this markup: `text`) to use for all | COMMENT |
| LOW | docs/conf.py | 101 | COMMENT | |
| LOW | docs/conf.py | 121 | #html_theme_path = [] | COMMENT |
| LOW | docs/conf.py | 141 | # so a file named "default.css" will overwrite the builtin "default.css". | COMMENT |
| LOW | docs/conf.py | 161 | # template names. | COMMENT |
| LOW | docs/conf.py | 181 | COMMENT | |
| LOW | docs/conf.py | 201 | # implements a search results scorer. If empty, the default will be used. | COMMENT |
| LOW | docs/conf.py | 221 | } | COMMENT |
| LOW | docs/conf.py | 281 | COMMENT | |
| LOW | scripts/build-package.sh | 61 | # Build binary wheel | COMMENT |
| LOW | docs.7/conf.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | docs.7/conf.py | 21 | # documentation root, use os.path.abspath to make it absolute, like shown here. | COMMENT |
| LOW | docs.7/conf.py | 61 | # The full version, including alpha/beta/rc tags. | COMMENT |
| LOW | docs.7/conf.py | 81 | # The reST default role (used for this markup: `text`) to use for all | COMMENT |
| LOW | docs.7/conf.py | 101 | COMMENT | |
| LOW | docs.7/conf.py | 121 | #html_theme_path = [] | COMMENT |
| LOW | docs.7/conf.py | 141 | # so a file named "default.css" will overwrite the builtin "default.css". | COMMENT |
| LOW | docs.7/conf.py | 161 | # template names. | COMMENT |
| LOW | docs.7/conf.py | 181 | COMMENT | |
| LOW | docs.7/conf.py | 201 | # implements a search results scorer. If empty, the default will be used. | COMMENT |
| LOW | docs.7/conf.py | 221 | } | COMMENT |
| LOW | docs.7/conf.py | 281 | COMMENT | |
| LOW | docs.7/pyarmor-history.md | 241 | { | COMMENT |
| LOW | src/benchmark.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/register.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/pyarmor.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/packer.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/packer.py | 21 | # | COMMENT |
| LOW | src/utils.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/pyarmor-deprecated.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/project.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/project.py | 21 | # | COMMENT |
| LOW | src/cli/bootstrap.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/hdinfo.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/bug.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/merge.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/command.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/command.py | 201 | ) | COMMENT |
| LOW | src/cli/config.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/register.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/generate.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/shell.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/resource.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/docker.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/model.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/context.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/plugin.py | 1 | #! /usr/bin/env python | COMMENT |
| LOW | src/cli/mixer.py | 1 | #! /usr/bin/env python | COMMENT |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/register.py | 136 | CODE | |
| LOW | src/pyarmor.py | 66 | CODE | |
| LOW | src/pyarmor.py | 442 | CODE | |
| LOW | src/pyarmor.py | 570 | CODE | |
| LOW | src/pyarmor.py | 814 | CODE | |
| LOW | src/pyarmor.py | 883 | CODE | |
| LOW | src/pytransform.py | 247 | CODE | |
| LOW | src/pytransform.py | 284 | CODE | |
| LOW | src/sppmode.py | 85 | CODE | |
| LOW | src/packer.py | 282 | CODE | |
| LOW | src/packer.py | 592 | CODE | |
| LOW | src/cobuilder.py | 84 | CODE | |
| LOW | src/cobuilder.py | 131 | CODE | |
| LOW | src/utils.py | 88 | CODE | |
| LOW | src/utils.py | 449 | CODE | |
| LOW | src/utils.py | 572 | CODE | |
| LOW | src/utils.py | 605 | CODE | |
| LOW | src/utils.py | 813 | CODE | |
| LOW | src/utils.py | 971 | CODE | |
| LOW | src/utils.py | 996 | CODE | |
| LOW | src/utils.py | 1362 | CODE | |
| LOW | src/utils.py | 1383 | CODE | |
| LOW | src/utils.py | 1613 | CODE | |
| LOW | src/utils.py | 1697 | CODE | |
| LOW | src/pyarmor-deprecated.py | 375 | CODE | |
| LOW | src/pyarmor-deprecated.py | 407 | CODE | |
| LOW | src/pyarmor-deprecated.py | 644 | CODE | |
| LOW | src/build_meta.py | 52 | CODE | |
| LOW | src/cli/merge.py | 149 | CODE | |
| LOW | src/cli/command.py | 469 | CODE | |
| LOW | src/cli/config.py | 174 | CODE | |
| LOW | src/cli/config.py | 238 | CODE | |
| LOW | src/cli/register.py | 297 | CODE | |
| LOW | src/cli/register.py | 341 | CODE | |
| LOW | src/cli/register.py | 683 | CODE | |
| LOW | src/cli/register.py | 964 | CODE | |
| LOW | src/cli/generate.py | 196 | CODE | |
| LOW | src/cli/generate.py | 118 | CODE | |
| LOW | src/cli/shell.py | 329 | CODE | |
| LOW | src/cli/resource.py | 111 | CODE | |
| LOW | src/cli/resource.py | 181 | CODE | |
| LOW | src/cli/resource.py | 116 | CODE | |
| LOW | src/cli/__init__.py | 29 | CODE | |
| LOW | src/cli/context.py | 769 | CODE | |
| LOW | src/cli/plugin.py | 232 | CODE | |
| LOW | src/cli/mixer.py | 39 | CODE | |
| LOW | src/cli/mixer.py | 86 | CODE | |
| LOW | src/cli/__main__.py | 259 | CODE | |
| LOW | src/cli/repack.py | 518 | CODE | |
| LOW | src/cli/repack.py | 542 | CODE | |
| LOW | src/cli/repack.py | 603 | CODE | |
| LOW | src/cli/repack.py | 447 | CODE | |
| LOW | src/cli/repack.py | 768 | CODE | |
| LOW | src/cli/project.py | 105 | CODE | |
| LOW | src/cli/project.py | 264 | CODE | |
| LOW | src/cli/project.py | 861 | CODE | |
| LOW | src/cli/project.py | 1161 | CODE | |
| LOW | src/examples/pybench/CommandLine.py | 63 | CODE | |
| LOW | src/examples/pybench/CommandLine.py | 407 | CODE | |
| LOW | src/examples/pybench/pybench.py | 628 | CODE | |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests.8/accept_test.py | 212 | def test_expired_local_iso_date(self): | CODE |
| LOW | tests.8/accept_test.py | 226 | def test_bind_multiple_devices(self): | CODE |
| LOW | tests.8/accept_test.py | 268 | def test_shared_runtime_package(self): | CODE |
| LOW | tests.8/accept_test.py | 286 | def test_shared_runtime_package_with_outer_key(self): | CODE |
| LOW | tests.8/accept_test.py | 391 | def test_bcc_with_nest_functions(self): | CODE |
| LOW | tests.8/test_pack.py | 94 | def test_onefile_with_options(self): | CODE |
| LOW | tests/test-pyarmor.py | 85 | def test_get_registration_code(self): | CODE |
| LOW | tests/test-pyarmor.py | 139 | def test_do_capsule_with_force(self): | CODE |
| LOW | tests/test-pyarmor.py | 201 | def test_do_encrypt_empty_file(self): | CODE |
| LOW⚡ | tests/test-sppmode.py | 267 | def test_exception_with_local_var(self): | CODE |
| LOW⚡ | tests/test-sppmode.py | 277 | def test_exception_with_local_cellvar(self): | CODE |
| LOW⚡ | tests/test-sppmode.py | 286 | def test_exception_catch_not_exception(self): | CODE |
| LOW | tests/test-sppmode.py | 355 | def test_child_function_when_parent_failed(self): | CODE |
| LOW | tests/test-sppmode.py | 458 | def test_set_literal_insertion_order(self): | CODE |
| LOW | tests/test-sppmode.py | 465 | def test_same_constans_used_by_many_times(self): | CODE |
| LOW | tests/test-sppmode.py | 674 | def test_method_with_double_underline_arg(self): | CODE |
| LOW | tests/test-sppmode.py | 690 | def test_property_with_double_underline(self): | CODE |
| LOW | tests/test-trial-pyarmor.py | 68 | def test_get_registration_code(self): | CODE |
| LOW | tests/data/no_wrap.py | 15 | def _generate_ndarray_function_code(handle, op_name, func_name, signature_only=False): | CODE |
| LOW⚡ | src/benchmark.py | 158 | def import_first_no_obfuscated_module(name): | CODE |
| LOW⚡ | src/benchmark.py | 163 | def import_first_obfuscated_module(name): | CODE |
| LOW⚡ | src/benchmark.py | 168 | def re_import_no_obfuscated_module(name): | CODE |
| LOW⚡ | src/benchmark.py | 173 | def re_import_obfuscated_module(name): | CODE |
| LOW⚡ | src/benchmark.py | 178 | def run_empty_obfuscated_code_object(foo): | CODE |
| LOW | src/benchmark.py | 193 | def run_empty_no_obfuscated_code_object(foo): | CODE |
| LOW | src/benchmark.py | 208 | def import_many_obfuscated_modules(name, n=100): | CODE |
| LOW | src/benchmark.py | 214 | def import_many_no_obfuscated_modules(name, n=100): | CODE |
| LOW | src/pytransform.py | 402 | def _generate_project_capsule(): | CODE |
| LOW | src/pytransform.py | 409 | def _generate_pytransform_key(licfile, pubkey): | CODE |
| LOW | src/packer.py | 382 | def __obfuscate_dependency_pkgs(package_names, obf_options, tempdir): | CODE |
| LOW | src/utils.py | 192 | def _get_download_license_info(): | CODE |
| LOW | src/utils.py | 886 | def _build_pytransform_keylist(mod, code, closure): | CODE |
| LOW | src/utils.py | 1264 | def compatible_platform_names(platforms): | CODE |
| LOW | src/utils.py | 1613 | def _check_code_object_for_super_mode(co, lines, name): | CODE |
| LOW | src/utils.py | 1845 | def osx_is_universal_platforms(platforms): | CODE |
| LOW | src/build_meta.py | 52 | def _wheel_append_runtime_files(build_path, namever, pkgname): | CODE |
| LOW | src/cli/bootstrap.py | 30 | def check_prebuilt_runtime_library(platnames, extra=None, rtver=''): | CODE |
| LOW | src/cli/register.py | 217 | def _register_offline_license(self, fzip, namelist): | STRING |
| LOW | src/cli/generate.py | 103 | def _generate_obfuscated_script(self, res): | CODE |
| LOW | src/cli/context.py | 618 | def runtime_simple_extension_name(self): | STRING |
| LOW | src/cli/core/__init__.py | 45 | def check_and_install_prebuilt_package(): | CODE |
| LOW | src/cli/core/__init__.py | 93 | def generate_obfuscated_script(ctx, res): | CODE |
| LOW⚡ | src/examples/helloworld/foo.py | 12 | def check_expired_date_by_ntp(): | CODE |
| LOW⚡ | src/examples/helloworld/foo.py | 34 | def show_left_days_of_license(): | CODE |
| LOW | src/examples/pybench/systimes.py | 106 | def process_time_clock_systimes(): | CODE |
| LOW | src/examples/pybench/systimes.py | 109 | def wall_clock_clock_systimes(): | CODE |
| LOW | src/examples/pybench/systimes.py | 133 | def ctypes_getprocesstimes_systimes(): | CODE |
| LOW | src/polyfills/argparse.py | 531 | def _format_action_invocation(self, action): | CODE |
| LOW | src/polyfills/argparse.py | 602 | def _iter_indented_subactions(self, action): | CODE |
| LOW | src/polyfills/argparse.py | 1306 | def add_mutually_exclusive_group(self, **kwargs): | CODE |
| LOW | src/helper/buildext.py | 254 | def make_macro_for_customized_bytecodes(bytecodes): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/cli/register.py | 626 | CODE | |
| MEDIUM | src/cli/register.py | 627 | CODE | |
| MEDIUM | src/cli/register.py | 629 | CODE | |
| MEDIUM | src/cli/register.py | 630 | CODE | |
| MEDIUM | src/cli/register.py | 632 | CODE | |
| MEDIUM | src/cli/register.py | 633 | CODE | |
| MEDIUM | src/cli/register.py | 635 | CODE | |
| MEDIUM | src/cli/register.py | 636 | CODE | |
| MEDIUM | src/cli/register.py | 637 | CODE | |
| MEDIUM | src/cli/register.py | 639 | CODE | |
| MEDIUM | src/cli/register.py | 640 | CODE | |
| MEDIUM | src/cli/register.py | 641 | CODE | |
| MEDIUM | src/cli/register.py | 643 | CODE | |
| MEDIUM | src/cli/register.py | 645 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | plugins/check_ntp_time.py | 371 | Convert a leap indicator to text. Parameters: leap -- leap indicator value Returns: corresponding mess | STRING |
| HIGH | plugins/check_ntp_time.py | 389 | Convert a NTP mode value to text. Parameters: mode -- NTP mode Returns: corresponding message Rai | STRING |
| HIGH | plugins/check_ntp_time.py | 407 | Convert a stratum value to text. Parameters: stratum -- NTP stratum Returns: corresponding message | STRING |
| HIGH | plugins/check_ntp_time.py | 429 | Convert a reference clock identifier to text according to its stratum. Parameters: ref_id -- reference clock i | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/examples/cx_Freeze/queens.py | 0 | n queens problem. the (well-known) problem is due to niklaus wirth. this solution is inspired by dijkstra (structured pr | STRING |
| HIGH | src/examples/simple/queens.py | 0 | n queens problem. the (well-known) problem is due to niklaus wirth. this solution is inspired by dijkstra (structured pr | STRING |
| HIGH | src/examples/testmod/queens.py | 0 | n queens problem. the (well-known) problem is due to niklaus wirth. this solution is inspired by dijkstra (structured pr | STRING |
| HIGH | src/examples/py2exe/queens.py | 0 | n queens problem. the (well-known) problem is due to niklaus wirth. this solution is inspired by dijkstra (structured pr | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test-sppmode.py | 419 | # The following functions must obviously compile, | COMMENT |
| MEDIUM | tests/test-py2exe-sample.sh | 4 | # Create a project | COMMENT |
| MEDIUM | docs/conf.py | 7 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | docs.7/conf.py | 7 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | src/examples/build-with-project.sh | 51 | # Create a project | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/cli/shell.py | 446 | item.push(x) | CODE |
| HIGH | src/cli/__main__.py | 229 | ctx.push(options) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pyarmor.py | 408 | CODE | |
| LOW | src/utils.py | 996 | CODE | |
| LOW | src/polyfills/argparse.py | 762 | CODE | |
| LOW | src/polyfills/argparse.py | 804 | CODE | |
| LOW | src/polyfills/argparse.py | 896 | CODE | |
| LOW | src/polyfills/argparse.py | 1550 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/cli/repack.py | 648 | # Set checksum to appease antiviral software. | COMMENT |
| LOW | src/helper/repack.py | 298 | # Set checksum to appease antiviral software. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/data/sound/effects/__init__.py | 1 | __all__ = ["echo", "surround"] | CODE |
| LOW | src/cli/plugin.py | 29 | __all__ = ['CodesignPlugin', 'MultiPythonPlugin', 'PlatformTagPlugin', | CODE |
| LOW | src/polyfills/argparse.py | 65 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test-wraparmor.sh | 3 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/examples/pybench/pybench.py | 168 | If you change a test in some way, don't forget to increase | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/polyfills/argparse.py | 1976 | # for regular arguments, just add them back into the list | COMMENT |