Skip to content

Releases: serenashenn3-art/wechat-forensic-pro

v2.0.5 — Pluggable Cloud Upload (6 adapters + open plugin system)

Choose a tag to compare

@serenashenn3-art serenashenn3-art released this 01 Aug 19:21

v2.0.5 — Pluggable Cloud Upload (6 adapters + open plugin system)

v2.0.5 — 2026-08-02

Highlights

  • 🧩 Pluggable uploader architectureUploaderBase abstract class with 6 built-in adapters (baidu / aliyun / s3 / webdav / sftp / local); open plugin mechanism for any custom cloud
  • 🌐 S3-compatible out of the box — covers AWS S3, Tencent COS, Qiniu S3 mode, Aliyun OSS-S3, MinIO, Cloudflare R2, self-hosted Ceph — just change endpoint_url
  • 📁 WebDAV / SFTP / Local — 坚果云 / Nextcloud / ownCloud / OneDrive(WebDAV); 自建 SFTP; NAS 挂载 / USB 移动硬盘
  • 🔌 Zero-config plugin discovery — drop a .py file into ~/.config/wechat-forensic/plugins/uploaders/ and it just works (no setuptools entry_points)
  • ⚙️ Flexible configuration — YAML / JSON file, env vars, or inline WECHAT_FORENSIC_UPLOAD_<NAME>_<FIELD>=... patterns
  • 📋 Audit trail enhancementoperations[].upload now includes message, remote, algorithm for judicial review

What's new

Area Change
wechat_forensic/uploader.py Rewritten — UploaderBase + 6 adapters + UploaderRegistry + load_config / get_config_for
wechat_forensic/cli.py --upload-config <path> flag, --upload-list flag, --upload accepts any name; deprecation warnings on old static methods
wechat_forensic/__init__.py Version bump to 2.0.5
pyproject.toml Version 2.0.5; 4 new extras: [s3] / [webdav] / [sftp] / [yaml]; [all] includes all cloud SDKs
examples/uploaders/tencent_cos.py New — complete Tencent COS plugin
examples/uploaders/qiniu.py New — complete Qiniu Kodo plugin
examples/uploaders/README.md New — plugin development guide + config schema
tests/test_uploader.py New — 21 tests covering registry, plugins, config, error handling, CLI
tests/test_cli.py Bumped version assertion 2.0.3 → 2.0.5
README.md New "Cloud Upload" chapter with quickstart + plugin template
AGENTS.md New "可插拔云盘" section + security requirements for plugin authors
CHANGELOG.md v2.0.5 entry with full migration guide

Built-in uploaders (6)

--upload Protocol Required extra Typical providers
baidu bypy CLI [baidu] 百度网盘
aliyun oss2 [aliyun] 阿里云 OSS
s3 boto3 (S3 API) [s3] AWS S3 · 腾讯 COS · 七牛 · MinIO · Cloudflare R2 · 自建 Ceph
webdav webdavclient3 [webdav] 坚果云 · Nextcloud · ownCloud · OneDrive(WebDAV)
sftp paramiko [sftp] 自建 SFTP · 树莓派 NAS
local stdlib only (none) NAS 挂载 · USB 移动硬盘 · 第二块硬盘

Quick start — any S3-compatible cloud

# ~/.config/wechat-forensic/upload.yaml
s3:
  endpoint_url: https://cos.ap-guangzhou.myqcloud.com
  region: ap-guangzhou
  bucket: example-1250000000
  access_key: AKIDxxxxxxxxxxxxxxxxxxxx
  secret_key: xxxxxxxxxxxxxxxxxxxxxxxx
  prefix: wechat_forensic/
wechat-forensic --upload s3 --upload-config ~/.config/wechat-forensic/upload.yaml

Plugin template (10 lines)

from wechat_forensic.uploader import UploaderBase

class MyCloudUploader(UploaderBase):
    name = "my-cloud"
    display_name = "My Company Cloud"
    required_deps = ["my-sdk"]

    def upload(self, file, logger=None, config=None):
        # your logic
        return self._return_success("remote://path", {"extra": "info"})

Save to ~/.config/wechat-forensic/plugins/uploaders/my_cloud.py → done.


Verification

pip install -e ".[all]"
pytest tests/ -q                  # 50 passed (29 → 50, +72%)
wechat-forensic --version         # wechat-forensic 2.0.5
wechat-forensic --upload-list     # show 6 built-in adapters

Compatibility

  • 100% backward compatible — old --upload baidu / aliyun / none still work
  • Uploader.baidu/aliyun static methods preserved, emit DeprecationWarning
  • Recommended migration: Uploader.baidu(f)UploaderRegistry().get("baidu").upload(f)
  • Report JSON schema: operations[].upload gains 3 optional fields (message / remote / algorithm) — readers must handle their absence (default to null)

Legal

  • MIT license (code grant) — unchanged
  • End-use governed by AGENTS.md + local law — unchanged
  • Never use on unauthorized devices.

Full Changelog: https://github.com/serenashenn3-art/wechat-forensic-pro/blob/main/CHANGELOG.md


✨ Generated via GitHub API · 2026-08-02

v2.0.4 — i18n, AI Agent Skills, diagrams

