{"id":48948021,"url":"https://github.com/0p4n1k/noctyra","last_synced_at":"2026-04-17T18:01:05.440Z","repository":{"id":347833986,"uuid":"1194018958","full_name":"0p4n1k/Noctyra","owner":"0p4n1k","description":"AST-based Python code transformation \u0026 deobfuscation framework","archived":false,"fork":false,"pushed_at":"2026-04-13T15:14:40.000Z","size":2928,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T17:32:42.348Z","etag":null,"topics":["ast","deobfuscation","python","reverse-engineering","security"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0p4n1k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-27T20:38:28.000Z","updated_at":"2026-04-13T15:14:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/0p4n1k/Noctyra","commit_stats":null,"previous_names":["0p4n1k/noctyra"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/0p4n1k/Noctyra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0p4n1k%2FNoctyra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0p4n1k%2FNoctyra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0p4n1k%2FNoctyra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0p4n1k%2FNoctyra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0p4n1k","download_url":"https://codeload.github.com/0p4n1k/Noctyra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0p4n1k%2FNoctyra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31939788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ast","deobfuscation","python","reverse-engineering","security"],"created_at":"2026-04-17T18:00:54.036Z","updated_at":"2026-04-17T18:01:05.428Z","avatar_url":"https://github.com/0p4n1k.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Noctyra\n\n![Noctyra Demo](assets/demo.gif)\n\n[![PyPI version](https://img.shields.io/pypi/v/noctyra)](https://pypi.org/project/noctyra/)\n[![Python versions](https://img.shields.io/pypi/pyversions/noctyra)](https://pypi.org/project/noctyra/)\n[![Downloads](https://img.shields.io/pypi/dm/noctyra)](https://pypi.org/project/noctyra/)\n[![License](https://img.shields.io/pypi/l/noctyra)](https://pypi.org/project/noctyra/)\n\nNoctyra is an AST-based framework designed for code transformation and deobfuscation. It provides a modular pipeline to analyze and simplify Python source code by resolving complex expressions and logic.\n\n## Overview\n\nThe project aims to provide a flexible environment for processing Python's Abstract Syntax Tree. By employing a sequence of pluggable transformers, Noctyra can:\n\n- Simplify nested logic and conditions.\n- Resolve static values and common encoding patterns.\n- Unroll dynamic execution blocks into readable code.\n- Optimize and clean up obfuscated constructs.\n\n## Getting Started\n\n### Prerequisites\n\nEnsure you have `uv` installed for dependency management.\n\n```bash\nuv sync\n```\n\n### Running the Pipeline\n\nTo process a target script, use the following command:\n\n```bash\npython main.py \u003cinput_file\u003e [options]\n```\n\n**Options:**\n- `file`: Path to the input Python file (required).\n- `--output`: File name for the transformed code (default: `out.py`).\n- `--iterations`: Set a fixed number of transformation passes (default: `0` for auto-detect).\n- `--max-iterations`: Limit the passes in auto mode (default: `100`).\n- `--debug`: Enable verbose logging for debugging transformations. (look sick)\n\n## Development\n\nThis project uses `uv` for dependency management and a `Makefile` for common tasks.\n\n### Setup\n```bash\nuv sync --all-extras --dev\n```\n\n### Quality Control\nBefore submitting a PR or pushing changes, ensure all checks pass:\n\n- **Run Tests**: `make test`\n- **Lint \u0026 Format**: `make format`\n- **Type Check**: `make typecheck`\n\n*(Windows users: These commands work automatically via `make.bat`.)*\n\n### CI/CD\nAutomated checks are performed on every push via GitHub Actions, including linting with Ruff, type checking with Mypy, and unit testing with Pytest.\n\n## Security Notice\n\nNoctyra includes an internal evaluation engine with basic resource limits. However, when dealing with untrusted code, it is highly recommended to run the pipeline within an isolated environment (such as a container or sandbox) to prevent potential side effects or resource exhaustion.\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0p4n1k%2Fnoctyra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0p4n1k%2Fnoctyra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0p4n1k%2Fnoctyra/lists"}