Choose a tag to compare

@serenashenn3-art serenashenn3-art released this 01 Aug 19:00

v2.0.4 — 2026-08-02

Highlights

  • 🌐 Bilingual READMEREADME.md (English) + README.zh-CN.md (简体中文), bidirectional links
  • 🤖 5 AI Agent Skill manifests — Kimi Work, Codex, Claude, Hermes, OpenClaw (each can load this project independently)
  • 🖼 3 SVG diagrams (overview / workflow / compliance) — natively rendered on GitHub
  • 29/29 tests pass, 0 broken cross-links

What changed

File / Area Change
README.md Rewritten in English
README.zh-CN.md New — full Simplified Chinese version
skills/SKILL.md New — core skill manifest (shared by all platforms)
skills/kimi-work/SKILL.md New — Moonshot Kimi Work adapter
skills/codex/SKILL.md New — OpenAI Codex adapter
skills/claude/SKILL.md New — Anthropic Claude adapter
skills/hermes/SKILL.md New — Nous Research Hermes adapter
skills/openclaw/SKILL.md New — OpenClaw sandbox adapter
skills/manifest.json New — unified metadata for tool auto-discovery
assets/diagrams/overview.svg New — end-to-end architecture diagram
assets/diagrams/workflow.svg New — 5-step forensic workflow diagram
assets/diagrams/compliance.svg New — ISO 27037 / 27042 / RFC 3227 / NIST 800-86 framework
AGENTS.md Links to all 5 platform skills; embeds workflow diagram
CHANGELOG.md v2.0.4 entry

Compatibility

  • CLI usage: 100% backward compatible (no breaking changes)
  • Report JSON schema: v2.0.3 → v2.0.4 (additive; old fields unchanged)
  • All 29 tests pass.

Verification

pip install -e ".[all]"
pytest tests/ -q                  # 29 passed
wechat-forensic --version         # wechat-forensic 2.0.3  (report schema v2.0.4)

Legal

  • MIT license (code grant) — unchanged
  • end-use governed by AGENTS.md + local law — unchanged
  • Never use on unauthorized devices.

Full Changelog: https://github.com/serenashenn3-art/wechat-forensic-pro/blob/main/CHANGELOG.md

v2.0.3 — Compliance Hardening (Chain of Custody · Digital Signature · WeChat DB Disclosure)

Choose a tag to compare

@serenashenn3-art serenashenn3-art released this 01 Aug 19:12

v2.0.3 — Compliance Hardening (Chain of Custody · Digital Signature · WeChat DB Disclosure)

v2.0.3 — 2026-08-01

Highlights

  • 🔒 Chain of Custody — full ISO/IEC 27037:2012 template (case_id, evidence_id, write_blocking, transfer_chain, storage, disposal)
  • ✍️ Digital signature — HMAC-SHA256 (built-in) + RSA-PSS-SHA256 (optional, for judicial forensics)
  • 📋 Compliance framework — references ISO 27037 / 27042 / RFC 3227 / NIST SP 800-86
  • 📂 WeChat path table — macOS sandbox full path, iOS UDID note, Android 11+ Scoped Storage permission, EnMicroMsg.db SQLCipher disclosure
  • ⚖️ License clarification — MIT scope (code grant) separated from end-use (three independent layers)

What changed

File / Area Change
wechat_forensic/security.py New — Chain of Custody template, HMAC/RSA sign, write-blocking guide
wechat_forensic/report.py Rewritten — case_id / evidence_id params, compliance section, disclaimer section
wechat_forensic/config.py Full macOS sandbox path; iOS UDID note; Android 11+ permissions; EnMicroMsg.db SQLCipher key derivation
wechat_forensic/cli.py New flags: --case-id / --evidence-id / --sign
README.md Restructured into 5 sections (Quick Start / Install / Usage / Output / Limits)
LICENSE "SCOPE OF LICENSE" section — MIT code grant + end-use separation
CHANGELOG.md v2.0.3 entry
tests/ 29 cases, covering new report schema / signature / path table / config

Compliance

  • ISO/IEC 27037:2012 — Identification, collection, acquisition, preservation of digital evidence
  • ISO/IEC 27042:2015 — Analysis and interpretation of digital evidence
  • RFC 3227 — IETF best practices (Use copies, avoid contamination, record everything)
  • NIST SP 800-86 — Forensic process integration

Compatibility

  • CLI usage: 100% backward compatible (all new flags have defaults)
  • Report JSON schema: v2.0.1 → v2.0.3 BREAKING (tool moved from string to dict — readers must update from data["tool"] to data["tool"]["name"])
  • sign_report default HMAC mode (no new dependency); RSA mode requires pip install cryptography

Verification

pip install -e ".[all]"
pytest tests/ -q                  # 29 passed
wechat-forensic --version         # wechat-forensic 2.0.3

Legal

  • MIT license (code grant) — unchanged
  • end-use governed by AGENTS.md + local law — unchanged
  • Never use on unauthorized devices.

Full Changelog: https://github.com/serenashenn3-art/wechat-forensic-pro/blob/main/CHANGELOG.md


✨ Generated via GitHub API · 2026-08-02