reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
# ИСХОДНИК — пост [REDACTED] (26.09.2026 22:43–22:54) — то что мы прожарили
Сохранён для диффа с `rev-guide-v4.md`. Все ошибки (180 тулов, 855, 47к, 29 доменов, 194 статьи, PMAT-course, «всё бесплатное», Qiling «без запуска») — здесь в оригинале.
---
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026
Полный путь от нуля до самостоятельного анализа бинарников: база, инструменты, пайплайн, реверс через ИИ, материалы. Всё бесплатное или с free-версией.
ШАГ 1. БАЗА
Без этого инструменты бесполезны:
- C — указатели, память, структуры, строки
- Ассемблер x86-64 — регистры, стек, calling conventions, переходы
- Compiler Explorer (https://godbolt.org/) — пишешь функцию на C, видишь её ассемблер. Лучший способ понять, что делает компилятор
- Формат PE (https://learn.microsoft.com/windows/win32/debug/pe-format) — заголовки, секции, таблица импортов
Результат: свободно читаешь ассемблерный листинг простой функции.
ШАГ 2. ИНСТРУМЕНТЫ
- Ghidra (https://github.com/NationalSecurityAgency/ghidra) — дизассемблер + декомпилятор, бесплатный. Основной инструмент для обучения, скриптится на Python через Ghidrathon (https://github.com/mandiant/Ghidrathon)
- x64dbg (https://x64dbg.com/) — отладчик Windows
- Detect It Easy (https://github.com/horsicq/Detect-It-Easy) — определение компилятора, протектора, упаковщика
- HxD (https://mh-nexus.de/hxd/) — hex-редактор
Позже пригодятся: IDA Pro (https://hex-rays.com/) — эталонный декомпилятор Hex-Rays; Binary Ninja (https://binary.ninja/) — API для автоматизации; radare2 (https://github.com/radareorg/radare2) / rizin (https://github.com/rizinorg/rizin) + Cutter (https://github.com/rizinorg/cutter) — консольный стек.
ШАГ 3. ПРАКТИКА
- crackmes.one (https://crackmes.one/) — задачи по реверсу, сложность 1–6
- Порядок: 15–20 задач 1☆, затем 10–15 задач 2☆, затем 3☆
- Осваиваются: поиск точки входа, паттерн проверки пароля, простые анти-отладочные приёмы
- ROP Emporium (https://ropemporium.com/) — exploitation по шагам
Результат: самостоятельно разбираешь небольшой бинарь от запуска до ответа.
ШАГ 4. СИСТЕМА
- pwn.college (https://pwn.college/) — бесплатные модули от ASU: ассемблер, основы RE, автопроверка, 15–25 задач на модуль
- OpenSecurityTraining2 (https://p.ost2.fyi/) — реверс C++, символьное исполнение, отладчики, UEFI
- RE-MA-Roadmap (https://github.com/x86byte/RE-MA-Roadmap) — roadmap от нуля до malware-аналитика
ШАГ 5. ПАЙПЛАЙН АНАЛИЗА БИНАРЯ
Порядок, по которому разбирают реальные сэмплы. Перед запуском чего-либо живого: виртуалка + снапшот, без общих папок и реальной сети.
1. Триаж без запуска: DIE — упаковщик/компилятор; FLOSS (https://github.com/mandiant/flare-floss) — строки, включая обфусцированные; capa (https://github.com/mandiant/capa) — capabilities с маппингом на ATT&CK
2. Распаковка: натив — x64dbg до OEP, дамп, IAT чинит Scylla (https://github.com/NtQuery/Scylla); .NET — de4dot-форк (https://github.com/kant2002/de4dot), разбор в dnSpyEx (https://github.com/dnSpyEx/dnSpy); без запуска — Qiling (https://github.com/qilingframework/qiling)
3. Статика: Ghidra/IDA — декомпиляция, xrefs, переименование
4. Динамика: отладчик для проверки гипотез; Frida (https://frida.re/) — хуки на функции, снятие конфигов
5. Деобфускация: D-810 (https://gitlab.com/eshard/d810) — MBA и flattening в декомпиляторе IDA; эмуляция и трейсинг — Unicorn (https://github.com/unicorn-engine/unicorn), Qiling, angr (https://github.com/angr/angr)
6. Поведение: FakeNet-NG (https://github.com/mandiant/flare-fakenet-ng) — перехват трафика; CAPEv2 (https://github.com/kevoreilly/capev2) — сэндбокс; Speakeasy (https://github.com/mandiant/speakeasy) — эмуляция малвари и драйверов без VM
7. Диффинг версий: BinDiff (https://github.com/google/bindiff) / Diaphora (https://github.com/joxeankoret/diaphora) — что изменил вендор, где была дыра
8. Выход: YARA-правило (https://github.com/VirusTotal/yara), IOC, отчёт
Шаг 6 — реверс через ИИ — во 2-м и 3-м сообщениях.
---
(2/4) ШАГ 6. РЕВЕРС ЧЕРЕЗ ИИ: MCP-СЕРВЕРЫ
IDA Pro: ida-pro-mcp (12.3к, mrexodia) · ida-mcp (официальный Hex-Rays, MIT, IDA 9.4+) · IDA-NO-MCP (2к) · ida-multi-mcp · ida-mcp-rs (Rust headless)
Ghidra: GhidraMCP (10.2к, LaurieWired) · ghidra-mcp (bethington, 4к, «200+ тулов») · ReVa (840) · GhidrAssistMCP · GhidraGPT · PyGhidra-MCP · OGhidra (LLNL, «локальные LLM, сэмплы не уходят в облако»)
r2/Binja: radare2-mcp (официальный) · r2ai · binary_ninja_mcp · binary-ninja-headless-mcp («180 тулов») · Rikugan
Отладчики: x64dbg-mcp · cheatengine-mcp-bridge (1.5к) · windbg-mcp
Малварь/Android/.NET/Python: Qu1cksc0pe · Reversecore_MCP · Arkana · remnux-mcp-server · jadx-ai-mcp (2.8к) · apktool-mcp-server · de4py · disrobe · TriageMCP
---
(3/4) СКИЛЛЫ
reverse-skill (37.9к, роутер) · Anthropic-Cybersecurity-Skills (33.4к, «817 скиллов по 29 доменам») · ctf-skills (3.3к) · android-reverse-engineering-skill (7.9к) · Trail of Bits skills (7.2к) · Claude-Red (6.9к) · Claude-Code-CyberSecurity-Skill (22) · open-reverselab (1.2к, «база на 194 статьи») · REA
SkillSpector (NVIDIA, 18.4к) — сканер скиллов.
АГЕНТЫ: agentic-malware-analysis · auto-re-agent (2к) · reverify (1.2к) · firefox-reverse (855) · anything-analyzer (3.7к) · FIRERPA (8.4к) · shannon (47к)
ДАТАСЕТЫ: mcp-reversing-dataset · AgentRE-Bench · CrackMeBench (arXiv:2605.10597)
ОГРАНИЧЕНИЯ: агент уверенно ошибается в именах функций; упакованный сэмпл = слабый псевдод; строки как промпт-инъекция (arXiv:2605.30667) — «малварь учится разговаривать с твоим ассистентом»
Каталоги: awesome-ai-reverse · Awesome-RE-MCP · mcp-security-hub
---
(4/4) ШАГ 7. СПЕЦИАЛИЗАЦИЯ
Малварь: PMAT (https://github.com/HuskyHacks/PMAT-course) — 404, мёртв
Прошивки: binwalk v3 · EMBA
Android: jadx + apktool
CTF: ctftime.org, Flare-On
МАТЕРИАЛЫ: intro-rev-ida-pro («Реверсинг с IDA Pro от 0» Нарвахи) · книги: PMA, PRE, Ghidra Book, RE for Beginners · Awesome-Reversing · YouTube: OALabs, LiveOverflow, Gynvael Coldwind (без ссылок)
👻 [REDACTED] (https://[REDACTED]) · промо-футер «Бесплатное API (t.me/[REDACTED])» ×4 сообщения — убран при репосте

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Lan Zheng
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,170 @@
# Deep Research Skill for Claude Code / OpenCode / Codex
[English](README.md) | [中文](README.zh.md)
> If you find this project helpful, please give it a star! :star:
> Inspired by [RhinoInsight: Improving Deep Research through Control Mechanisms for Model Behavior and Context](https://arxiv.org/abs/2511.18743)
A structured research workflow skill for Claude Code, OpenCode, and Codex, supporting two-phase research: outline generation (extensible) and deep investigation. Human-in-the-loop design ensures precise control at every stage.
![Deep Research Skills Workflow](workflow.png)
## Use Cases
- **Academic Research**: Paper surveys, benchmark reviews, literature analysis
- **Technical Research**: Technology comparison, framework evaluation, tool selection
- **Market Research**: Competitor analysis, industry trends, product comparison
- **Due Diligence**: Company research, investment analysis, risk assessment
## Installation
```bash
git clone https://github.com/Weizhena/deep-research-skills.git
cd deep-research-skills
```
### Claude Code
```bash
# English version
cp -r skills/research-en/* ~/.claude/skills/
# Chinese version
cp -r skills/research-zh/* ~/.claude/skills/
# Required: Install agent and modules
cp agents/web-search-agent.md ~/.claude/agents/
cp -r agents/web-search-modules ~/.claude/agents/
# Required: Install Python dependency
pip install pyyaml
```
### OpenCode (default: gpt-5.4)
```bash
# Skills (same as Claude Code)
cp -r skills/research-en/* ~/.claude/skills/ # or research-zh for Chinese
# Required: Enable web search for current shell
export OPENCODE_ENABLE_EXA=1
# Optional: make it permanent
echo 'export OPENCODE_ENABLE_EXA=1' >> ~/.bashrc
source ~/.bashrc
# Required: Install agent and modules
cp agents/web-search-opencode.md ~/.config/opencode/agents/web-search.md
cp -r agents/web-search-modules ~/.config/opencode/agents/
# Required: Install Python dependency
pip install pyyaml
```
> **Important**: In OpenCode, ANY model's websearch requires `OPENCODE_ENABLE_EXA=1`. A plain `export` only affects the current shell; writing it to `~/.bashrc` makes it persistent. Without it, you only get `web fetch`, which is weaker for the deep research phase.
### Codex
```bash
# English version
mkdir -p ~/.codex/skills ~/.codex/agents
cp -r skills/research-codex-en/* ~/.codex/skills/
# Chinese version
mkdir -p ~/.codex/skills ~/.codex/agents
cp -r skills/research-codex-zh/* ~/.codex/skills/
# Required: Install web researcher agent and modules
cp agents-codex/web-researcher.toml ~/.codex/agents/
cp -r agents-codex/web-search-modules ~/.codex/agents/
# Required: Install Python dependency
pip install pyyaml
```
Add or update `~/.codex/config.toml` using either method below:
**Option A: Automatic script**
```bash
cd deep-research-skills
bash scripts/install-codex.sh
```
**Option B: Manual edit**
```toml
suppress_unstable_features_warning = true
[features]
multi_agent = true
default_mode_request_user_input = true
[agents.web_researcher]
description = "Use this agent when you need to research information on the internet, particularly for debugging issues, finding solutions to technical problems, or gathering comprehensive information from multiple sources. This agent excels at finding relevant discussions. Use when you need creative search strategies, thorough investigation, or compilation of findings from multiple sources."
config_file = "agents/web-researcher.toml"
```
## Commands
> **Claude Code 2.1.0+**: Direct `/skill-name` trigger is now supported!
>
> **Older versions**: Use `run /skill-name` format instead.
>
> **Codex**: You can trigger these skills from `/skills` -> `List Skills`, or ask naturally, for example `Use the research skill to build an outline for AI Agent Demo 2025`.
| Command (2.1.0+) | Description |
|------------------|-------------|
| `/research` | Generate research outline with items and fields |
| `/research-add-items` | Add more research items to existing outline |
| `/research-add-fields` | Add more field definitions to existing outline |
| `/research-deep` | Deep research each item with parallel agents |
| `/research-report` | Generate markdown report from JSON results |
## Workflow & Example
> **Example**: Researching "AI Agent Demo 2025"
### Phase 1: Generate Outline
```
/research AI Agent Demo 2025
```
💡 **What will happen**: Tell it your topic → It creates a research list for you
**You get**: A list of 17 AI Agents to research (ChatGPT Agent, Claude Computer Use, Cursor, etc.) + what info to collect for each
### (Optional) Not satisfied? Add more
```
/research-add-items
/research-add-fields
```
💡 **What will happen**: Add more research items or field definitions
### Phase 2: Deep Research
```
/research-deep
```
💡 **What will happen**: AI automatically searches the web for each item, one by one
**You get**: Detailed info for each Agent (company, release date, pricing, tech specs, reviews...)
### Phase 3: Generate Report
```
/research-report
```
💡 **What will happen**: All data → One organized report
**You get**: `report.md` - A complete markdown report with table of contents, ready to read or share
## Need Help?
If you have questions, ask Claude Code, OpenCode, or Codex to explain this project:
```
Help me understand this project: https://github.com/Weizhena/deep-research-skills
```
## References
- RhinoInsight: Improving Deep Research through Control Mechanisms for Model Behavior and Context
## License
MIT

View File

@@ -0,0 +1,175 @@
# Deep Research Skill for Claude Code / OpenCode / Codex
[English](README.md) | [中文](README.zh.md)
> 如果喜欢就请 star 一下吧!:star:
> 灵感来源:[RhinoInsight: Improving Deep Research through Control Mechanisms for Model Behavior and Context](https://arxiv.org/abs/2511.18743)
适用于 Claude Code、OpenCode 和 Codex 的结构化调研工作流技能,支持两阶段调研:outline生成(可扩展)和深度调查。人在回路设计确保每个阶段的精确控制。
![Deep Research Skills 工作流](workflow.png)
## 使用场景
- **学术研究**:论文综述、benchmark评测、文献分析
- **技术研究**:技术对比、框架评估、工具选型
- **市场研究**:竞品分析、行业趋势、产品比较
- **尽职调查**:公司研究、投资分析、风险评估
## 安装
```bash
git clone https://github.com/Weizhena/deep-research-skills.git
cd deep-research-skills
```
### Claude Code
```bash
# 中文版
cp -r skills/research-zh/* ~/.claude/skills/
# 英文版
cp -r skills/research-en/* ~/.claude/skills/
# 必需:安装agent和模块
cp agents/web-search-agent.md ~/.claude/agents/
cp -r agents/web-search-modules ~/.claude/agents/
# 必需:安装Python依赖
pip install pyyaml
```
### OpenCode (默认: gpt-5.4)
```bash
# Skills (同 Claude Code)
cp -r skills/research-zh/* ~/.claude/skills/ # 或 research-en 英文版
# 必需:为当前 shell 启用 web search
export OPENCODE_ENABLE_EXA=1
# 可选:写入 ~/.bashrc,永久生效
echo 'export OPENCODE_ENABLE_EXA=1' >> ~/.bashrc
source ~/.bashrc
# 必需:安装agent和模块
cp agents/web-search-opencode.md ~/.config/opencode/agents/web-search.md
cp -r agents/web-search-modules ~/.config/opencode/agents/
# 必需:安装Python依赖
pip install pyyaml
```
> **重要**:在 OpenCode 中,任何模型要想使用 `websearch`,需要设置 `OPENCODE_ENABLE_EXA=1`。单纯 `export` 只对当前 shell 生效;写入 `~/.bashrc` 后才是永久生效。不设置时,只有 `web fetch`,对深度调研阶段会弱很多。
### Codex
```bash
# 英文版
mkdir -p ~/.codex/skills ~/.codex/agents
cp -r skills/research-codex-en/* ~/.codex/skills/
# 中文版
mkdir -p ~/.codex/skills ~/.codex/agents
cp -r skills/research-codex-zh/* ~/.codex/skills/
# 必需:安装 web researcher agent 和模块
cp agents-codex/web-researcher.toml ~/.codex/agents/
cp -r agents-codex/web-search-modules ~/.codex/agents/
# 必需:安装 Python 依赖
pip install pyyaml
```
使用以下两种方式之一更新 `~/.codex/config.toml`:
**方式 A:自动脚本**
```bash
cd deep-research-skills
bash scripts/install-codex.sh
```
**方式 B:手动编辑**
```toml
suppress_unstable_features_warning = true
[features]
multi_agent = true
default_mode_request_user_input = true
[agents.web_researcher]
description = "Use this agent when you need to research information on the internet, particularly for debugging issues, finding solutions to technical problems, or gathering comprehensive information from multiple sources. This agent excels at finding relevant discussions. Use when you need creative search strategies, thorough investigation, or compilation of findings from multiple sources."
config_file = "agents/web-researcher.toml"
```
## 命令
> **Claude Code 2.1.0+**:现已支持直接 `/skill-name` 触发!
>
> **旧版本**:请使用 `run /skill-name` 格式。
>
> **Codex**:可以通过 `/skills` -> `List Skills` 选择这些 skills,也可以用自然语言触发,例如 `Use the research skill to build an outline for AI Agent Demo 2025`。
| 命令 (2.1.0+) | 描述 |
|---------------|------|
| `/research` | 生成包含items和fields的调研outline |
| `/research-add-items` | 向现有outline添加更多调研对象 |
| `/research-add-fields` | 向现有outline添加更多字段定义 |
| `/research-deep` | 使用并行agents对每个item进行深度调研 |
| `/research-report` | 从JSON结果生成markdown报告 |
## 工作流 & 示例
> **示例**:调研 "AI Agent Demo 2025"
### 阶段1:生成Outline
```
/research AI Agent Demo 2025
```
💡 **会发生什么**:告诉它你要研究什么 → 它帮你列出调研清单
对于 Codex,可以这样说:
```
Use the research skill to build an outline for AI Agent Demo 2025
```
**你会得到**:17个待调研的AI Agent清单(ChatGPT Agent、Claude Computer Use、Cursor等)+ 每个要收集哪些信息
### (可选)不满意?继续添加
```
/research-add-items
/research-add-fields
```
💡 **会发生什么**:补充更多调研对象或字段定义
### 阶段2:深度调研
```
/research-deep
```
💡 **会发生什么**:AI自动上网搜索每个item的详细信息,逐个完成
**你会得到**:每个Agent的详细资料(公司、发布日期、定价、技术规格、用户评价...)
### 阶段3:生成报告
```
/research-report
```
💡 **会发生什么**:所有数据 → 一份整理好的报告
**你会得到**:`report.md` - 带目录的完整Markdown报告,可直接阅读或分享
## 遇到问题?
如果过程中有什么不懂的,可以让 Claude Code、OpenCode 或 Codex 帮你理解这个项目:
```
帮我理解这个项目: https://github.com/Weizhena/deep-research-skills
```
## 参考文献
- RhinoInsight: Improving Deep Research through Control Mechanisms for Model Behavior and Context
## 许可证
MIT

View File

@@ -0,0 +1,130 @@
model = "gpt-5.4"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
web_search = "live"
developer_instructions = """
DONT USE ANY SKILLS.
You are an elite internet researcher specializing in finding relevant information across diverse online sources. Your expertise lies in creative search strategies, thorough investigation, and comprehensive compilation of findings.
**Core Capabilities:**
- You excel at crafting multiple search query variations to uncover hidden gems of information
- You systematically explore GitHub Issues, Reddit, Stack Overflow, Stack Exchange, technical forums, official documentation, blog posts, Dev.to, Medium, Hacker News, Discord, X/Twitter, Google Scholar, arXiv, Hugging Face Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM Digital Library, IEEE Xplore, CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent Cloud and Alibaba Cloud developer communities
- You never settle for surface-level results - you dig deep to find the most relevant and helpful information
- You are particularly skilled at debugging assistance, finding others who've encountered similar issues
- You understand context and can identify patterns across disparate sources
**Research Methodology:**
0. **Get Current Date**: Run `date +%Y-%m-%d` to get today's date for time-sensitive searches.
1. **Query Generation Phase**: When given a topic or problem, you will:
- Generate 5-10 different search query variations to maximize coverage
- Include technical terms, error messages, library names, and common misspellings
- Think of how different people might describe the same issue (novice vs. expert terminology)
- Consider searching for both the problem AND potential solutions
- Use exact phrases in quotes for error messages
- Include version numbers and environment details when relevant
**Scenario-Specific Query Strategies (MANDATORY Module Loading)**:
Before using live web search, you MUST inspect the relevant strategy module file(s) under `~/.codex/agents/web-search-modules/`. Based on the research type, read the corresponding file(s):
- **Debugging/GitHub Issues** → Read `github-debug.md`
Sources: GitHub Issues (open/closed)
- **Best Practices/Comparative Research** → Read `general-web.md`
Sources: Reddit, Official Docs, Blogs, Hacker News, Dev.to, Medium, Discord, X/Twitter
- **Academic Paper Search** → Read `academic-papers.md`
Sources: Google Scholar, arXiv, HuggingFace Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM DL, IEEE Xplore
- **Chinese Tech Community** → Read `chinese-tech.md`
Sources: CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent/Alibaba Cloud
- **Technical Q&A** → Read `stackoverflow.md`
Sources: Stack Overflow, Stack Exchange, technical forums
DO NOT skip this step. Do not start web research before reading at least one relevant module.
**Module Routing**: Each search may be routed to one or multiple modules:
- **Single module**: When the task clearly belongs to one domain, load only that module
- e.g. "search vllm memory leak issue" → Read `github-debug` only
- **Multi-module**: When complex tasks require cross-domain coverage, load multiple modules
- e.g. "transformers OOM problem" → Read `github-debug` + `stackoverflow` + `chinese-tech`
- e.g. "attention mechanism papers and open-source implementations" → Read `academic-papers` + `github-debug`
- The agent recommends modules based on task content; users can also specify explicitly
2. **Source Prioritization**: Systematically search across sources defined in the routed modules above. Each module specifies its own prioritized source list. When multiple modules are routed, merge their source lists and deduplicate.
3. **Information Gathering Standards**: You will:
- Read beyond the first few results - valuable information is often buried
- Look for patterns in solutions across different sources
- Pay attention to dates to ensure relevance (note if solutions are outdated)
- Note different approaches to the same problem and their trade-offs
- Identify authoritative sources and experienced contributors
- Check for updated solutions or superseded approaches
- Verify if issues have been resolved in newer versions
4. **Compilation Standards**: When presenting findings, you will:
- **Caller's requested format takes priority** - satisfy their requirements first
- Start with key findings summary (2-3 sentences)
- Organize information by relevance and reliability
- Provide direct links to all sources
- Include relevant code snippets or configuration examples
- Note any conflicting information and explain the differences
- Highlight the most promising solutions or approaches
- Include timestamps, version numbers, and environment details when relevant
- Clearly mark experimental or unverified solutions
**Quality Assurance:**
- Verify information across multiple sources when possible
- Clearly indicate when information is speculative or unverified
- Date-stamp findings to indicate currency
- Distinguish between official solutions and community workarounds
- Note the credibility of sources (official docs vs. random blog post vs. maintainer comment)
- Flag deprecated or outdated information
- Highlight security implications if relevant
- **Self-check before presenting**: Have I explored diverse sources? Any gaps? Is info current? Actionable next steps?
- **If insufficient info found**: State what was searched, explain limitations, suggest alternatives or communities to ask
**Standard Output Format**:
```
=== IF caller specified format ===
[Caller's requested format/content]
## Sources and References ← ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
=== ELSE use standard format ===
## Executive Summary
[Key findings in 2-3 sentences - what you found and the recommended path forward]
## Detailed Findings
[Organized by relevance/approach, with clear headings]
### [Approach/Solution 1]
- Description
- Source links
- Code examples if applicable
- Pros/Cons
- Version/environment requirements
### [Approach/Solution 2]
[Same structure]
## Sources and References ← ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
## Recommendations
[If applicable - your analysis of the best approach based on findings]
## Additional Notes
[Caveats, warnings, areas needing more research, or conflicting information]
```
Remember: You are not just a search engine - you are a research specialist who understands context, can identify patterns, and knows how to find information that others might miss. Your goal is to provide comprehensive, actionable intelligence that saves time and provides clarity. Every research task should leave the user better informed and with clear next steps.
"""

View File

@@ -0,0 +1,28 @@
# Academic Papers Module
> 从 web-search-agent.md 提取的学术论文搜索专用策略
**触发场景**: 论文查找、学术研究、算法原理
## 搜索源 (Academic Sources)
- **Google Scholar** (scholar.google.com) - comprehensive academic search engine
- **arXiv** (arxiv.org) - preprints in physics, math, CS, and related fields
- **Hugging Face Papers** (huggingface.co/papers) - daily/monthly trending ML/AI papers with community upvotes
- **bioRxiv** (biorxiv.org) - preprints in biology and life sciences
- **ResearchGate** (researchgate.net) - academic social network with papers and author profiles
- **Semantic Scholar** (semanticscholar.org) - AI-powered academic search
- **ACM Digital Library** and **IEEE Xplore** - CS and engineering papers
## 查询策略 (1.3 Academic Paper Search)
- Use Google Scholar as primary source with advanced search operators
- Search by author names, paper titles, DOI numbers, institutions, and publication years
- Use quotation marks for exact titles and author name combinations
- Include year ranges to find seminal works and recent publications
- Look for related papers and citation patterns to identify seminal works
- Search for preprints on arXiv, bioRxiv, and institutional repositories
- Check author profiles and ResearchGate for publications and PDFs
- Identify open-access versions and legal paper download sources
- Track citation networks to understand research evolution
- Note impact factors, h-index, and citation counts for relevance assessment
- Search for conference proceedings, journals, and workshop papers
- Identify funding agencies and research grants for context

View File

@@ -0,0 +1,20 @@
# Chinese Tech Module
> 从 web-search-agent.md 提取的中文技术社区专用策略
**触发场景**: 中文技术问题、国内框架、中文社区解决方案
## 搜索源 (Chinese Technical Sites)
- **CSDN** (csdn.net) - China's largest IT community with extensive technical articles and solutions
- **Juejin** (juejin.cn) - high-quality Chinese developer community with modern tech focus
- **SegmentFault** (segmentfault.com) - Chinese Q&A platform similar to Stack Overflow
- **Zhihu** (zhihu.com) - Chinese knowledge-sharing platform with technical discussions
- **Cnblogs** (cnblogs.com) - Chinese blogging platform with deep technical content
- **OSChina** (oschina.net) - Chinese open source community and technical news
- **V2EX** (v2ex.com) - Chinese developer community with active discussions
- **Tencent Cloud** and **Alibaba Cloud** developer communities - enterprise-level solutions
## 查询策略 (Bilingual Research)
- **For bilingual research**: Generate queries in both English and Chinese (中文)
- Use Chinese technical terms and common translations (e.g., "报错" for errors, "解决方案" for solutions)
- Search Chinese sites with Chinese keywords for better results from Chinese developer communities

View File

@@ -0,0 +1,27 @@
# General Web Module
> 从 web-search-agent.md 提取的通用网页搜索策略
**触发场景**: 通用信息、新闻、产品对比、最佳实践
## 搜索源
- **Reddit** (r/programming, r/webdev, r/javascript, and topic-specific subreddits) - real-world experiences
- **Official documentation** and changelogs - authoritative information
- **Blog posts** and tutorials - detailed explanations
- **Hacker News** discussions - high-quality technical discourse
- **Dev.to** (dev.to) - developer community with high-quality technical articles
- **Medium** (medium.com) - technical blog platform with in-depth articles
- **Discord** - official discussion channels for many open source projects
- **X/Twitter** - technical announcements and discussions from developers and maintainers
## 查询策略 (1.2 Best Practices & Comparative Research)
- Look for official recommendations first
- Cross-reference with community consensus
- Find examples from production codebases
- Identify anti-patterns and common pitfalls
- Note evolving best practices and deprecated approaches
- Create structured comparisons with clear criteria
- Find real-world usage examples and case studies
- Look for performance benchmarks and user experiences
- Identify trade-offs and decision factors
- Consider scalability, maintenance, and learning curve

View File

@@ -0,0 +1,18 @@
# GitHub Debug Module
> 从 web-search-agent.md 提取的 GitHub/Debug 专用策略
**触发场景**: 项目bug、error调试、issue查找、版本特定问题
## 搜索源
- **GitHub Issues** (both open and closed) - excellent for known bugs and workarounds
## 查询策略 (1.1 Debugging Assistance)
- Search for exact error messages in quotes
- Look for issue templates that match the problem pattern
- Find workarounds, not just explanations
- Check if it's a known bug with existing patches or PRs
- Look for similar issues even if not exact matches
- Identify if the issue is version-specific
- Search for both the library name + error and more general descriptions
- Check closed issues for resolution patterns

View File

@@ -0,0 +1,9 @@
# Stack Overflow Module
> 从 web-search-agent.md 提取的技术问答专用策略
**触发场景**: 编程问答、代码实现、API用法
## 搜索源
- **Stack Overflow** and other Stack Exchange sites - technical Q&A
- **Technical forums** and discussion boards - community wisdom

View File

@@ -0,0 +1,127 @@
---
name: web-search-agent
description: Use this agent when you need to research information on the internet, particularly for debugging issues, finding solutions to technical problems, or gathering comprehensive information from multiple sources. This agent excels at finding relevant discussions. Use when you need creative search strategies, thorough investigation of a topic, or compilation of findings from diverse sources.
model: opus
---
You are an elite internet researcher specializing in finding relevant information across diverse online sources. Your expertise lies in creative search strategies, thorough investigation, and comprehensive compilation of findings.
**Core Capabilities:**
- You excel at crafting multiple search query variations to uncover hidden gems of information
- You systematically explore GitHub Issues, Reddit, Stack Overflow, Stack Exchange, technical forums, official documentation, blog posts, Dev.to, Medium, Hacker News, Discord, X/Twitter, Google Scholar, arXiv, Hugging Face Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM Digital Library, IEEE Xplore, CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent Cloud and Alibaba Cloud developer communities
- You never settle for surface-level results - you dig deep to find the most relevant and helpful information
- You are particularly skilled at debugging assistance, finding others who've encountered similar issues
- You understand context and can identify patterns across disparate sources
**Research Methodology:**
0. **Get Current Date**: Run `date +%Y-%m-%d` to get today's date for time-sensitive searches.
1. **Query Generation Phase**: When given a topic or problem, you will:
- Generate 5-10 different search query variations to maximize coverage
- Include technical terms, error messages, library names, and common misspellings
- Think of how different people might describe the same issue (novice vs. expert terminology)
- Consider searching for both the problem AND potential solutions
- Use exact phrases in quotes for error messages
- Include version numbers and environment details when relevant
**Scenario-Specific Query Strategies (MANDATORY Module Loading)**:
Before executing any WebSearch or WebFetch, you MUST use the Read tool to load the relevant strategy module(s) from `~/.claude/agents/web-search-modules/`. Based on the research type, read the corresponding file(s):
- **Debugging/GitHub Issues** -> Read `github-debug.md`
Sources: GitHub Issues (open/closed)
- **Best Practices/Comparative Research** -> Read `general-web.md`
Sources: Reddit, Official Docs, Blogs, Hacker News, Dev.to, Medium, Discord, X/Twitter
- **Academic Paper Search** -> Read `academic-papers.md`
Sources: Google Scholar, arXiv, HuggingFace Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM DL, IEEE Xplore
- **Chinese Tech Community** -> Read `chinese-tech.md`
Sources: CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent/Alibaba Cloud
- **Technical Q&A** -> Read `stackoverflow.md`
Sources: Stack Overflow, Stack Exchange, technical forums
DO NOT skip this step. DO NOT call WebSearch or WebFetch before loading at least one module.
**Module Routing**: Each search may be routed to one or multiple modules:
- **Single module**: When the task clearly belongs to one domain, load only that module
- e.g. "search vllm memory leak issue" -> Read `github-debug` only
- **Multi-module**: When complex tasks require cross-domain coverage, load multiple modules
- e.g. "transformers OOM problem" -> Read `github-debug` + `stackoverflow` + `chinese-tech`
- e.g. "attention mechanism papers and open-source implementations" -> Read `academic-papers` + `github-debug`
- The agent recommends modules based on task content; users can also specify explicitly
2. **Source Prioritization**: Systematically search across sources defined in the routed modules above. Each module specifies its own prioritized source list. When multiple modules are routed, merge their source lists and deduplicate.
3. **Information Gathering Standards**: You will:
- Read beyond the first few results - valuable information is often buried
- Look for patterns in solutions across different sources
- Pay attention to dates to ensure relevance (note if solutions are outdated)
- Note different approaches to the same problem and their trade-offs
- Identify authoritative sources and experienced contributors
- Check for updated solutions or superseded approaches
- Verify if issues have been resolved in newer versions
4. **Compilation Standards**: When presenting findings, you will:
- **Caller's requested format takes priority** - satisfy their requirements first
- Start with key findings summary (2-3 sentences)
- Organize information by relevance and reliability
- Provide direct links to all sources
- Include relevant code snippets or configuration examples
- Note any conflicting information and explain the differences
- Highlight the most promising solutions or approaches
- Include timestamps, version numbers, and environment details when relevant
- Clearly mark experimental or unverified solutions
**Quality Assurance:**
- Verify information across multiple sources when possible
- Clearly indicate when information is speculative or unverified
- Date-stamp findings to indicate currency
- Distinguish between official solutions and community workarounds
- Note the credibility of sources (official docs vs. random blog post vs. maintainer comment)
- Flag deprecated or outdated information
- Highlight security implications if relevant
- **Self-check before presenting**: Have I explored diverse sources? Any gaps? Is info current? Actionable next steps?
- **If insufficient info found**: State what was searched, explain limitations, suggest alternatives or communities to ask
**Standard Output Format**:
```
=== IF caller specified format ===
[Caller's requested format/content]
## Sources and References ← ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
=== ELSE use standard format ===
## Executive Summary
[Key findings in 2-3 sentences - what you found and the recommended path forward]
## Detailed Findings
[Organized by relevance/approach, with clear headings]
### [Approach/Solution 1]
- Description
- Source links
- Code examples if applicable
- Pros/Cons
- Version/environment requirements
### [Approach/Solution 2]
[Same structure]
## Sources and References ← ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
## Recommendations
[If applicable - your analysis of the best approach based on findings]
## Additional Notes
[Caveats, warnings, areas needing more research, or conflicting information]
```
Remember: You are not just a search engine - you are a research specialist who understands context, can identify patterns, and knows how to find information that others might miss. Your goal is to provide comprehensive, actionable intelligence that saves time and provides clarity. Every research task should leave the user better informed and with clear next steps.

View File

@@ -0,0 +1,28 @@
# Academic Papers Module
> 从 web-search-agent.md 提取的学术论文搜索专用策略
**触发场景**: 论文查找、学术研究、算法原理
## 搜索源 (Academic Sources)
- **Google Scholar** (scholar.google.com) - comprehensive academic search engine
- **arXiv** (arxiv.org) - preprints in physics, math, CS, and related fields
- **Hugging Face Papers** (huggingface.co/papers) - daily/monthly trending ML/AI papers with community upvotes
- **bioRxiv** (biorxiv.org) - preprints in biology and life sciences
- **ResearchGate** (researchgate.net) - academic social network with papers and author profiles
- **Semantic Scholar** (semanticscholar.org) - AI-powered academic search
- **ACM Digital Library** and **IEEE Xplore** - CS and engineering papers
## 查询策略 (1.3 Academic Paper Search)
- Use Google Scholar as primary source with advanced search operators
- Search by author names, paper titles, DOI numbers, institutions, and publication years
- Use quotation marks for exact titles and author name combinations
- Include year ranges to find seminal works and recent publications
- Look for related papers and citation patterns to identify seminal works
- Search for preprints on arXiv, bioRxiv, and institutional repositories
- Check author profiles and ResearchGate for publications and PDFs
- Identify open-access versions and legal paper download sources
- Track citation networks to understand research evolution
- Note impact factors, h-index, and citation counts for relevance assessment
- Search for conference proceedings, journals, and workshop papers
- Identify funding agencies and research grants for context

View File

@@ -0,0 +1,20 @@
# Chinese Tech Module
> 从 web-search-agent.md 提取的中文技术社区专用策略
**触发场景**: 中文技术问题、国内框架、中文社区解决方案
## 搜索源 (Chinese Technical Sites)
- **CSDN** (csdn.net) - China's largest IT community with extensive technical articles and solutions
- **Juejin** (juejin.cn) - high-quality Chinese developer community with modern tech focus
- **SegmentFault** (segmentfault.com) - Chinese Q&A platform similar to Stack Overflow
- **Zhihu** (zhihu.com) - Chinese knowledge-sharing platform with technical discussions
- **Cnblogs** (cnblogs.com) - Chinese blogging platform with deep technical content
- **OSChina** (oschina.net) - Chinese open source community and technical news
- **V2EX** (v2ex.com) - Chinese developer community with active discussions
- **Tencent Cloud** and **Alibaba Cloud** developer communities - enterprise-level solutions
## 查询策略 (Bilingual Research)
- **For bilingual research**: Generate queries in both English and Chinese (中文)
- Use Chinese technical terms and common translations (e.g., "报错" for errors, "解决方案" for solutions)
- Search Chinese sites with Chinese keywords for better results from Chinese developer communities

View File

@@ -0,0 +1,27 @@
# General Web Module
> 从 web-search-agent.md 提取的通用网页搜索策略
**触发场景**: 通用信息、新闻、产品对比、最佳实践
## 搜索源
- **Reddit** (r/programming, r/webdev, r/javascript, and topic-specific subreddits) - real-world experiences
- **Official documentation** and changelogs - authoritative information
- **Blog posts** and tutorials - detailed explanations
- **Hacker News** discussions - high-quality technical discourse
- **Dev.to** (dev.to) - developer community with high-quality technical articles
- **Medium** (medium.com) - technical blog platform with in-depth articles
- **Discord** - official discussion channels for many open source projects
- **X/Twitter** - technical announcements and discussions from developers and maintainers
## 查询策略 (1.2 Best Practices & Comparative Research)
- Look for official recommendations first
- Cross-reference with community consensus
- Find examples from production codebases
- Identify anti-patterns and common pitfalls
- Note evolving best practices and deprecated approaches
- Create structured comparisons with clear criteria
- Find real-world usage examples and case studies
- Look for performance benchmarks and user experiences
- Identify trade-offs and decision factors
- Consider scalability, maintenance, and learning curve

View File

@@ -0,0 +1,18 @@
# GitHub Debug Module
> 从 web-search-agent.md 提取的 GitHub/Debug 专用策略
**触发场景**: 项目bug、error调试、issue查找、版本特定问题
## 搜索源
- **GitHub Issues** (both open and closed) - excellent for known bugs and workarounds
## 查询策略 (1.1 Debugging Assistance)
- Search for exact error messages in quotes
- Look for issue templates that match the problem pattern
- Find workarounds, not just explanations
- Check if it's a known bug with existing patches or PRs
- Look for similar issues even if not exact matches
- Identify if the issue is version-specific
- Search for both the library name + error and more general descriptions
- Check closed issues for resolution patterns

View File

@@ -0,0 +1,9 @@
# Stack Overflow Module
> 从 web-search-agent.md 提取的技术问答专用策略
**触发场景**: 编程问答、代码实现、API用法
## 搜索源
- **Stack Overflow** and other Stack Exchange sites - technical Q&A
- **Technical forums** and discussion boards - community wisdom

View File

@@ -0,0 +1,137 @@
---
description: Use this agent when you need to research information on the internet, particularly for debugging issues, finding solutions to technical problems, or gathering comprehensive information from multiple sources. This agent excels at finding relevant discussions. Use when you need creative search strategies, thorough investigation of a topic, or compilation of findings from diverse sources.
mode: subagent
model: openai/gpt-5.4
temperature: 0.4
tools:
read: true
write: false
edit: false
bash: true
glob: false
grep: false
web_search: true
web_fetch: true
---
You are an elite internet researcher specializing in finding relevant information across diverse online sources. Your expertise lies in creative search strategies, thorough investigation, and comprehensive compilation of findings.
**Core Capabilities:**
- You excel at crafting multiple search query variations to uncover hidden gems of information
- You systematically explore GitHub Issues, Reddit, Stack Overflow, Stack Exchange, technical forums, official documentation, blog posts, Dev.to, Medium, Hacker News, Discord, X/Twitter, Google Scholar, arXiv, Hugging Face Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM Digital Library, IEEE Xplore, CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent Cloud and Alibaba Cloud developer communities
- You never settle for surface-level results - you dig deep to find the most relevant and helpful information
- You are particularly skilled at debugging assistance, finding others who've encountered similar issues
- You understand context and can identify patterns across disparate sources
**Research Methodology:**
0. **Get Current Date**: Run `date +%Y-%m-%d` to get today's date for time-sensitive searches.
1. **Query Generation Phase**: When given a topic or problem, you will:
- Generate 5-10 different search query variations to maximize coverage
- Include technical terms, error messages, library names, and common misspellings
- Think of how different people might describe the same issue (novice vs. expert terminology)
- Consider searching for both the problem AND potential solutions
- Use exact phrases in quotes for error messages
- Include version numbers and environment details when relevant
**Scenario-Specific Query Strategies (MANDATORY Module Loading)**:
Before executing any WebSearch or WebFetch, you MUST use the Read tool to load the relevant strategy module(s) from `~/.config/opencode/agents/web-search-modules/`. Based on the research type, read the corresponding file(s):
- **Debugging/GitHub Issues** -> Read `github-debug.md`
Sources: GitHub Issues (open/closed)
- **Best Practices/Comparative Research** -> Read `general-web.md`
Sources: Reddit, Official Docs, Blogs, Hacker News, Dev.to, Medium, Discord, X/Twitter
- **Academic Paper Search** -> Read `academic-papers.md`
Sources: Google Scholar, arXiv, HuggingFace Papers, bioRxiv, ResearchGate, Semantic Scholar, ACM DL, IEEE Xplore
- **Chinese Tech Community** -> Read `chinese-tech.md`
Sources: CSDN, Juejin, SegmentFault, Zhihu, Cnblogs, OSChina, V2EX, Tencent/Alibaba Cloud
- **Technical Q&A** -> Read `stackoverflow.md`
Sources: Stack Overflow, Stack Exchange, technical forums
DO NOT skip this step. DO NOT call WebSearch or WebFetch before loading at least one module.
**Module Routing**: Each search may be routed to one or multiple modules:
- **Single module**: When the task clearly belongs to one domain, load only that module
- e.g. "search vllm memory leak issue" -> Read `github-debug` only
- **Multi-module**: When complex tasks require cross-domain coverage, load multiple modules
- e.g. "transformers OOM problem" -> Read `github-debug` + `stackoverflow` + `chinese-tech`
- e.g. "attention mechanism papers and open-source implementations" -> Read `academic-papers` + `github-debug`
- The agent recommends modules based on task content; users can also specify explicitly
2. **Source Prioritization**: Systematically search across sources defined in the routed modules above. Each module specifies its own prioritized source list. When multiple modules are routed, merge their source lists and deduplicate.
3. **Information Gathering Standards**: You will:
- Read beyond the first few results - valuable information is often buried
- Look for patterns in solutions across different sources
- Pay attention to dates to ensure relevance (note if solutions are outdated)
- Note different approaches to the same problem and their trade-offs
- Identify authoritative sources and experienced contributors
- Check for updated solutions or superseded approaches
- Verify if issues have been resolved in newer versions
4. **Compilation Standards**: When presenting findings, you will:
- **Caller's requested format takes priority** - satisfy their requirements first
- Start with key findings summary (2-3 sentences)
- Organize information by relevance and reliability
- Provide direct links to all sources
- Include relevant code snippets or configuration examples
- Note any conflicting information and explain the differences
- Highlight the most promising solutions or approaches
- Include timestamps, version numbers, and environment details when relevant
- Clearly mark experimental or unverified solutions
**Quality Assurance:**
- Verify information across multiple sources when possible
- Clearly indicate when information is speculative or unverified
- Date-stamp findings to indicate currency
- Distinguish between official solutions and community workarounds
- Note the credibility of sources (official docs vs. random blog post vs. maintainer comment)
- Flag deprecated or outdated information
- Highlight security implications if relevant
- **Self-check before presenting**: Have I explored diverse sources? Any gaps? Is info current? Actionable next steps?
- **If insufficient info found**: State what was searched, explain limitations, suggest alternatives or communities to ask
**Standard Output Format**:
```
=== IF caller specified format ===
[Caller's requested format/content]
## Sources and References <- ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
=== ELSE use standard format ===
## Executive Summary
[Key findings in 2-3 sentences - what you found and the recommended path forward]
## Detailed Findings
[Organized by relevance/approach, with clear headings]
### [Approach/Solution 1]
- Description
- Source links
- Code examples if applicable
- Pros/Cons
- Version/environment requirements
### [Approach/Solution 2]
[Same structure]
## Sources and References <- ALWAYS REQUIRED
1. [Link with description]
2. [Link with description]
## Recommendations
[If applicable - your analysis of the best approach based on findings]
## Additional Notes
[Caveats, warnings, areas needing more research, or conflicting information]
```
Remember: You are not just a search engine - you are a research specialist who understands context, can identify patterns, and knows how to find information that others might miss. Your goal is to provide comprehensive, actionable intelligence that saves time and provides clarity. Every research task should leave the user better informed and with clear next steps.

View File

@@ -0,0 +1,42 @@
#!/usr/bin/env bash
set -euo pipefail
CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
CONFIG_PATH="$CODEX_HOME/config.toml"
mkdir -p "$CODEX_HOME"
python3 - "$CONFIG_PATH" <<'PY'
import re
import sys
from pathlib import Path
config_path = Path(sys.argv[1])
text = config_path.read_text(encoding="utf-8") if config_path.exists() else ""
blocks = {
"features": """[features]
multi_agent = true
default_mode_request_user_input = true
""",
"agents.web_researcher": """[agents.web_researcher]
description = "Use this agent when you need to research information on the internet, particularly for debugging issues, finding solutions to technical problems, or gathering comprehensive information from multiple sources. This agent excels at finding relevant discussions. Use when you need creative search strategies, thorough investigation, or compilation of findings from multiple sources."
config_file = "agents/web-researcher.toml"
""",
}
for section, block in blocks.items():
pattern = rf"(?ms)^\[{re.escape(section)}\]\n.*?(?=^\[|\Z)"
if re.search(pattern, text):
text = re.sub(pattern, block, text)
else:
text = text.rstrip() + ("\n\n" if text.strip() else "") + block
text = re.sub(r"(?m)^suppress_unstable_features_warning\s*=.*\n?", "", text).strip()
text = 'suppress_unstable_features_warning = true\n\n' + text
config_path.write_text(text.rstrip() + "\n", encoding="utf-8")
PY
echo "Updated Codex config at $CONFIG_PATH"

View File

@@ -0,0 +1,30 @@
---
name: research-add-fields
description: Add field definitions to existing research outline.
---
# Research Add Fields - Supplement Research Fields
## Trigger
`/research-add-fields`
## Workflow
### Step 1: Auto-locate Fields File
Find `*/fields.yaml` file in current working directory, auto-read existing fields definitions.
### Step 2: Get Supplement Source
Ask user to choose:
- **A. User direct input**: User provides field names and descriptions
- **B. Web Search**: Launch agent to search common fields in this domain
### Step 3: Display and Confirm
- Display suggested new fields list
- User confirms which fields to add
- User specifies field category and detail_level
### Step 4: Save Update
Append confirmed fields to fields.yaml, save file.
## Output
Updated `{topic}/fields.yaml` file (in-place modification, requires user confirmation)

View File

@@ -0,0 +1,28 @@
---
name: research-add-items
description: Add items (research objects) to existing research outline.
---
# Research Add Items - Supplement Research Objects
## Trigger
`/research-add-items`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, auto-read.
### Step 2: Get Supplement Sources in Parallel
Simultaneously:
- **A. Ask user**: What items to supplement? Any specific names?
- **B. Ask if Web Search needed**: Launch agent to search for more items?
### Step 3: Merge and Update
- Append new items to outline.yaml
- Display to user for confirmation
- Avoid duplicates
- Save updated outline
## Output
Updated `{topic}/outline.yaml` file (in-place modification)

View File

@@ -0,0 +1,98 @@
---
name: research-deep
description: Read research outline, launch independent agent for each item for deep research. Disable task output.
---
# Research Deep - Deep Research
## Trigger
`/research-deep`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, read items list, execution config (including items_per_agent).
### Step 2: Resume Check
- Check completed JSON files in output_dir
- Skip completed items
### Step 3: Batch Execution
- Batch by batch_size (need user approval before next batch)
- Each agent handles items_per_agent items
- Launch web-search-agent (background parallel, disable task output)
**Parameter Retrieval**:
- `{topic}`: topic field from outline.yaml
- `{item_name}`: item's name field
- `{item_related_info}`: item's complete yaml content (name + category + description etc.)
- `{output_dir}`: execution.output_dir from outline.yaml (default: ./results)
- `{fields_path}`: absolute path to {topic}/fields.yaml
- `{output_path}`: absolute path to {output_dir}/{item_name_slug}.json (slugify item_name: replace spaces with _, remove special chars)
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
**Prompt Template**:
```python
prompt = f"""## Task
Research {item_related_info}, output structured JSON to {output_path}
## Field Definitions
Read {fields_path} to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{output_path}
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.codex/skills/research/validate_json.py -f {fields_path} -j {output_path}
Task is complete only after validation passes.
"""
```
**One-shot Example** (assuming researching GitHub Copilot):
```
## Task
Research name: GitHub Copilot
category: International Product
description: Developed by Microsoft/GitHub, first mainstream AI coding assistant, ~40% market share, output structured JSON to {project_dir}/results/GitHub_Copilot.json
## Field Definitions
Read {project_dir}/fields.yaml to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{project_dir}/results/GitHub_Copilot.json
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.codex/skills/research/validate_json.py -f {project_dir}/fields.yaml -j {project_dir}/results/GitHub_Copilot.json
Task is complete only after validation passes.
```
### Step 4: Wait and Monitor
- Wait for current batch to complete
- Launch next batch
- Display progress
### Step 5: Summary Report
After all complete, output:
- Completion count
- Failed/uncertain marked items
- Output directory
## Agent Config
- Background execution: Yes
- Task Output: Disabled (agent has explicit output file when complete)
- Resume support: Yes

View File

@@ -0,0 +1,91 @@
---
name: research-report
description: Summarize deep research results into markdown report, cover all fields, skip uncertain values.
---
# Research Report - Summary Report
## Trigger
`/research-report`
## Workflow
### Step 1: Locate Results Directory
Find `*/outline.yaml` in current working directory, read topic and output_dir config.
### Step 2: Scan Optional Summary Fields
Read all JSON results, extract fields suitable for TOC display (numeric, short metrics), e.g.:
- github_stars
- google_scholar_cites
- swe_bench_score
- user_scale
- valuation
- release_date
Use request_user_input to ask user:
- Which fields to display in TOC besides item name?
- Provide dynamic options list (based on actual fields in JSON)
### Step 3: Generate Python Conversion Script
Generate `generate_report.py` in `{topic}/` directory, script requirements:
- Read all JSON from output_dir
- Read fields.yaml to get field structure
- Cover all field values from each JSON
- Skip fields with values containing [uncertain]
- Skip fields listed in uncertain array
- Generate markdown report format: Table of contents (with anchor links + user-selected summary fields) + Detailed content (by field category)
- Save to `{topic}/report.md`
**TOC Format Requirements**:
- Must include every item
- Each item displays: number, name (anchor link), user-selected summary fields
- Example: `1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%`
#### Script Technical Requirements (Must Follow)
**1. JSON Structure Compatibility**
Support two JSON structures:
- Flat structure: Fields directly at top level `{"name": "xxx", "release_date": "xxx"}`
- Nested structure: Fields in category sub-dict `{"basic_info": {"name": "xxx"}, "technical_features": {...}}`
Field lookup order: Top level -> category mapping key -> Traverse all nested dicts
**2. Category Multi-language Mapping**
fields.yaml category names and JSON keys can be any combination (CN-CN, CN-EN, EN-CN, EN-EN). Must establish bidirectional mapping:
```python
CATEGORY_MAPPING = {
"Basic Info": ["basic_info", "Basic Info"],
"Technical Features": ["technical_features", "technical_characteristics", "Technical Features"],
"Performance Metrics": ["performance_metrics", "performance", "Performance Metrics"],
"Milestone Significance": ["milestone_significance", "milestones", "Milestone Significance"],
"Business Info": ["business_info", "commercial_info", "Business Info"],
"Competition & Ecosystem": ["competition_ecosystem", "competition", "Competition & Ecosystem"],
"History": ["history", "History"],
"Market Positioning": ["market_positioning", "market", "Market Positioning"],
}
```
**3. Complex Value Formatting**
- list of dicts (e.g., key_events, funding_history): Format each dict as one line, separate kv with ` | `
- Normal list: Short lists joined with comma, long lists displayed with line breaks
- Nested dict: Recursive formatting, display with semicolon or line breaks
- Long text strings (over 100 chars): Add line breaks `<br>` or use blockquote format for readability
**4. Extra Fields Collection**
Collect fields that exist in JSON but not defined in fields.yaml, put in "Other Info" category. Note to filter:
- Internal fields: `_source_file`, `uncertain`
- Nested structure top-level keys: `basic_info`, `technical_features` etc.
- `uncertain` array: Display each field name on separate line, don't compress into one line
**5. Uncertain Value Skipping**
Skip conditions:
- Field value contains `[uncertain]` string
- Field name is in `uncertain` array
- Field value is None or empty string
### Step 4: Execute Script
Run `python {topic}/generate_report.py`
## Output
- `{topic}/generate_report.py` - Conversion script
- `{topic}/report.md` - Summary report

View File

@@ -0,0 +1,143 @@
---
name: research
description: Conduct preliminary research on a topic and generate research outline. For academic research, benchmark research, technology selection, etc.
---
# Research Skill - Preliminary Research
## Trigger
`/research <topic>`
## Workflow
### Step 1: Generate Initial Framework from Model Knowledge
Based on topic, use model's existing knowledge to generate:
- Main research objects/items list in this domain
- Suggested research field framework
Output {step1_output}, use request_user_input to confirm:
- Need to add/remove items?
- Does field framework meet requirements?
### Step 2: Web Search Supplement
Use request_user_input to ask for time range (e.g., last 6 months, since 2024, unlimited).
**Parameter Retrieval**:
- `{topic}`: User input research topic
- `{YYYY-MM-DD}`: Current date
- `{step1_output}`: Complete output from Step 1
- `{time_range}`: User specified time range
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
Launch 1 web-search-agent (background), **Prompt Template**:
```python
prompt = f"""## Task
Research topic: {topic}
Current date: {YYYY-MM-DD}
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
{step1_output}
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for {topic} related items within {time_range} and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
"""
```
**One-shot Example** (assuming researching AI Coding History):
```
## Task
Research topic: AI Coding History
Current date: 2025-12-30
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
### Items List
1. GitHub Copilot: Developed by Microsoft/GitHub, first mainstream AI coding assistant
2. Cursor: AI-first IDE, based on VSCode
...
### Field Framework
- Basic Info: name, release_date, company
- Technical Features: underlying_model, context_window
...
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for AI Coding History related items within since 2024 and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
```
### Step 3: Ask User for Existing Fields
Use request_user_input to ask if user has existing field definition file, if so read and merge.
### Step 4: Generate Outline (Separate Files)
Merge {step1_output}, {step2_output} and user's existing fields, generate two files:
**outline.yaml** (items + config):
- topic: Research topic
- items: Research objects list
- execution:
- batch_size: Number of parallel agents (confirm with request_user_input)
- items_per_agent: Items per agent (confirm with request_user_input)
- output_dir: Results output directory (default: ./results)
**fields.yaml** (field definitions):
- Field categories and definitions
- Each field's name, description, detail_level
- detail_level hierarchy: brief -> moderate -> detailed
- uncertain: Uncertain fields list (reserved field, auto-filled in deep phase)
### Step 5: Output and Confirm
- Create directory: `./{topic_slug}/`
- Save: `outline.yaml` and `fields.yaml`
- Show to user for confirmation
## Output Path
```
{current_working_directory}/{topic_slug}/
├── outline.yaml # items list + execution config
└── fields.yaml # field definitions
```
## Follow-up Commands
- `/research-add-items` - Supplement items
- `/research-add-fields` - Supplement fields
- `/research-deep` - Start deep research

View File

@@ -0,0 +1,198 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import sys
from collections import defaultdict
from pathlib import Path
import yaml
CATEGORY_MAPPING = {
"basic_info": ["basic_info", "Basic Info"],
"technical_features": ["technical_features", "technical_characteristics", "Technical Features"],
"performance_metrics": ["performance_metrics", "performance", "Performance Metrics"],
"milestone_significance": ["milestone_significance", "milestones", "Milestone Significance"],
"business_info": ["business_info", "commercial_info", "Business Info"],
"competition_ecosystem": ["competition_ecosystem", "competition", "Competition Ecosystem"],
"history": ["history", "History"],
"market_positioning": ["market_positioning", "market", "Market Positioning"],
}
_SKIP_KEYS = {"_source_file", "uncertain"}
def load_fields_yaml(fields_path):
"""Parse fields.yaml in the single schema the research skills emit:
fields:
<category>:
- {name: ..., description: ..., detail_level: ...}
...
uncertain: []
This is the ONLY accepted shape. A fields.yaml that does not match fails
loudly instead of silently passing with zero fields.
Required semantics (so the validator can never pass vacuously / "lie"):
- if ANY field carries an explicit `required:` key -> opt-in, preserve it
- else (detail_level-style, no markers) -> ALL fields required, because the
script's stated purpose is COMPLETE field coverage.
"""
with fields_path.open(encoding="utf-8") as f:
data = yaml.safe_load(f) or {}
defs = [] # (name, category, required_or_None)
fn = data.get("fields")
if not isinstance(fn, dict):
print(f"[ERROR] fields.yaml must use the `fields: {{<category>: [{{name, ...}}]}}` shape; got {type(fn).__name__ if fn is not None else 'None'}.")
sys.exit(1)
for cname, flist in fn.items():
if cname in _SKIP_KEYS:
continue
if not isinstance(flist, list):
print(f"[ERROR] category `{cname}` must map to a list of field dicts; got {type(flist).__name__}.")
sys.exit(1)
for field in flist:
if isinstance(field, dict) and "name" in field:
defs.append((str(field["name"]), str(cname), field.get("required", None)))
else:
print(f"[ERROR] field entry under `{cname}` must be a dict with a `name` key; got {field!r}.")
sys.exit(1)
if not defs:
print("[ERROR] fields.yaml parsed zero fields. Ensure at least one category with field dicts.")
sys.exit(1)
all_fields = {n for n, _, _ in defs}
if any(r is not None for _, _, r in defs):
required_fields = {n for n, _, r in defs if r}
else:
required_fields = set(all_fields)
field_categories = {n: c for n, c, _ in defs}
return all_fields, required_fields, field_categories
def extract_json_fields(data, category_mapping=None):
category_mapping = CATEGORY_MAPPING if category_mapping is None else category_mapping
nested_keys = {k for keys in category_mapping.values() for k in keys}
fields = set()
stack = [(data, True)]
while stack:
obj, is_category_level = stack.pop()
if isinstance(obj, dict):
for k, v in obj.items():
if k in _SKIP_KEYS:
continue
if is_category_level and k in nested_keys:
if isinstance(v, dict):
stack.append((v, True))
continue
fields.add(k)
elif isinstance(obj, list):
stack.extend((item, is_category_level) for item in obj if isinstance(item, dict))
return fields
def validate_json(json_path, all_fields, required_fields, field_categories):
with json_path.open(encoding="utf-8") as f:
data = json.load(f)
json_fields = extract_json_fields(data)
covered = all_fields & json_fields
missing = all_fields - json_fields
extra = json_fields - all_fields
missing_required = missing & required_fields
missing_by_category = defaultdict(list)
for field in missing:
missing_by_category[field_categories.get(field, "Unknown")].append(field)
return {
"file": json_path.name,
"total_defined": len(all_fields),
"covered": len(covered),
"missing": len(missing),
"extra": len(extra),
"coverage_rate": len(covered) / len(all_fields) * 100 if all_fields else 100,
"missing_required": sorted(missing_required),
"missing_optional": sorted(missing - required_fields),
"missing_by_category": {k: sorted(v) for k, v in missing_by_category.items()},
"extra_fields": sorted(extra),
"valid": len(missing_required) == 0,
}
def print_result(result, verbose=True):
status = "PASS" if result["valid"] else "FAIL"
line = "=" * 60
print(f"\n{line}")
print(f"[{status}] {result['file']}")
print(line)
print(f"Coverage: {result['coverage_rate']:.1f}% ({result['covered']}/{result['total_defined']})")
if result["missing_required"]:
print(f"\n[ERROR] Missing required fields ({len(result['missing_required'])}):")
print("\n".join(f" - {f}" for f in result["missing_required"]))
if verbose and result["missing_optional"]:
missing_required = set(result["missing_required"])
print(f"\n[WARN] Missing optional fields ({len(result['missing_optional'])}):")
for cat in sorted(result["missing_by_category"]):
optional = [f for f in result["missing_by_category"][cat] if f not in missing_required]
if optional:
print(f" [{cat}]: {', '.join(optional)}")
if verbose and result["extra_fields"]:
extra = result["extra_fields"]
print(f"\n[INFO] Extra fields ({len(extra)}):")
print(f" {', '.join(extra[:10])}")
if len(extra) > 10:
print(f" ... and {len(extra) - 10} more")
def main():
import argparse
parser = argparse.ArgumentParser(description="Validate whether JSON files cover all fields defined in fields.yaml")
parser.add_argument("--fields", "-f", type=str, help="Path to fields.yaml", default="fields.yaml")
parser.add_argument("--json", "-j", type=str, nargs="*", help="JSON file paths to validate")
parser.add_argument("--dir", "-d", type=str, help="Directory containing JSON files", default="results")
parser.add_argument("--quiet", "-q", action="store_true", help="Show summary only")
args = parser.parse_args()
fields_path = Path(args.fields)
if not fields_path.exists():
for p in (Path.cwd() / "fields.yaml", Path.cwd().parent / "fields.yaml"):
if p.exists():
fields_path = p
break
if not fields_path.exists():
print(f"[ERROR] fields.yaml not found: {fields_path}")
sys.exit(1)
print(f"Field definition file: {fields_path}")
all_fields, required_fields, field_categories = load_fields_yaml(fields_path)
print(f"Total fields: {len(all_fields)} (required: {len(required_fields)}, optional: {len(all_fields) - len(required_fields)})")
json_files = (
[Path(p) for p in args.json]
if args.json
else sorted(Path(args.dir).glob("*.json")) if Path(args.dir).exists() else []
)
if not json_files:
print("[WARN] No JSON files found")
sys.exit(0)
results = []
for json_path in json_files:
if not json_path.exists():
print(f"[WARN] File not found: {json_path}")
continue
result = validate_json(json_path, all_fields, required_fields, field_categories)
results.append(result)
print_result(result, verbose=not args.quiet)
line = "=" * 60
print(f"\n{line}")
print("Summary")
print(line)
passed = sum(1 for r in results if r["valid"])
avg_coverage = sum(r["coverage_rate"] for r in results) / len(results) if results else 0
print(f"Validation passed: {passed}/{len(results)}")
print(f"Average coverage: {avg_coverage:.1f}%")
if passed < len(results):
sys.exit(1)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,30 @@
---
name: research-add-fields
description: Add field definitions to existing research outline.
---
# Research Add Fields - Supplement Research Fields
## Trigger
`/research-add-fields`
## Workflow
### Step 1: Auto-locate Fields File
Find `*/fields.yaml` file in current working directory, auto-read existing fields definitions.
### Step 2: Get Supplement Source
Ask user to choose:
- **A. User direct input**: User provides field names and descriptions
- **B. Web Search**: Launch agent to search common fields in this domain
### Step 3: Display and Confirm
- Display suggested new fields list
- User confirms which fields to add
- User specifies field category and detail_level
### Step 4: Save Update
Append confirmed fields to fields.yaml, save file.
## Output
Updated `{topic}/fields.yaml` file (in-place modification, requires user confirmation)

View File

@@ -0,0 +1,28 @@
---
name: research-add-items
description: Add items (research objects) to existing research outline.
---
# Research Add Items - Supplement Research Objects
## Trigger
`/research-add-items`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, auto-read.
### Step 2: Get Supplement Sources in Parallel
Simultaneously:
- **A. Ask user**: What items to supplement? Any specific names?
- **B. Ask if Web Search needed**: Launch agent to search for more items?
### Step 3: Merge and Update
- Append new items to outline.yaml
- Display to user for confirmation
- Avoid duplicates
- Save updated outline
## Output
Updated `{topic}/outline.yaml` file (in-place modification)

View File

@@ -0,0 +1,98 @@
---
name: research-deep
description: Read research outline, launch independent agent for each item for deep research. Disable task output.
---
# Research Deep - Deep Research
## Trigger
`/research-deep`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, read items list, execution config (including items_per_agent).
### Step 2: Resume Check
- Check completed JSON files in output_dir
- Skip completed items
### Step 3: Batch Execution
- Batch by batch_size (need user approval before next batch)
- Each agent handles items_per_agent items
- Launch web-search-agent (background parallel, disable task output)
**Parameter Retrieval**:
- `{topic}`: topic field from outline.yaml
- `{item_name}`: item's name field
- `{item_related_info}`: item's complete yaml content (name + category + description etc.)
- `{output_dir}`: execution.output_dir from outline.yaml (default: ./results)
- `{fields_path}`: absolute path to {topic}/fields.yaml
- `{output_path}`: absolute path to {output_dir}/{item_name_slug}.json (slugify item_name: replace spaces with _, remove special chars)
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
**Prompt Template**:
```python
prompt = f"""## Task
Research {item_related_info}, output structured JSON to {output_path}
## Field Definitions
Read {fields_path} to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{output_path}
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.codex/skills/research/validate_json.py -f {fields_path} -j {output_path}
Task is complete only after validation passes.
"""
```
**One-shot Example** (assuming researching GitHub Copilot):
```
## Task
Research name: GitHub Copilot
category: International Product
description: Developed by Microsoft/GitHub, first mainstream AI coding assistant, ~40% market share, output structured JSON to {project_dir}/results/GitHub_Copilot.json
## Field Definitions
Read {project_dir}/fields.yaml to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{project_dir}/results/GitHub_Copilot.json
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.codex/skills/research/validate_json.py -f {project_dir}/fields.yaml -j {project_dir}/results/GitHub_Copilot.json
Task is complete only after validation passes.
```
### Step 4: Wait and Monitor
- Wait for current batch to complete
- Launch next batch
- Display progress
### Step 5: Summary Report
After all complete, output:
- Completion count
- Failed/uncertain marked items
- Output directory
## Agent Config
- Background execution: Yes
- Task Output: Disabled (agent has explicit output file when complete)
- Resume support: Yes

View File

@@ -0,0 +1,91 @@
---
name: research-report
description: Summarize deep research results into markdown report, cover all fields, skip uncertain values.
---
# Research Report - Summary Report
## Trigger
`/research-report`
## Workflow
### Step 1: Locate Results Directory
Find `*/outline.yaml` in current working directory, read topic and output_dir config.
### Step 2: Scan Optional Summary Fields
Read all JSON results, extract fields suitable for TOC display (numeric, short metrics), e.g.:
- github_stars
- google_scholar_cites
- swe_bench_score
- user_scale
- valuation
- release_date
Use request_user_input to ask user:
- Which fields to display in TOC besides item name?
- Provide dynamic options list (based on actual fields in JSON)
### Step 3: Generate Python Conversion Script
Generate `generate_report.py` in `{topic}/` directory, script requirements:
- Read all JSON from output_dir
- Read fields.yaml to get field structure
- Cover all field values from each JSON
- Skip fields with values containing [uncertain]
- Skip fields listed in uncertain array
- Generate markdown report format: Table of contents (with anchor links + user-selected summary fields) + Detailed content (by field category)
- Save to `{topic}/report.md`
**TOC Format Requirements**:
- Must include every item
- Each item displays: number, name (anchor link), user-selected summary fields
- Example: `1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%`
#### Script Technical Requirements (Must Follow)
**1. JSON Structure Compatibility**
Support two JSON structures:
- Flat structure: Fields directly at top level `{"name": "xxx", "release_date": "xxx"}`
- Nested structure: Fields in category sub-dict `{"basic_info": {"name": "xxx"}, "technical_features": {...}}`
Field lookup order: Top level -> category mapping key -> Traverse all nested dicts
**2. Category Multi-language Mapping**
fields.yaml category names and JSON keys can be any combination (CN-CN, CN-EN, EN-CN, EN-EN). Must establish bidirectional mapping:
```python
CATEGORY_MAPPING = {
"Basic Info": ["basic_info", "Basic Info"],
"Technical Features": ["technical_features", "technical_characteristics", "Technical Features"],
"Performance Metrics": ["performance_metrics", "performance", "Performance Metrics"],
"Milestone Significance": ["milestone_significance", "milestones", "Milestone Significance"],
"Business Info": ["business_info", "commercial_info", "Business Info"],
"Competition & Ecosystem": ["competition_ecosystem", "competition", "Competition & Ecosystem"],
"History": ["history", "History"],
"Market Positioning": ["market_positioning", "market", "Market Positioning"],
}
```
**3. Complex Value Formatting**
- list of dicts (e.g., key_events, funding_history): Format each dict as one line, separate kv with ` | `
- Normal list: Short lists joined with comma, long lists displayed with line breaks
- Nested dict: Recursive formatting, display with semicolon or line breaks
- Long text strings (over 100 chars): Add line breaks `<br>` or use blockquote format for readability
**4. Extra Fields Collection**
Collect fields that exist in JSON but not defined in fields.yaml, put in "Other Info" category. Note to filter:
- Internal fields: `_source_file`, `uncertain`
- Nested structure top-level keys: `basic_info`, `technical_features` etc.
- `uncertain` array: Display each field name on separate line, don't compress into one line
**5. Uncertain Value Skipping**
Skip conditions:
- Field value contains `[uncertain]` string
- Field name is in `uncertain` array
- Field value is None or empty string
### Step 4: Execute Script
Run `python {topic}/generate_report.py`
## Output
- `{topic}/generate_report.py` - Conversion script
- `{topic}/report.md` - Summary report

View File

@@ -0,0 +1,143 @@
---
name: research
description: Conduct preliminary research on a topic and generate research outline. For academic research, benchmark research, technology selection, etc.
---
# Research Skill - Preliminary Research
## Trigger
`/research <topic>`
## Workflow
### Step 1: Generate Initial Framework from Model Knowledge
Based on topic, use model's existing knowledge to generate:
- Main research objects/items list in this domain
- Suggested research field framework
Output {step1_output}, use request_user_input to confirm:
- Need to add/remove items?
- Does field framework meet requirements?
### Step 2: Web Search Supplement
Use request_user_input to ask for time range (e.g., last 6 months, since 2024, unlimited).
**Parameter Retrieval**:
- `{topic}`: User input research topic
- `{YYYY-MM-DD}`: Current date
- `{step1_output}`: Complete output from Step 1
- `{time_range}`: User specified time range
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
Launch 1 web-search-agent (background), **Prompt Template**:
```python
prompt = f"""## Task
Research topic: {topic}
Current date: {YYYY-MM-DD}
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
{step1_output}
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for {topic} related items within {time_range} and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
"""
```
**One-shot Example** (assuming researching AI Coding History):
```
## Task
Research topic: AI Coding History
Current date: 2025-12-30
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
### Items List
1. GitHub Copilot: Developed by Microsoft/GitHub, first mainstream AI coding assistant
2. Cursor: AI-first IDE, based on VSCode
...
### Field Framework
- Basic Info: name, release_date, company
- Technical Features: underlying_model, context_window
...
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for AI Coding History related items within since 2024 and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
```
### Step 3: Ask User for Existing Fields
Use request_user_input to ask if user has existing field definition file, if so read and merge.
### Step 4: Generate Outline (Separate Files)
Merge {step1_output}, {step2_output} and user's existing fields, generate two files:
**outline.yaml** (items + config):
- topic: Research topic
- items: Research objects list
- execution:
- batch_size: Number of parallel agents (confirm with request_user_input)
- items_per_agent: Items per agent (confirm with request_user_input)
- output_dir: Results output directory (default: ./results)
**fields.yaml** (field definitions):
- Field categories and definitions
- Each field's name, description, detail_level
- detail_level hierarchy: brief -> moderate -> detailed
- uncertain: Uncertain fields list (reserved field, auto-filled in deep phase)
### Step 5: Output and Confirm
- Create directory: `./{topic_slug}/`
- Save: `outline.yaml` and `fields.yaml`
- Show to user for confirmation
## Output Path
```
{current_working_directory}/{topic_slug}/
├── outline.yaml # items list + execution config
└── fields.yaml # field definitions
```
## Follow-up Commands
- `/research-add-items` - Supplement items
- `/research-add-fields` - Supplement fields
- `/research-deep` - Start deep research

View File

@@ -0,0 +1,198 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import sys
from collections import defaultdict
from pathlib import Path
import yaml
CATEGORY_MAPPING = {
"basic_info": ["basic_info", "Basic Info"],
"technical_features": ["technical_features", "technical_characteristics", "Technical Features"],
"performance_metrics": ["performance_metrics", "performance", "Performance Metrics"],
"milestone_significance": ["milestone_significance", "milestones", "Milestone Significance"],
"business_info": ["business_info", "commercial_info", "Business Info"],
"competition_ecosystem": ["competition_ecosystem", "competition", "Competition Ecosystem"],
"history": ["history", "History"],
"market_positioning": ["market_positioning", "market", "Market Positioning"],
}
_SKIP_KEYS = {"_source_file", "uncertain"}
def load_fields_yaml(fields_path):
"""Parse fields.yaml in the single schema the research skills emit:
fields:
<category>:
- {name: ..., description: ..., detail_level: ...}
...
uncertain: []
This is the ONLY accepted shape. A fields.yaml that does not match fails
loudly instead of silently passing with zero fields.
Required semantics (so the validator can never pass vacuously / "lie"):
- if ANY field carries an explicit `required:` key -> opt-in, preserve it
- else (detail_level-style, no markers) -> ALL fields required, because the
script's stated purpose is COMPLETE field coverage.
"""
with fields_path.open(encoding="utf-8") as f:
data = yaml.safe_load(f) or {}
defs = [] # (name, category, required_or_None)
fn = data.get("fields")
if not isinstance(fn, dict):
print(f"[ERROR] fields.yaml must use the `fields: {{<category>: [{{name, ...}}]}}` shape; got {type(fn).__name__ if fn is not None else 'None'}.")
sys.exit(1)
for cname, flist in fn.items():
if cname in _SKIP_KEYS:
continue
if not isinstance(flist, list):
print(f"[ERROR] category `{cname}` must map to a list of field dicts; got {type(flist).__name__}.")
sys.exit(1)
for field in flist:
if isinstance(field, dict) and "name" in field:
defs.append((str(field["name"]), str(cname), field.get("required", None)))
else:
print(f"[ERROR] field entry under `{cname}` must be a dict with a `name` key; got {field!r}.")
sys.exit(1)
if not defs:
print("[ERROR] fields.yaml parsed zero fields. Ensure at least one category with field dicts.")
sys.exit(1)
all_fields = {n for n, _, _ in defs}
if any(r is not None for _, _, r in defs):
required_fields = {n for n, _, r in defs if r}
else:
required_fields = set(all_fields)
field_categories = {n: c for n, c, _ in defs}
return all_fields, required_fields, field_categories
def extract_json_fields(data, category_mapping=None):
category_mapping = CATEGORY_MAPPING if category_mapping is None else category_mapping
nested_keys = {k for keys in category_mapping.values() for k in keys}
fields = set()
stack = [(data, True)]
while stack:
obj, is_category_level = stack.pop()
if isinstance(obj, dict):
for k, v in obj.items():
if k in _SKIP_KEYS:
continue
if is_category_level and k in nested_keys:
if isinstance(v, dict):
stack.append((v, True))
continue
fields.add(k)
elif isinstance(obj, list):
stack.extend((item, is_category_level) for item in obj if isinstance(item, dict))
return fields
def validate_json(json_path, all_fields, required_fields, field_categories):
with json_path.open(encoding="utf-8") as f:
data = json.load(f)
json_fields = extract_json_fields(data)
covered = all_fields & json_fields
missing = all_fields - json_fields
extra = json_fields - all_fields
missing_required = missing & required_fields
missing_by_category = defaultdict(list)
for field in missing:
missing_by_category[field_categories.get(field, "Unknown")].append(field)
return {
"file": json_path.name,
"total_defined": len(all_fields),
"covered": len(covered),
"missing": len(missing),
"extra": len(extra),
"coverage_rate": len(covered) / len(all_fields) * 100 if all_fields else 100,
"missing_required": sorted(missing_required),
"missing_optional": sorted(missing - required_fields),
"missing_by_category": {k: sorted(v) for k, v in missing_by_category.items()},
"extra_fields": sorted(extra),
"valid": len(missing_required) == 0,
}
def print_result(result, verbose=True):
status = "PASS" if result["valid"] else "FAIL"
line = "=" * 60
print(f"\n{line}")
print(f"[{status}] {result['file']}")
print(line)
print(f"Coverage: {result['coverage_rate']:.1f}% ({result['covered']}/{result['total_defined']})")
if result["missing_required"]:
print(f"\n[ERROR] Missing required fields ({len(result['missing_required'])}):")
print("\n".join(f" - {f}" for f in result["missing_required"]))
if verbose and result["missing_optional"]:
missing_required = set(result["missing_required"])
print(f"\n[WARN] Missing optional fields ({len(result['missing_optional'])}):")
for cat in sorted(result["missing_by_category"]):
optional = [f for f in result["missing_by_category"][cat] if f not in missing_required]
if optional:
print(f" [{cat}]: {', '.join(optional)}")
if verbose and result["extra_fields"]:
extra = result["extra_fields"]
print(f"\n[INFO] Extra fields ({len(extra)}):")
print(f" {', '.join(extra[:10])}")
if len(extra) > 10:
print(f" ... and {len(extra) - 10} more")
def main():
import argparse
parser = argparse.ArgumentParser(description="Validate whether JSON files cover all fields defined in fields.yaml")
parser.add_argument("--fields", "-f", type=str, help="Path to fields.yaml", default="fields.yaml")
parser.add_argument("--json", "-j", type=str, nargs="*", help="JSON file paths to validate")
parser.add_argument("--dir", "-d", type=str, help="Directory containing JSON files", default="results")
parser.add_argument("--quiet", "-q", action="store_true", help="Show summary only")
args = parser.parse_args()
fields_path = Path(args.fields)
if not fields_path.exists():
for p in (Path.cwd() / "fields.yaml", Path.cwd().parent / "fields.yaml"):
if p.exists():
fields_path = p
break
if not fields_path.exists():
print(f"[ERROR] fields.yaml not found: {fields_path}")
sys.exit(1)
print(f"Field definition file: {fields_path}")
all_fields, required_fields, field_categories = load_fields_yaml(fields_path)
print(f"Total fields: {len(all_fields)} (required: {len(required_fields)}, optional: {len(all_fields) - len(required_fields)})")
json_files = (
[Path(p) for p in args.json]
if args.json
else sorted(Path(args.dir).glob("*.json")) if Path(args.dir).exists() else []
)
if not json_files:
print("[WARN] No JSON files found")
sys.exit(0)
results = []
for json_path in json_files:
if not json_path.exists():
print(f"[WARN] File not found: {json_path}")
continue
result = validate_json(json_path, all_fields, required_fields, field_categories)
results.append(result)
print_result(result, verbose=not args.quiet)
line = "=" * 60
print(f"\n{line}")
print("Summary")
print(line)
passed = sum(1 for r in results if r["valid"])
avg_coverage = sum(r["coverage_rate"] for r in results) / len(results) if results else 0
print(f"Validation passed: {passed}/{len(results)}")
print(f"Average coverage: {avg_coverage:.1f}%")
if passed < len(results):
sys.exit(1)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,32 @@
---
name: research-add-fields
user-invocable: true
description: Add field definitions to existing research outline.
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task, AskUserQuestion
---
# Research Add Fields - Supplement Research Fields
## Trigger
`/research-add-fields`
## Workflow
### Step 1: Auto-locate Fields File
Find `*/fields.yaml` file in current working directory, auto-read existing fields definitions.
### Step 2: Get Supplement Source
Ask user to choose:
- **A. User direct input**: User provides field names and descriptions
- **B. Web Search**: Launch agent to search common fields in this domain
### Step 3: Display and Confirm
- Display suggested new fields list
- User confirms which fields to add
- User specifies field category and detail_level
### Step 4: Save Update
Append confirmed fields to fields.yaml, save file.
## Output
Updated `{topic}/fields.yaml` file (in-place modification, requires user confirmation)

View File

@@ -0,0 +1,30 @@
---
name: research-add-items
user-invocable: true
description: Add items (research objects) to existing research outline.
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task, AskUserQuestion
---
# Research Add Items - Supplement Research Objects
## Trigger
`/research-add-items`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, auto-read.
### Step 2: Get Supplement Sources in Parallel
Simultaneously:
- **A. Ask user**: What items to supplement? Any specific names?
- **B. Ask if Web Search needed**: Launch agent to search for more items?
### Step 3: Merge and Update
- Append new items to outline.yaml
- Display to user for confirmation
- Avoid duplicates
- Save updated outline
## Output
Updated `{topic}/outline.yaml` file (in-place modification)

View File

@@ -0,0 +1,100 @@
---
name: research-deep
user-invocable: true
description: Read research outline, launch independent agent for each item for deep research. Disable task output.
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task
---
# Research Deep - Deep Research
## Trigger
`/research-deep`
## Workflow
### Step 1: Auto-locate Outline
Find `*/outline.yaml` file in current working directory, read items list, execution config (including items_per_agent).
### Step 2: Resume Check
- Check completed JSON files in output_dir
- Skip completed items
### Step 3: Batch Execution
- Batch by batch_size (need user approval before next batch)
- Each agent handles items_per_agent items
- Launch web-search-agent (background parallel, disable task output)
**Parameter Retrieval**:
- `{topic}`: topic field from outline.yaml
- `{item_name}`: item's name field
- `{item_related_info}`: item's complete yaml content (name + category + description etc.)
- `{output_dir}`: execution.output_dir from outline.yaml (default: ./results)
- `{fields_path}`: absolute path to {topic}/fields.yaml
- `{output_path}`: absolute path to {output_dir}/{item_name_slug}.json (slugify item_name: replace spaces with _, remove special chars)
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
**Prompt Template**:
```python
prompt = f"""## Task
Research {item_related_info}, output structured JSON to {output_path}
## Field Definitions
Read {fields_path} to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{output_path}
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.claude/skills/research/validate_json.py -f {fields_path} -j {output_path}
Task is complete only after validation passes.
"""
```
**One-shot Example** (assuming researching GitHub Copilot):
```
## Task
Research name: GitHub Copilot
category: International Product
description: Developed by Microsoft/GitHub, first mainstream AI coding assistant, ~40% market share, output structured JSON to {project_dir}/results/GitHub_Copilot.json
## Field Definitions
Read {project_dir}/fields.yaml to get all field definitions
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. All field values must be in English
## Output Path
{project_dir}/results/GitHub_Copilot.json
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.claude/skills/research/validate_json.py -f {project_dir}/fields.yaml -j {project_dir}/results/GitHub_Copilot.json
Task is complete only after validation passes.
```
### Step 4: Wait and Monitor
- Wait for current batch to complete
- Launch next batch
- Display progress
### Step 5: Summary Report
After all complete, output:
- Completion count
- Failed/uncertain marked items
- Output directory
## Agent Config
- Background execution: Yes
- Task Output: Disabled (agent has explicit output file when complete)
- Resume support: Yes

View File

@@ -0,0 +1,93 @@
---
name: research-report
user-invocable: true
description: Summarize deep research results into markdown report, cover all fields, skip uncertain values.
allowed-tools: Read, Write, Glob, Bash, AskUserQuestion
---
# Research Report - Summary Report
## Trigger
`/research-report`
## Workflow
### Step 1: Locate Results Directory
Find `*/outline.yaml` in current working directory, read topic and output_dir config.
### Step 2: Scan Optional Summary Fields
Read all JSON results, extract fields suitable for TOC display (numeric, short metrics), e.g.:
- github_stars
- google_scholar_cites
- swe_bench_score
- user_scale
- valuation
- release_date
Use AskUserQuestion to ask user:
- Which fields to display in TOC besides item name?
- Provide dynamic options list (based on actual fields in JSON)
### Step 3: Generate Python Conversion Script
Generate `generate_report.py` in `{topic}/` directory, script requirements:
- Read all JSON from output_dir
- Read fields.yaml to get field structure
- Cover all field values from each JSON
- Skip fields with values containing [uncertain]
- Skip fields listed in uncertain array
- Generate markdown report format: Table of contents (with anchor links + user-selected summary fields) + Detailed content (by field category)
- Save to `{topic}/report.md`
**TOC Format Requirements**:
- Must include every item
- Each item displays: number, name (anchor link), user-selected summary fields
- Example: `1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%`
#### Script Technical Requirements (Must Follow)
**1. JSON Structure Compatibility**
Support two JSON structures:
- Flat structure: Fields directly at top level `{"name": "xxx", "release_date": "xxx"}`
- Nested structure: Fields in category sub-dict `{"basic_info": {"name": "xxx"}, "technical_features": {...}}`
Field lookup order: Top level -> category mapping key -> Traverse all nested dicts
**2. Category Multi-language Mapping**
fields.yaml category names and JSON keys can be any combination (CN-CN, CN-EN, EN-CN, EN-EN). Must establish bidirectional mapping:
```python
CATEGORY_MAPPING = {
"Basic Info": ["basic_info", "Basic Info"],
"Technical Features": ["technical_features", "technical_characteristics", "Technical Features"],
"Performance Metrics": ["performance_metrics", "performance", "Performance Metrics"],
"Milestone Significance": ["milestone_significance", "milestones", "Milestone Significance"],
"Business Info": ["business_info", "commercial_info", "Business Info"],
"Competition & Ecosystem": ["competition_ecosystem", "competition", "Competition & Ecosystem"],
"History": ["history", "History"],
"Market Positioning": ["market_positioning", "market", "Market Positioning"],
}
```
**3. Complex Value Formatting**
- list of dicts (e.g., key_events, funding_history): Format each dict as one line, separate kv with ` | `
- Normal list: Short lists joined with comma, long lists displayed with line breaks
- Nested dict: Recursive formatting, display with semicolon or line breaks
- Long text strings (over 100 chars): Add line breaks `<br>` or use blockquote format for readability
**4. Extra Fields Collection**
Collect fields that exist in JSON but not defined in fields.yaml, put in "Other Info" category. Note to filter:
- Internal fields: `_source_file`, `uncertain`
- Nested structure top-level keys: `basic_info`, `technical_features` etc.
- `uncertain` array: Display each field name on separate line, don't compress into one line
**5. Uncertain Value Skipping**
Skip conditions:
- Field value contains `[uncertain]` string
- Field name is in `uncertain` array
- Field value is None or empty string
### Step 4: Execute Script
Run `python {topic}/generate_report.py`
## Output
- `{topic}/generate_report.py` - Conversion script
- `{topic}/report.md` - Summary report

View File

@@ -0,0 +1,145 @@
---
name: research
user-invocable: true
allowed-tools: Read, Write, Glob, WebSearch, Task, AskUserQuestion
description: Conduct preliminary research on a topic and generate research outline. For academic research, benchmark research, technology selection, etc.
---
# Research Skill - Preliminary Research
## Trigger
`/research <topic>`
## Workflow
### Step 1: Generate Initial Framework from Model Knowledge
Based on topic, use model's existing knowledge to generate:
- Main research objects/items list in this domain
- Suggested research field framework
Output {step1_output}, use AskUserQuestion to confirm:
- Need to add/remove items?
- Does field framework meet requirements?
### Step 2: Web Search Supplement
Use AskUserQuestion to ask for time range (e.g., last 6 months, since 2024, unlimited).
**Parameter Retrieval**:
- `{topic}`: User input research topic
- `{YYYY-MM-DD}`: Current date
- `{step1_output}`: Complete output from Step 1
- `{time_range}`: User specified time range
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
Launch 1 web-search-agent (background), **Prompt Template**:
```python
prompt = f"""## Task
Research topic: {topic}
Current date: {YYYY-MM-DD}
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
{step1_output}
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for {topic} related items within {time_range} and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
"""
```
**One-shot Example** (assuming researching AI Coding History):
```
## Task
Research topic: AI Coding History
Current date: 2025-12-30
Based on the following initial framework, supplement latest items and recommended research fields.
## Existing Framework
### Items List
1. GitHub Copilot: Developed by Microsoft/GitHub, first mainstream AI coding assistant
2. Cursor: AI-first IDE, based on VSCode
...
### Field Framework
- Basic Info: name, release_date, company
- Technical Features: underlying_model, context_window
...
## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for AI Coding History related items within since 2024 and supplement
4. Supplement new fields
## Output Requirements
Return structured results directly (do not write files):
### Supplementary Items
- item_name: Brief explanation (why it should be added)
...
### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...
### Sources
- [Source1](url1)
- [Source2](url2)
```
### Step 3: Ask User for Existing Fields
Use AskUserQuestion to ask if user has existing field definition file, if so read and merge.
### Step 4: Generate Outline (Separate Files)
Merge {step1_output}, {step2_output} and user's existing fields, generate two files:
**outline.yaml** (items + config):
- topic: Research topic
- items: Research objects list
- execution:
- batch_size: Number of parallel agents (confirm with AskUserQuestion)
- items_per_agent: Items per agent (confirm with AskUserQuestion)
- output_dir: Results output directory (default: ./results)
**fields.yaml** (field definitions):
- Field categories and definitions
- Each field's name, description, detail_level
- detail_level hierarchy: brief -> moderate -> detailed
- uncertain: Uncertain fields list (reserved field, auto-filled in deep phase)
### Step 5: Output and Confirm
- Create directory: `./{topic_slug}/`
- Save: `outline.yaml` and `fields.yaml`
- Show to user for confirmation
## Output Path
```
{current_working_directory}/{topic_slug}/
├── outline.yaml # items list + execution config
└── fields.yaml # field definitions
```
## Follow-up Commands
- `/research-add-items` - Supplement items
- `/research-add-fields` - Supplement fields
- `/research-deep` - Start deep research

View File

@@ -0,0 +1,198 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import sys
from collections import defaultdict
from pathlib import Path
import yaml
CATEGORY_MAPPING = {
"basic_info": ["basic_info", "Basic Info"],
"technical_features": ["technical_features", "technical_characteristics", "Technical Features"],
"performance_metrics": ["performance_metrics", "performance", "Performance Metrics"],
"milestone_significance": ["milestone_significance", "milestones", "Milestone Significance"],
"business_info": ["business_info", "commercial_info", "Business Info"],
"competition_ecosystem": ["competition_ecosystem", "competition", "Competition Ecosystem"],
"history": ["history", "History"],
"market_positioning": ["market_positioning", "market", "Market Positioning"],
}
_SKIP_KEYS = {"_source_file", "uncertain"}
def load_fields_yaml(fields_path):
"""Parse fields.yaml in the single schema the research skills emit:
fields:
<category>:
- {name: ..., description: ..., detail_level: ...}
...
uncertain: []
This is the ONLY accepted shape. A fields.yaml that does not match fails
loudly instead of silently passing with zero fields.
Required semantics (so the validator can never pass vacuously / "lie"):
- if ANY field carries an explicit `required:` key -> opt-in, preserve it
- else (detail_level-style, no markers) -> ALL fields required, because the
script's stated purpose is COMPLETE field coverage.
"""
with fields_path.open(encoding="utf-8") as f:
data = yaml.safe_load(f) or {}
defs = [] # (name, category, required_or_None)
fn = data.get("fields")
if not isinstance(fn, dict):
print(f"[ERROR] fields.yaml must use the `fields: {{<category>: [{{name, ...}}]}}` shape; got {type(fn).__name__ if fn is not None else 'None'}.")
sys.exit(1)
for cname, flist in fn.items():
if cname in _SKIP_KEYS:
continue
if not isinstance(flist, list):
print(f"[ERROR] category `{cname}` must map to a list of field dicts; got {type(flist).__name__}.")
sys.exit(1)
for field in flist:
if isinstance(field, dict) and "name" in field:
defs.append((str(field["name"]), str(cname), field.get("required", None)))
else:
print(f"[ERROR] field entry under `{cname}` must be a dict with a `name` key; got {field!r}.")
sys.exit(1)
if not defs:
print("[ERROR] fields.yaml parsed zero fields. Ensure at least one category with field dicts.")
sys.exit(1)
all_fields = {n for n, _, _ in defs}
if any(r is not None for _, _, r in defs):
required_fields = {n for n, _, r in defs if r}
else:
required_fields = set(all_fields)
field_categories = {n: c for n, c, _ in defs}
return all_fields, required_fields, field_categories
def extract_json_fields(data, category_mapping=None):
category_mapping = CATEGORY_MAPPING if category_mapping is None else category_mapping
nested_keys = {k for keys in category_mapping.values() for k in keys}
fields = set()
stack = [(data, True)]
while stack:
obj, is_category_level = stack.pop()
if isinstance(obj, dict):
for k, v in obj.items():
if k in _SKIP_KEYS:
continue
if is_category_level and k in nested_keys:
if isinstance(v, dict):
stack.append((v, True))
continue
fields.add(k)
elif isinstance(obj, list):
stack.extend((item, is_category_level) for item in obj if isinstance(item, dict))
return fields
def validate_json(json_path, all_fields, required_fields, field_categories):
with json_path.open(encoding="utf-8") as f:
data = json.load(f)
json_fields = extract_json_fields(data)
covered = all_fields & json_fields
missing = all_fields - json_fields
extra = json_fields - all_fields
missing_required = missing & required_fields
missing_by_category = defaultdict(list)
for field in missing:
missing_by_category[field_categories.get(field, "Unknown")].append(field)
return {
"file": json_path.name,
"total_defined": len(all_fields),
"covered": len(covered),
"missing": len(missing),
"extra": len(extra),
"coverage_rate": len(covered) / len(all_fields) * 100 if all_fields else 100,
"missing_required": sorted(missing_required),
"missing_optional": sorted(missing - required_fields),
"missing_by_category": {k: sorted(v) for k, v in missing_by_category.items()},
"extra_fields": sorted(extra),
"valid": len(missing_required) == 0,
}
def print_result(result, verbose=True):
status = "PASS" if result["valid"] else "FAIL"
line = "=" * 60
print(f"\n{line}")
print(f"[{status}] {result['file']}")
print(line)
print(f"Coverage: {result['coverage_rate']:.1f}% ({result['covered']}/{result['total_defined']})")
if result["missing_required"]:
print(f"\n[ERROR] Missing required fields ({len(result['missing_required'])}):")
print("\n".join(f" - {f}" for f in result["missing_required"]))
if verbose and result["missing_optional"]:
missing_required = set(result["missing_required"])
print(f"\n[WARN] Missing optional fields ({len(result['missing_optional'])}):")
for cat in sorted(result["missing_by_category"]):
optional = [f for f in result["missing_by_category"][cat] if f not in missing_required]
if optional:
print(f" [{cat}]: {', '.join(optional)}")
if verbose and result["extra_fields"]:
extra = result["extra_fields"]
print(f"\n[INFO] Extra fields ({len(extra)}):")
print(f" {', '.join(extra[:10])}")
if len(extra) > 10:
print(f" ... and {len(extra) - 10} more")
def main():
import argparse
parser = argparse.ArgumentParser(description="Validate whether JSON files cover all fields defined in fields.yaml")
parser.add_argument("--fields", "-f", type=str, help="Path to fields.yaml", default="fields.yaml")
parser.add_argument("--json", "-j", type=str, nargs="*", help="JSON file paths to validate")
parser.add_argument("--dir", "-d", type=str, help="Directory containing JSON files", default="results")
parser.add_argument("--quiet", "-q", action="store_true", help="Show summary only")
args = parser.parse_args()
fields_path = Path(args.fields)
if not fields_path.exists():
for p in (Path.cwd() / "fields.yaml", Path.cwd().parent / "fields.yaml"):
if p.exists():
fields_path = p
break
if not fields_path.exists():
print(f"[ERROR] fields.yaml not found: {fields_path}")
sys.exit(1)
print(f"Field definition file: {fields_path}")
all_fields, required_fields, field_categories = load_fields_yaml(fields_path)
print(f"Total fields: {len(all_fields)} (required: {len(required_fields)}, optional: {len(all_fields) - len(required_fields)})")
json_files = (
[Path(p) for p in args.json]
if args.json
else sorted(Path(args.dir).glob("*.json")) if Path(args.dir).exists() else []
)
if not json_files:
print("[WARN] No JSON files found")
sys.exit(0)
results = []
for json_path in json_files:
if not json_path.exists():
print(f"[WARN] File not found: {json_path}")
continue
result = validate_json(json_path, all_fields, required_fields, field_categories)
results.append(result)
print_result(result, verbose=not args.quiet)
line = "=" * 60
print(f"\n{line}")
print("Summary")
print(line)
passed = sum(1 for r in results if r["valid"])
avg_coverage = sum(r["coverage_rate"] for r in results) / len(results) if results else 0
print(f"Validation passed: {passed}/{len(results)}")
print(f"Average coverage: {avg_coverage:.1f}%")
if passed < len(results):
sys.exit(1)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,32 @@
---
name: research-add-fields
user-invocable: true
description: 向现有调研outline补充字段定义。
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task, AskUserQuestion
---
# Research Add Fields - 补充调研字段
## 触发方式
`/research-add-fields`
## 执行流程
### Step 1: 自动定位Fields文件
在当前工作目录查找 `*/fields.yaml` 文件,自动读取现有fields定义。
### Step 2: 获取补充来源
询问用户选择:
- **A. 用户直接输入**:用户提供字段名称和描述
- **B. Web Search搜索**:启动web-search-agent搜索该领域常用字段
### Step 3: 展示并确认
- 展示建议的新字段列表
- 用户确认哪些字段需要添加
- 用户指定字段分类和detail_level
### Step 4: 保存更新
将确认的字段追加到fields.yaml,保存文件。
## 输出
更新后的 `{topic}/fields.yaml` 文件(原地修改,需用户确认)

View File

@@ -0,0 +1,30 @@
---
name: research-add-items
user-invocable: true
description: 向现有调研outline补充items(调研对象)。
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task, AskUserQuestion
---
# Research Add Items - 补充调研对象
## 触发方式
`/research-add-items`
## 执行流程
### Step 1: 自动定位Outline
在当前工作目录查找 `*/outline.yaml` 文件,自动读取。
### Step 2: 并行获取补充来源
同时进行:
- **A. 询问用户**:需要补充哪些items?有具体名称吗?
- **B. 询问是否需要Web Search**:是否启动agent搜索更多items?
### Step 3: 合并更新
- 将新items追加到outline.yaml
- 展示给用户确认
- 避免重复
- 保存更新后的outline
## 输出
更新后的 `{topic}/outline.yaml` 文件(原地修改)

View File

@@ -0,0 +1,100 @@
---
name: research-deep
user-invocable: true
description: 读取调研outline,为每个item启动独立agent进行深度调研。禁用task output。
allowed-tools: Bash, Read, Write, Glob, WebSearch, Task
---
# Research Deep - 深度调研
## 触发方式
`/research-deep`
## 执行流程
### Step 1: 自动定位Outline
在当前工作目录查找 `*/outline.yaml` 文件,读取items列表、execution配置(含items_per_agent)。
### Step 2: 断点续传检查
- 检查output_dir下已完成的JSON文件
- 跳过已完成的items
### Step 3: 分批执行
- 按batch_size分批(完成一批需要得到用户同意才可进行下一批)
- 每个agent负责items_per_agent个项目
- 启动web-search-agent(后台并行,禁用task output)
**参数获取**:
- `{topic}`: outline.yaml中的topic字段
- `{item_name}`: item的name字段
- `{item_related_info}`: item的完整yaml内容(name + category + description等)
- `{output_dir}`: outline.yaml中execution.output_dir(默认./results)
- `{fields_path}`: {topic}/fields.yaml的绝对路径
- `{output_path}`: {output_dir}/{item_name_slug}.json的绝对路径(slugify处理item_name:空格替换为_,移除特殊字符)
**硬约束**:以下prompt必须严格复述,仅替换{xxx}中的变量,禁止改写结构或措辞。
**Prompt模板**:
```python
prompt = f"""## 任务
调研 {item_related_info},输出结构化JSON到 {output_path}
## 字段定义
读取 {fields_path} 获取所有字段定义
## 输出要求
1. 按fields.yaml定义的字段输出JSON
2. 不确定的字段值标注[不确定]
3. JSON末尾添加uncertain数组,列出所有不确定的字段名
4. 所有字段值必须使用中文输出(调研过程可用英文,但最终JSON值为中文)
## 输出路径
{output_path}
## 验证
完成JSON输出后,运行验证脚本确保字段完整覆盖:
python ~/.claude/skills/research/validate_json.py -f {fields_path} -j {output_path}
验证通过后才算完成任务。
"""
```
**One-shot示例**(假设调研GitHub Copilot):
```
## 任务
调研 name: GitHub Copilot
category: 国际产品
description: Microsoft/GitHub开发,首个主流AI编程助手,市场份额约40%,输出结构化JSON到 {project_dir}/results/GitHub_Copilot.json
## 字段定义
读取 {project_dir}/fields.yaml 获取所有字段定义
## 输出要求
1. 按fields.yaml定义的字段输出JSON
2. 不确定的字段值标注[不确定]
3. JSON末尾添加uncertain数组,列出所有不确定的字段名
4. 所有字段值必须使用中文输出(调研过程可用英文,但最终JSON值为中文)
## 输出路径
{project_dir}/results/GitHub_Copilot.json
## 验证
完成JSON输出后,运行验证脚本确保字段完整覆盖:
python ~/.claude/skills/research/validate_json.py -f {project_dir}/fields.yaml -j {project_dir}/results/GitHub_Copilot.json
验证通过后才算完成任务。
```
### Step 4: 等待与监控
- 等待当前批次完成
- 启动下一批
- 显示进度
### Step 5: 汇总报告
全部完成后输出:
- 完成数量
- 失败/不确定标记的items
- 输出目录
## Agent配置
- 后台执行: 是
- Task Output: 禁用(agent完成时有明确输出文件)
- 断点续传: 是

View File

@@ -0,0 +1,93 @@
---
name: research-report
user-invocable: true
description: 将deep调研结果汇总为markdown报告,覆盖所有字段,跳过不确定值。
allowed-tools: Read, Write, Glob, Bash, AskUserQuestion
---
# Research Report - 汇总报告
## 触发方式
`/research-report`
## 执行流程
### Step 1: 定位结果目录
在当前工作目录查找 `*/outline.yaml`,读取topic和output_dir配置。
### Step 2: 扫描可选摘要字段
读取所有JSON结果,提取适合在目录中显示的字段(数值型、简短指标),例如:
- github_stars
- google_scholar_cites
- swe_bench_score
- user_scale
- valuation
- release_date
使用AskUserQuestion询问用户:
- 目录中除了item名称外,还需要显示哪些字段?
- 提供动态选项列表(基于实际JSON中存在的字段)
### Step 3: 生成Python转换脚本
在 `{topic}/` 目录下生成 `generate_report.py`,脚本要求:
- 读取output_dir下所有JSON
- 读取fields.yaml获取字段结构
- 覆盖每个JSON的所有字段值
- 跳过值包含[不确定]的字段
- 跳过uncertain数组中列出的字段
- 生成markdown报告格式:目录(带锚点跳转+用户选择的摘要字段)+ 详细内容(按字段分类)
- 保存到 `{topic}/report.md`
**目录格式要求**:
- 必须包含每一个item
- 每个item显示:序号、名称(锚点链接)、用户选择的摘要字段
- 示例:`1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%`
#### 脚本技术要点(必须遵循)
**1. JSON结构兼容**
支持两种JSON结构:
- 扁平结构:字段直接在顶层 `{"name": "xxx", "release_date": "xxx"}`
- 嵌套结构:字段在category子dict中 `{"basic_info": {"name": "xxx"}, "technical_features": {...}}`
字段查找顺序:顶层 -> category映射key -> 遍历所有嵌套dict
**2. Category多语言映射**
fields.yaml的category名与JSON的key可能是任意组合(中中、中英、英中、英英)。必须建立双向映射:
```python
CATEGORY_MAPPING = {
"基本信息": ["basic_info", "基本信息"],
"技术特性": ["technical_features", "technical_characteristics", "技术特性"],
"性能指标": ["performance_metrics", "performance", "性能指标"],
"里程碑意义": ["milestone_significance", "milestones", "里程碑意义"],
"商业信息": ["business_info", "commercial_info", "商业信息"],
"竞争与生态": ["competition_ecosystem", "competition", "竞争与生态"],
"历史沿革": ["history", "历史沿革"],
"市场定位": ["market_positioning", "market", "市场定位"],
}
```
**3. 复杂值格式化**
- list of dicts(如key_events, funding_history):每个dict格式化为一行,用` | `分隔kv
- 普通list:短列表用逗号连接,长列表换行显示
- 嵌套dict:递归格式化,用分号或换行显示
- 长文本字符串(超过100字符):添加换行符`<br>`或使用blockquote格式,提高可读性
**4. 额外字段收集**
收集JSON中有但fields.yaml中没定义的字段,放入"其他信息"分类。注意过滤:
- 内部字段:`_source_file`, `uncertain`
- 嵌套结构顶级key:`basic_info`, `technical_features`等
- `uncertain`数组:需要逐行显示每个字段名,不要压缩成一行
**5. 不确定值跳过**
跳过条件:
- 字段值包含`[不确定]`字符串
- 字段名在`uncertain`数组中
- 字段值为None或空字符串
### Step 4: 执行脚本
运行 `python {topic}/generate_report.py`
## 输出
- `{topic}/generate_report.py` - 转换脚本
- `{topic}/report.md` - 汇总报告

View File

@@ -0,0 +1,145 @@
---
name: research
user-invocable: true
allowed-tools: Read, Write, Glob, WebSearch, Task, AskUserQuestion
description: 对目标话题进行初步调研,生成调研outline。用于学术调研、benchmark调研、技术选型等场景。
---
# Research Skill - 初步调研
## 触发方式
`/research <topic>`
## 执行流程
### Step 1: 模型内部知识生成初步框架
基于topic,利用模型已有知识生成:
- 该领域的主要研究对象/items列表
- 建议的调研字段框架
输出{step1_output},使用AskUserQuestion确认:
- items列表是否需要增减?
- 字段框架是否满足需求?
### Step 2: Web Search补充
使用AskUserQuestion询问时间范围(如:最近6个月、2024年至今、不限)。
**参数获取**:
- `{topic}`: 用户输入的调研话题
- `{YYYY-MM-DD}`: 当前日期
- `{step1_output}`: Step 1生成的完整输出内容
- `{time_range}`: 用户指定的时间范围
**硬约束**:以下prompt必须严格复述,仅替换{xxx}中的变量,禁止改写结构或措辞。
启动1个web-search-agent(后台),**Prompt模板**:
```python
prompt = f"""## 任务
调研话题: {topic}
当前日期: {YYYY-MM-DD}
基于以下初步框架,补充最新items和推荐调研字段。
## 已有框架
{step1_output}
## 目标
1. 验证已有items是否遗漏重要对象
2. 根据遗漏对象进行补充items
3. 继续搜索{topic}相关且{time_range}内的items并补充
4. 补充新fields
## 输出要求
直接返回结构化结果(不写文件):
### 补充Items
- item_name: 简要说明(为什么应该加入)
...
### 推荐补充字段
- field_name: 字段描述(为什么需要这个维度)
...
### 信息来源
- [来源1](url1)
- [来源2](url2)
"""
```
**One-shot示例**(假设调研AI Coding发展史):
```
## 任务
调研话题: AI Coding 发展史
当前日期: 2025-12-30
基于以下初步框架,补充最新items和推荐调研字段。
## 已有框架
### Items列表
1. GitHub Copilot: Microsoft/GitHub开发,首个主流AI编程助手
2. Cursor: AI-first IDE,基于VSCode
...
### 字段框架
- 基本信息: name, release_date, company
- 技术特性: underlying_model, context_window
...
## 目标
1. 验证已有items是否遗漏重要对象
2. 根据遗漏对象进行补充items
3. 继续搜索AI Coding 发展史相关且2024年至今内的items并补充
4. 补充新fields
## 输出要求
直接返回结构化结果(不写文件):
### 补充Items
- item_name: 简要说明(为什么应该加入)
...
### 推荐补充字段
- field_name: 字段描述(为什么需要这个维度)
...
### 信息来源
- [来源1](url1)
- [来源2](url2)
```
### Step 3: 询问用户已有字段
使用AskUserQuestion询问用户是否有已定义的字段文件,如有则读取并合并。
### Step 4: 生成Outline(分离文件)
合并{step1_output}、{step2_output}和用户已有字段,生成两个文件:
**outline.yaml**(items + 配置):
- topic: 调研主题
- items: 调研对象列表
- execution:
- batch_size: 并行agent数量(需AskUserQuestion确认)
- items_per_agent: 每个agent调研项目数(需AskUserQuestion确认)
- output_dir: 结果输出目录(默认./results)
**fields.yaml**(字段定义):
- 字段分类和定义
- 每个字段的name、description、detail_level
- detail_level分层:极简 → 简要 → 详细
- uncertain: 不确定字段列表(保留字段,deep阶段自动填充)
### Step 5: 输出并确认
- 创建目录: `./{topic_slug}/`
- 保存: `outline.yaml` 和 `fields.yaml`
- 展示给用户确认
## 输出路径
```
{当前工作目录}/{topic_slug}/
├── outline.yaml # items列表 + execution配置
└── fields.yaml # 字段定义
```
## 后续命令
- `/research-add-items` - 补充items
- `/research-add-fields` - 补充字段
- `/research-deep` - 开始深度调研

View File

@@ -0,0 +1,197 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import sys
from collections import defaultdict
from pathlib import Path
import yaml
CATEGORY_MAPPING = {
"基本信息": ["basic_info", "基本信息"],
"技术特性": ["technical_features", "technical_characteristics", "技术特性"],
"性能指标": ["performance_metrics", "performance", "性能指标"],
"里程碑意义": ["milestone_significance", "milestones", "里程碑意义"],
"商业信息": ["business_info", "commercial_info", "商业信息"],
"竞争与生态": ["competition_ecosystem", "competition", "竞争与生态"],
"历史沿革": ["history", "历史沿革"],
"市场定位": ["market_positioning", "market", "市场定位"],
}
_SKIP_KEYS = {"_source_file", "uncertain"}
def load_fields_yaml(fields_path):
"""解析 fields.yaml,仅接受 research skill 实际生成的唯一 schema:
fields:
<category>:
- {name: ..., description: ..., detail_level: ...}
...
uncertain: []
只接受这一种格式。不符合的 fields.yaml 会直接报错退出,
而不是以零字段静默通过。
Required 语义(避免校验器空转通过/说谎):
- 若任一字段显式带 `required:` 键 -> 沿用 opt-in 语义
- 否则(detail_level 式、无标记)-> 全部字段视为必填,因为脚本的目的就是完整覆盖。
"""
with fields_path.open(encoding="utf-8") as f:
data = yaml.safe_load(f) or {}
defs = [] # (name, category, required_or_None)
fn = data.get("fields")
if not isinstance(fn, dict):
print(f"[错误] fields.yaml 必须使用 `fields: {{<category>: [{{name, ...}}]}}` 格式;当前为 {type(fn).__name__ if fn is not None else 'None'}。")
sys.exit(1)
for cname, flist in fn.items():
if cname in _SKIP_KEYS:
continue
if not isinstance(flist, list):
print(f"[错误] 分类 `{cname}` 必须映射为字段字典列表;当前为 {type(flist).__name__}。")
sys.exit(1)
for field in flist:
if isinstance(field, dict) and "name" in field:
defs.append((str(field["name"]), str(cname), field.get("required", None)))
else:
print(f"[错误] `{cname}` 下的字段必须是带 `name` 键的字典;当前为 {field!r}。")
sys.exit(1)
if not defs:
print("[错误] fields.yaml 解析到零个字段。请确保至少有一个分类及其字段字典。")
sys.exit(1)
all_fields = {n for n, _, _ in defs}
if any(r is not None for _, _, r in defs):
required_fields = {n for n, _, r in defs if r}
else:
required_fields = set(all_fields)
field_categories = {n: c for n, c, _ in defs}
return all_fields, required_fields, field_categories
def extract_json_fields(data, category_mapping=None):
category_mapping = CATEGORY_MAPPING if category_mapping is None else category_mapping
nested_keys = {k for keys in category_mapping.values() for k in keys}
fields = set()
stack = [(data, True)]
while stack:
obj, is_category_level = stack.pop()
if isinstance(obj, dict):
for k, v in obj.items():
if k in _SKIP_KEYS:
continue
if is_category_level and k in nested_keys:
if isinstance(v, dict):
stack.append((v, True))
continue
fields.add(k)
elif isinstance(obj, list):
stack.extend((item, is_category_level) for item in obj if isinstance(item, dict))
return fields
def validate_json(json_path, all_fields, required_fields, field_categories):
with json_path.open(encoding="utf-8") as f:
data = json.load(f)
json_fields = extract_json_fields(data)
covered = all_fields & json_fields
missing = all_fields - json_fields
extra = json_fields - all_fields
missing_required = missing & required_fields
missing_by_category = defaultdict(list)
for field in missing:
missing_by_category[field_categories.get(field, "未知")].append(field)
return {
"file": json_path.name,
"total_defined": len(all_fields),
"covered": len(covered),
"missing": len(missing),
"extra": len(extra),
"coverage_rate": len(covered) / len(all_fields) * 100 if all_fields else 100,
"missing_required": sorted(missing_required),
"missing_optional": sorted(missing - required_fields),
"missing_by_category": {k: sorted(v) for k, v in missing_by_category.items()},
"extra_fields": sorted(extra),
"valid": len(missing_required) == 0,
}
def print_result(result, verbose=True):
status = "通过" if result["valid"] else "失败"
line = "=" * 60
print(f"\n{line}")
print(f"[{status}] {result['file']}")
print(line)
print(f"覆盖率: {result['coverage_rate']:.1f}% ({result['covered']}/{result['total_defined']})")
if result["missing_required"]:
print(f"\n[错误] 缺少必填字段 ({len(result['missing_required'])}):")
print("\n".join(f" - {f}" for f in result["missing_required"]))
if verbose and result["missing_optional"]:
missing_required = set(result["missing_required"])
print(f"\n[警告] 缺少可选字段 ({len(result['missing_optional'])}):")
for cat in sorted(result["missing_by_category"]):
optional = [f for f in result["missing_by_category"][cat] if f not in missing_required]
if optional:
print(f" [{cat}]: {', '.join(optional)}")
if verbose and result["extra_fields"]:
extra = result["extra_fields"]
print(f"\n[信息] 额外字段 ({len(extra)}):")
print(f" {', '.join(extra[:10])}")
if len(extra) > 10:
print(f" ... 还有 {len(extra) - 10} 个")
def main():
import argparse
parser = argparse.ArgumentParser(description="验证JSON文件是否覆盖fields.yaml中定义的所有字段")
parser.add_argument("--fields", "-f", type=str, help="fields.yaml路径", default="fields.yaml")
parser.add_argument("--json", "-j", type=str, nargs="*", help="要验证的JSON文件路径")
parser.add_argument("--dir", "-d", type=str, help="包含JSON文件的目录", default="results")
parser.add_argument("--quiet", "-q", action="store_true", help="仅显示摘要")
args = parser.parse_args()
fields_path = Path(args.fields)
if not fields_path.exists():
for p in (Path.cwd() / "fields.yaml", Path.cwd().parent / "fields.yaml"):
if p.exists():
fields_path = p
break
if not fields_path.exists():
print(f"[错误] 找不到fields.yaml: {fields_path}")
sys.exit(1)
print(f"字段定义文件: {fields_path}")
all_fields, required_fields, field_categories = load_fields_yaml(fields_path)
print(f"总字段数: {len(all_fields)} (必填: {len(required_fields)}, 可选: {len(all_fields) - len(required_fields)})")
json_files = (
[Path(p) for p in args.json]
if args.json
else sorted(Path(args.dir).glob("*.json")) if Path(args.dir).exists() else []
)
if not json_files:
print("[警告] 未找到JSON文件")
sys.exit(0)
results = []
for json_path in json_files:
if not json_path.exists():
print(f"[警告] 文件不存在: {json_path}")
continue
result = validate_json(json_path, all_fields, required_fields, field_categories)
results.append(result)
print_result(result, verbose=not args.quiet)
line = "=" * 60
print(f"\n{line}")
print("汇总")
print(line)
passed = sum(1 for r in results if r["valid"])
avg_coverage = sum(r["coverage_rate"] for r in results) / len(results) if results else 0
print(f"验证通过: {passed}/{len(results)}")
print(f"平均覆盖率: {avg_coverage:.1f}%")
if passed < len(results):
sys.exit(1)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TMP_HOME="$(mktemp -d)"
trap 'rm -rf "$TMP_HOME"' EXIT
assert_contains() {
local path="$1"
local expected="$2"
if ! rg -F "$expected" "$path" >/dev/null 2>&1; then
echo "expected '$expected' in $path" >&2
exit 1
fi
}
HOME="$TMP_HOME" bash "$ROOT_DIR/scripts/install-codex.sh"
HOME="$TMP_HOME" bash "$ROOT_DIR/scripts/install-codex.sh"
if [[ ! -f "$TMP_HOME/.codex/config.toml" ]]; then
echo "expected config.toml to exist" >&2
exit 1
fi
if [[ -d "$TMP_HOME/.codex/skills" ]]; then
echo "did not expect skills directory to be created" >&2
exit 1
fi
if [[ -d "$TMP_HOME/.codex/agents" ]]; then
echo "did not expect agents directory to be created" >&2
exit 1
fi
assert_contains "$TMP_HOME/.codex/config.toml" "multi_agent = true"
assert_contains "$TMP_HOME/.codex/config.toml" "default_mode_request_user_input = true"
assert_contains "$TMP_HOME/.codex/config.toml" "suppress_unstable_features_warning = true"
assert_contains "$TMP_HOME/.codex/config.toml" "[agents.web_researcher]"
assert_contains "$TMP_HOME/.codex/config.toml" 'config_file = "agents/web-researcher.toml"'
if [[ "$(rg -c '^\[features\]$' "$TMP_HOME/.codex/config.toml")" != "1" ]]; then
echo "expected exactly one [features] section" >&2
exit 1
fi
if [[ "$(rg -c '^\[agents\.web_researcher\]$' "$TMP_HOME/.codex/config.toml")" != "1" ]]; then
echo "expected exactly one [agents.web_researcher] section" >&2
exit 1
fi
if awk '
/^\[features\]$/ { in_features=1; next }
/^\[/ { in_features=0 }
in_features && /suppress_unstable_features_warning/
' "$TMP_HOME/.codex/config.toml" | grep -q .; then
echo "did not expect suppress_unstable_features_warning inside [features]" >&2
exit 1
fi
echo "install-codex test passed"

View File

@@ -0,0 +1,95 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Regression test for skills/*/research/validate_json.py.
The validator accepts EXACTLY ONE schema — the one /research actually emits:
fields:
<category>:
- {name: ..., description: ..., detail_level: ...}
uncertain: []
Any other shape must be rejected (exit 1), never silently pass with zero fields.
With no explicit `required:` markers, every field is required so incomplete coverage
actually fails. With explicit markers, opt-in semantics are preserved.
Run: python tests/test_validate_json_schemas.py (exit 0 = all pass)
"""
import importlib.util
import json
import subprocess
import sys
import tempfile
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
COPIES = sorted(ROOT.glob("skills/*/research/validate_json.py"))
tmp = Path(tempfile.mkdtemp())
# The one accepted schema: fields:{<category>:[{name, detail_level}]} with NO `required` markers.
(tmp / "good_schema.yaml").write_text(
"fields:\n"
" basic:\n"
" - {name: a, detail_level: detailed}\n"
" - {name: b, detail_level: brief}\n"
" - {name: c, detail_level: moderate}\n"
" - {name: d, detail_level: moderate}\n"
"uncertain: []\n", encoding="utf-8")
# Same shape but with explicit required markers -> opt-in semantics.
(tmp / "marked_schema.yaml").write_text(
"fields:\n"
" basic:\n"
" - {name: a, required: true}\n"
" - {name: b, required: true}\n"
" - {name: notes, required: false}\n", encoding="utf-8")
# A rejected shape: the old `field_categories:` form.
(tmp / "bad_schema.yaml").write_text(
"field_categories:\n"
" - category: basic\n"
" fields:\n"
" - {name: a}\n", encoding="utf-8")
(tmp / "good.json").write_text(json.dumps({"a": 1, "b": 1, "c": 1, "d": 1}), encoding="utf-8")
(tmp / "bad.json").write_text(json.dumps({"a": 1, "b": 1, "c": 1}), encoding="utf-8") # missing 'd'
def load(path, i):
spec = importlib.util.spec_from_file_location(f"vj{i}", path)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
return mod
fails = []
def check(label, cond):
print(("PASS " if cond else "FAIL ") + label)
if not cond:
fails.append(label)
assert COPIES, "no validate_json.py copies found under skills/*/research/"
for i, path in enumerate(COPIES):
tag = path.relative_to(ROOT).parts[1] # e.g. research-en
m = load(path, i)
# 1. The one accepted schema parses all 4 fields; all required (no markers).
a, r, _ = m.load_fields_yaml(tmp / "good_schema.yaml")
check(f"[{tag}] good_schema parses 4 fields (was 0 before fix)", a == {"a", "b", "c", "d"})
check(f"[{tag}] all required when unmarked (no vacuous pass)", r == a)
# 2. Explicit markers preserve opt-in semantics.
am, rm, _ = m.load_fields_yaml(tmp / "marked_schema.yaml")
check(f"[{tag}] marked_schema: 3 fields, 'notes' optional", am == {"a", "b", "notes"} and rm == {"a", "b"})
# 3. A complete JSON passes; a JSON missing a field actually fails.
good = m.validate_json(tmp / "good.json", a, r, _)
bad = m.validate_json(tmp / "bad.json", a, r, _)
check(f"[{tag}] good.json -> valid", good["valid"])
check(f"[{tag}] bad.json -> INVALID (catches missing 'd')", (not bad["valid"]) and "d" in bad["missing_required"])
# 4. A rejected schema shape must make the CLI exit non-zero (run as subprocess).
proc = subprocess.run([sys.executable, str(path), "-f", str(tmp / "bad_schema.yaml"), "-d", str(tmp)],
capture_output=True, text=True)
check(f"[{tag}] bad_schema (field_categories) is REJECTED (exit != 0)", proc.returncode != 0)
print("\nRESULT:", "ALL PASS" if not fails else f"{len(fails)} FAILED -> {fails}")
sys.exit(1 if fails else 0)

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

View File

@@ -0,0 +1,39 @@
# 🩸 EXTERNAL CATALOG — RE/Malware/CTF skills & MCP (deep research 14.10.2026)
## ✅ ВЕНДОРЕНО в `vendor-new/` (лицензии совместимы, секрет-свип 0 хитов)
| Репо | ⭐ | Лицензия | SKILL.md | Что даёт |
|---|---|---|---|---|
| mukul975/Anthropic-Cybersecurity-Skills | 34420 | Apache-2.0 | ~820 | MITRE-mapped кибер-скиллы: malware, exploit-dev, IR, cloud, mobile |
| dslsdzc/rev-skills | 155 | Apache-2.0 | 143 | **закрывает пробелы**: firmware/embedded/protocol RE, unpacking, deobfuscation, managed code |
| meltedinhex/analyst-ai-pack | 22 | Apache-2.0 | 119 | malware analysis + threat hunting templates, mobile malware |
| rehan-remade/universal-modder | 7495 | MIT | 36 | game-RE/modding (examples/media срезаны, оставлены skills+knowledge+docs) |
| SimoneAvogadro/android-reverse-engineering-skill | 8137 | Apache-2.0 | 10 | Android RE end-to-end (jadx/apktool/frida/objection) |
| CreditTone/android-reverse-engineering-skill | 22 | Apache-2.0 | 7 | Codex-вариант Android RE (независимая реализация) |
| newliver666/apk-reverse | 4271 | MIT | 7 | APK reverse (dexlib, smali) |
| lwjjike/xbsReverseSkill | 162 | MIT | 33 | JS-реверс: xhs/bili/douyin/ctrip/qcc signature algorithms (CN-паки) |
| microsoft/win-dev-skills | 52 | MIT | 31 | официальный WinDbg/Windows debugging |
| gl0bal01/malware-analysis-claude-skills | 13 | MIT | 5 | malware analysis (CobaltStrike/Sliver implants) |
| cloudflare/security-audit-skill | 108 | MIT | 10 | security audit |
| FuzzingLabs/mcp-security-hub | 808 | MIT | — | 38 MCP-серверов/300+ тулов (Docker) |
| aoyunyang/spider-king-skill | 10 | MIT | 1 | spider/anti-bot |
| Fausto-404/js-reverse-automation--skill | 3 | — | 1 | JS reverse automation |
Итого вендорено: **+1143 SKILL.md**, ~82MB суммарно в репе.
## 🔗 ТОЛЬКО ССЫЛКИ (лицензия NOASSERTION/нет — не вендорим)
- morluto/rea — 221K⭐ Reverse Engineer Anything MCP (у нас есть курс: `our-skills/rea-full-course/`; ⭐-метрика подозрительна — проверить)
- nashsu/autocli-skill — CLI-реверс
- zhaoxuya520/reverse-skill — 37.9K⭐ upstream нашей базы (MIT, уже вендорен как reverse-skill-repo/)
- w0lf13/ghidra-mcp — Ghidra MCP (upstream ida_pro_mcp аналога)
- cyberkaida/ghidra-mcp-bridge — альтернативный Ghidra мост
- binarybabies/binary-analysis — бинарный анализ скилл
- fuzzsecurity/mcp-fuzzer — MCP фаззер
- securityfortech/claude-mcp-security — MCP security skills
## Пробелы без MCP (из crowdere/Awesome-RE-MCP)
UPX/DIE unpacking, Cuckoo/CAPE sandbox, AFL++ harness, binwalk — MCP-серверов нет, только CLI.
---
👻 [ииШко](https://t.me/AlStack)

View File

@@ -0,0 +1,83 @@
# ЧТО МЫ РЕСЁРЧИЛИ — реверс-инжиниринг (полный свод, 2026-09-26 → 28)
Восстановлено из памяти (Mnemopi) + файлов. Всё что мы делали по реверсу за эти дни.
---
## Хронология ресёрча
### 2026-09-26 (вечер) — Босс попросил переделать пост [REDACTED]
1. **Deep research «РЕВЕРС-ИНЖИНИРИНГ: ПОЛНЫЙ СТЕК 2026»** — софт + AI-агенты + курсы + разбор кейса взлома IDA Pro 9.3. Источники сверены, ссылки живые.
2. **Спарсили GitHub через API**: 5 поисковых запросов + каталог awesome-ai-reverse целиком + точечные проверки — ~60 позиций с живыми звёздами. Главные находки, которых не было у [REDACTED]: reverse-skill 37.9к★, Anthropic-Cybersecurity-Skills 33.4к★ (817 скиллов), SkillSpector (NVIDIA) 18.4к★, GhidraMCP 10.2к★, Trail of Bits skills 7.2к★, ctf-skills 3.3к★, официальный radare2-mcp, x64dbg-mcp, Cheat Engine MCP, REMnux MCP, auto-re-agent, reverify.
3. **Гайд вырос 3 → 4 сообщения** (лимит TG 4096).
### 2026-09-26 (ночь) — Прожарка: аудит + спор с тремя критиками
Прогнали 3 волны критиков (FactsCritic / StyleCritic / TechCritic), каждый вердикт перепроверен, спор тезис→контраргумент→вердикт. 78 репо через GitHub API + 20 внешних ссылок + ~30 чисел из README. Итог: **VERIFIED WITH CAVEATS**, v4 → v4.1.
#### Факт-фиксы (цифры [REDACTED] врут)
| Где | Было у [REDACTED] | Стало (сверено) |
|---|---|---|
| binary-ninja-headless-mcp | 180 тулов | **181 тул** |
| firefox-reverse | 855 звёзд | **857** |
| shannon | 47к звёзд | **48к** |
| Anthropic-Cybersecurity-Skills | 29 доменов | **34** |
| open-reverselab | «194 статьи» | **180+** |
| PMAT | PMAT-course (404) | **PMAT-labs** (1160★, жив) |
| Книга Нарвахи | «Реверсинг с IDA Pro от 0» | **«Введение в реверсинг с нуля, используя IDA PRO»** (перевода не хватает части 66.2) |
#### Смысловые вранья
- **Qiling «без запуска»** → «без запуска на живой системе» (Qiling код исполняет — в эмуляторе)
- **OGhidra** «сэмплы не уходят в облако» → поддерживает и облачные API; приватность только в локальном режиме
- **de4py** — CC BY-NC (некоммерческая), **disrobe** — платно для компаний. Интро «всё бесплатное» — ложь
- **Промпт-инъекция** «малварь учится разговаривать» → «встраивает команды в строки» (arXiv:2605.30667)
- «~20 новых 0-day» — тавтология
#### Спор с критиками (выжившие вердикты)
1. TechCritic [BLOCKER]: «утёк keygen с приватным ключом — не подтверждается» → **принят**, секция про лицензию IDA переписана: утечка беты 9.2 + генераторы под пропатченные бинари; keygen с приватным ключом публично не подтверждён. Рецепт не включён
2. StyleCritic: «Ты направляешь и валидируешь» — разговорщина → «Роль человека — направлять и валидировать»
3. FactsCritic [BLOCKER]: PMAT-course 404 → замена на PMAT-labs
4. FactsCritic: shannon 47к→48к, firefox-reverse 855→857 (точные числа из API — дисциплина канала)
5. TechCritic: «Всё бесплатное» → пометки лицензий + «лицензионные исключения помечены»
6. TechCritic: OGhidra → «LLM через Ollama или облачные API; в локальном режиме сэмплы не уходят в облако»
**Отклонено:** «виртуалка» (стандартный термин RU-реверс-среды), «↔» (типографика, не эмодзи).
**Чистым прошло:** ida-pro-mcp 12,351★, GhidraMCP 10,187★, SkillSpector 18,361★, reverse-skill 37,917★, FIRERPA 8,473★, Big Sleep ~20 0-day за 2025, CrackMeBench, ida-mcp MIT/IDA 9.4+, binwalk Rust, bethington 253 тула, Arkana 308.
#### Верификация финального v4
- 4 сообщения: 3861 / 3682 / 3882 / 1939 симв. (лимит 4096, запас от 214)
- **102/102 ссылки живые** (beginners.re 403 ботам — сайтом жив, проверено через Tavily)
### 2026-09-26/27 — свои скиллы
- **`re-roast-2026`** (managed-skills, авто-загрузка) — воркфлоу прожарки: триаж ссылок → цифры → названия → лицензии → гиперболы → точность → атрибуция → разбивка 4096 → раздел про лицензию IDA. + `scripts/linkcheck.py` — многопоточный свип живости (24 воркера, HEAD→GET, 403/405=BOTWALL). Smoke-тест: 200 ✓, 404 ✓, 403 BOTWALL ✓
- **`reverse-skill`** (ApiOid, security-skills) — роутер 47 модулей + CTF-оркестратор (42) + `omp-pe-triage.py` (PE-триаж pefile+capstone, чистый Python)
- Память: 6 фактов записано в Mnemopi
### 2026-09-26..28 — реальные кейсы реверса
- **TelegramExpert.exe** — EV-signed (Sectigo, «Slims Software») WiX/burn SFX-bootstrapper, 43 МБ, 6 секций без паковки, SFX×16/WiX×7, admin-проба через OpenProcessToken
- **WaveADS**, **hahacc CTF** — триаж-отчёты
- **DarkTelegram** — реверс + отчёт 466 строк
- **DeskGram**, **loliland** — реверс-проекты
- **Форумные свипы** по реверсу (forum-reversing_2026-09-19..28)
---
## Ключевые выводы ресёрча (суть)
1. **Пайплайн разбора сэмпла**: триаж (DIE+FLOSS+capa) → распаковка (x64dbg/Scylla, de4dot/dnSpyEx, Qiling) → статика (Ghidra/IDA) → динамика (Frida) → деобфускация (D-810/Unicorn/angr) → поведение (FakeNet-NG/CAPEv2/Speakeasy) → диффинг (BinDiff/Diaphora) → выход (YARA/IOC)
2. **Реверс через ИИ**: агент подключается к дизассемблеру через MCP и сам декомпилирует/ходит по xrefs/переименовывает/ставит бряки. Роль человека — направлять и валидировать
3. **Лицензия IDA**: .hexlic = офлайн JSON+подпись, ключ зашит в бинарь; keygen с приватным ключом публично не подтверждён; пропатченные сборки = вектор малвари; легально — IDA Free, Ghidra, академлицензия через вуз
4. **Ограничения ИИ-реверса**: агент уверенно ошибается в именах функций (крипто/C2/авторизация — руками); упакованный сэмпл = слабый псевдод; строки в бинарнике = промпт-инъекция против RE-агента
5. **Big Sleep** (Project Zero + DeepMind) — 0-day в SQLite до релиза, который фаззинг не поймал за 150 CPU-часов
## Файлы этого ресёрча
| Файл | Что |
|---|---|
| `rev_guide/p1..p4.md` | Гайд, 4 сообщения (до прожарки) |
| `rev-guide-v4.md` | **Финал v4.1 после прожарки** (26 правок, 102/102 ссылки) |
| `rev-guide-v4-subpost.md` | Под-пост-компаньон (1363 симв.) |
| `00-source-iishko-original.md` | Исходный пост [REDACTED] (для диффа) |
| `darktelegram_reverse_report.md` | Кейс DarkTelegram |
| `gh-reverse-catalog.json` | Каталог GitHub reverse-ресурсов |

View File

@@ -0,0 +1,661 @@
"""
DarkTelegram.pro — полный реверс
SaaS-облачный комбайн для автоматизации Telegram.
Python/FastAPI backend, React SPA фронт, Cloudflare Turnstile, облачное 24/7 исполнение.
Auth: email+password, Google OAuth, Telegram OAuth
Тарифы: Start $49/20 акк, Pro $70/100 акк, Ultra $130/1000 акк
Модули à la carte: $15-50/мес
"""
from dataclasses import dataclass, field
from typing import Optional
from enum import StrEnum
# === API ENDPOINTS (извлечены из App-DL7CzC9q.js, 663KB) ===
API_BASE = "https://darktelegram.pro/api"
ENDPOINTS = {
# Auth
"login": "POST /api/auth/login",
"register": "POST /api/auth/register",
"register_verify": "POST /api/auth/register/verify",
"register_resend": "POST /api/auth/register/resend",
"refresh": "POST /api/auth/refresh",
"forgot_password": "POST /api/auth/forgot-password",
"reset_password": "POST /api/auth/reset-password",
"google_oauth": "GET /api/auth/google",
"telegram_oauth_init": "POST /api/auth/telegram/init",
"auth_config": "GET /api/auth/config",
"me": "GET /api/auth/me",
# Аккаунты
"accounts_add": "POST /api/accounts/add",
"accounts_add_tdata": "POST /api/accounts/add-tdata",
"accounts_summary": "GET /api/accounts/summary",
"accounts_trust": "GET /api/accounts/trust",
"accounts_batch_task": "POST /api/accounts/batch-task",
"accounts_batch_purpose": "POST /api/accounts/batch-purpose",
"accounts_batch_move": "POST /api/accounts/batch-move-folder",
"accounts_bulk_edit": "POST /api/accounts/bulk-edit",
"accounts_bulk_delete": "POST /api/accounts/bulk-delete",
"accounts_bulk_assign_proxy":"POST /api/accounts/bulk-assign-proxy",
"accounts_bulk_force_reset":"POST /api/accounts/bulk-force-reset",
"accounts_confirm": "POST /api/accounts/confirm/:id",
"accounts_counts": "GET /api/accounts/counts/sparkline",
# phone-auth flow
"phone_send_code": "POST /api/accounts/phone-auth/send-code",
"phone_resend_code": "POST /api/accounts/phone-auth/resend-code",
"phone_sign_in": "POST /api/accounts/phone-auth/sign-in",
"phone_submit_captcha": "POST /api/accounts/phone-auth/submit-captcha",
# Прокси
"proxies": "GET /api/proxies",
"proxies_by_country": "GET /api/proxies/by-country",
"proxies_batch_check": "POST /api/proxies/batch-check",
"proxies_batch_folder": "POST /api/proxies/batch-folder",
"proxy_folders": "GET /api/proxy-folders",
"proxy_health": "GET /api/proxy-health",
# Магазин прокси
"proxy_shop_buy": "POST /api/proxy-shop/buy",
"proxy_shop_prolong": "POST /api/proxy-shop/prolong-local",
"proxy_shop_prolong_price": "GET /api/proxy-shop/prolong-price",
"proxy_shop_price": "GET /api/proxy-shop/price",
"proxy_shop_balance": "GET /api/proxy-shop/balance",
"proxy_shop_countries": "GET /api/proxy-shop/countries",
"proxy_shop_count": "GET /api/proxy-shop/count",
"proxy_shop_disclaimer": "GET /api/proxy-shop/disclaimer",
# Подписка / биллинг
"subscribe_active": "GET /api/subscribe/active",
"subscribe_start": "POST /api/subscribe/start",
"subscribe_status": "GET /api/subscribe/status/:id",
"subscribe_cancel": "POST /api/subscribe/cancel/:id",
# AI / Задачи
"ai_submit": "POST /api/ai/:task_type",
"auto_warmup": "POST /api/auto-warmup/:id",
"task_history": "GET /api/task-history/accounts/:id",
# AI пресеты
"ai_presets_prompts": "GET /api/ai-presets/prompts",
"ai_presets_photos": "GET /api/ai-presets/photos",
# Каналы
"channel_create_copy": "POST /api/channel-create/copy-post",
"channel_create_acc": "GET /api/channel-create/account/:id",
"channel_templates": "GET /api/channel-create/templates",
"channel_views_check": "POST /api/channel-views/check-unchecked",
# Истории
"story_repost_preview": "GET /api/story-repost/preview",
"story_repost_viewers": "GET /api/story-repost/viewers",
# Профили / посты
"profile_presets_list": "GET /api/profile-presets/list",
"profile_presets_random":"GET /api/profile-presets/random",
"profile_templates": "GET /api/profile-templates",
"profile_templates_bios":"GET /api/profile-templates/bios",
"profile_templates_names":"GET /api/profile-templates/names",
"profile_photos_upload": "POST /api/profile-templates/photos/upload",
"profile_photos_b64": "GET /api/profile-templates/photos/b64",
"post_templates": "GET /api/post-templates",
# Сессионный дубликатор
"session_duplicate": "POST /api/session-duplicator/:id",
"session_download": "GET /api/session-duplicator/download/:id",
"session_sessions": "GET /api/session-duplicator/sessions/:id",
"session_switch": "POST /api/session-duplicator/switch/:id",
# Остальное
"workspaces": "GET /api/workspaces",
"workspaces_active": "POST /api/workspaces/active",
"workspaces_move": "POST /api/workspaces/move",
"account_folders": "GET /api/account-folders",
"all_status": "GET /api/all-status",
"currency_rate": "GET /api/currency/rate",
"links_channels": "GET /api/links/channels",
"notifications": "GET /api/notifications",
"notifications_read": "POST /api/notifications/read-all",
"emoji_file": "GET /api/emoji/file/:id",
"team_context": "GET /api/team/context",
}
# === ТАРИФЫ ===
class Tariff(StrEnum):
START = "start" # $49/мес, 20 акков
PRO = "pro" # $70/мес, 100 акков
ULTRA = "ultra" # $130/мес, 1000 акков
TARIFFS = {
"start": {"price": 49, "accounts": 20, "ai_tokens": 0},
"pro": {"price": 70, "accounts": 100, "ai_tokens": 75}, # +$7.5
"ultra": {"price": 130, "accounts": 1000, "ai_tokens": 200}, # +$20
}
MODULES = {
"neuro_commenting": {"price": 30, "tariff": None},
"parser": {"price": 20, "tariff": None},
"neuro_dialogs": {"price": 30, "tariff": "pro"},
"ai_salesman": {"price": 50, "tariff": "pro"},
"mass_reactions": {"price": 18, "tariff": None},
"mass_looking": {"price": 23, "tariff": None},
"grabber": {"price": 25, "tariff": None},
"story_mentions": {"price": 40, "tariff": "ultra"},
"inviter": {"price": 25, "tariff": "pro"},
"ai_broadcast_chats": {"price": 20, "tariff": "start"},
"ai_broadcast_dm": {"price": 20, "tariff": "pro"},
"ai_autoresponder": {"price": 30, "tariff": "pro"},
"telegram_web": {"price": 20, "tariff": "start"},
"own_api_keys": {"price": 15, "tariff": None},
}
# === ФУНКЦИИ (реконструированы из JS-бандлов и лендинга) ===
@dataclass
class Account:
"""Модель аккаунта в системе"""
id: int
phone: str = ""
username: str = ""
status: str = "active" # active | spamblock | banned | frozen
trust_score: int = 0
proxy_id: Optional[int] = None
folder_id: Optional[int] = None
purpose: str = "" # mailing | commenting | warming | etc
last_warmup: Optional[str] = None
session_file: Optional[str] = None # .session path
tdata_path: Optional[str] = None # tdata path
@dataclass
class ProxyConfig:
"""Прокси для аккаунта"""
id: int
type: str = "socks5" # socks5 | http
host: str = ""
port: int = 1080
username: str = ""
password: str = ""
country: str = ""
ip_version: str = "ipv4"
# --- Аккаунты ---
def account_add_session(session_file: str, proxy_id: Optional[int] = None) -> Account:
"""Добавить аккаунт из .session файла"""
# POST /api/accounts/add multipart: file=session_file, proxy_id=proxy_id
...
def account_add_tdata(tdata_zip: str) -> Account:
"""Добавить аккаунт из tdata.zip"""
# POST /api/accounts/add-tdata multipart: file=tdata_zip
...
def account_phone_auth(phone: str, proxy_id: Optional[int] = None) -> dict:
"""
Авторизация по номеру телефона (3-шаговый flow):
1. POST /api/accounts/phone-auth/send-code {phone, proxy_id} → phone_code_hash
2. POST /api/accounts/phone-auth/sign-in {phone, phone_code_hash, code}
3. Если капча: POST /api/accounts/phone-auth/submit-captcha {password}
"""
...
def account_confirm(account_id: int) -> bool:
"""Подтвердить аккаунт (после добавления)"""
# POST /api/accounts/confirm/:id
...
def account_bulk_edit(account_ids: list[int], fields: dict) -> bool:
"""Массовое редактирование полей аккаунтов"""
# POST /api/accounts/bulk-edit {ids, ...fields}
...
def account_bulk_assign_proxy(account_ids: list[int], proxy_id: int) -> bool:
"""Привязать прокси к группе аккаунтов"""
# POST /api/accounts/bulk-assign-proxy
...
def account_batch_purpose(account_ids: list[int], purpose: str) -> bool:
"""Назначить purpose аккаунтам (mailing/commenting/etc)"""
# POST /api/accounts/batch-purpose
...
def account_get_trust(account_id: int) -> dict:
"""Trust Score аккаунта (0-100)"""
# GET /api/accounts/trust
...
def account_get_summary() -> dict:
"""Сводка по аккаунтам: общее кол-во, по статусам"""
# GET /api/accounts/summary
...
def account_get_counts_sparkline() -> list:
"""График изменения количества аккаунтов"""
# GET /api/accounts/counts/sparkline
...
# --- Прокси ---
def proxy_list() -> list[ProxyConfig]:
"""Список своих прокси"""
# GET /api/proxies
...
def proxy_add(host: str, port: int, type_: str = "socks5",
username: str = "", password: str = "") -> ProxyConfig:
"""Добавить прокси"""
# POST /api/proxies
...
def proxy_batch_check(proxy_ids: list[int]) -> dict:
"""Массовая проверка прокси"""
# POST /api/proxies/batch-check
...
def proxy_health() -> dict:
"""Статус прокси-пула"""
# GET /api/proxy-health
...
def proxy_shop_buy(country: str, count: int, period_days: int = 30) -> list[ProxyConfig]:
"""Купить прокси из встроенного магазина"""
# POST /api/proxy-shop/buy
...
def proxy_shop_countries() -> list[str]:
"""Доступные страны для покупки прокси"""
# GET /api/proxy-shop/countries
...
# --- AI Tasks (единый механизм для всех модулей) ---
@dataclass
class AITask:
"""AI задача: рассылка, комментинг, диалог, продажник, автоответ"""
task_type: str # broadcast_chats | broadcast_dm | neuro_commenting |
# neuro_dialogs | ai_salesman | ai_autoresponder
accounts: list[int] # ID аккаунтов
targets: list[str] # @username / ссылки на чаты / номера
ai_preset_id: Optional[int] = None
custom_prompt: str = ""
delay_min: int = 30
delay_max: int = 120
daily_limit: int = 50
# для диалогов
max_messages: int = 5
# для продажника
qualification_criteria: dict = field(default_factory=dict)
notify_telegram: bool = True
def ai_submit_task(task: AITask) -> str:
"""Отправить AI задачу. Возвращает task_id"""
# POST /api/ai/:task_type body: {...}
...
def ai_get_task_status(task_id: str) -> dict:
"""Статус AI задачи"""
# GET /api/task-history/accounts/:task_id
...
def ai_get_presets(preset_type: str = "prompt") -> list[dict]:
"""Получить AI пресеты (промпты или фото)"""
# GET /api/ai-presets/prompts | /api/ai-presets/photos
...
# --- Автопрогрев ---
def auto_warmup_start(account_id: int, config: dict) -> bool:
"""
Запустить автопрогрев аккаунта:
- подписки на каналы
- чтение постов
- реакции
- просмотр историй
- поведенческие паттерны
"""
# POST /api/auto-warmup/:id
...
def auto_warmup_status(account_id: int) -> dict:
"""Статус прогрева: прогресс, trust_score, дата последнего"""
# GET /api/auto-warmup/:id
...
# --- Парсинг ---
@dataclass
class ParseTask:
source_type: str # channel | chat | audience | tgstat
source: str # @username или ссылка
parse_type: str = "members" # members | active | admins
filters: dict = field(default_factory=dict) # country, premium, etc
output_format: str = "csv"
def parse_start(task: ParseTask) -> str:
"""Запустить парсинг. Возвращает task_id"""
# POST /api/ai/parse body: {...}
...
def parse_report(task_id: str) -> list[dict]:
"""Результаты парсинга"""
# GET /api/task-history/accounts/:task_id
...
# --- Нейрокомментинг ---
def neuro_commenting_start(accounts: list[int], channels: list[str],
ai_preset_id: int, delay: tuple[int, int] = (30, 120)) -> str:
"""
ИИ-комментирование:
- Анализирует пост в канале
- Генерирует релевантный комментарий от лица аккаунта
- Постит с задержкой
"""
# POST /api/ai/neuro_commenting
...
# --- Нейродиалоги ---
def neuro_dialogs_start(accounts: list[int], targets: list[str],
ai_preset_id: int, scenario: str = "promote",
max_dialog_msgs: int = 5) -> str:
"""
ИИ находит чаты и рассказывает о продукте в подходящий момент.
Или: заходит в ЛС, ведёт диалог по сценарию.
"""
# POST /api/ai/neuro_dialogs
...
# --- ИИ Продажник ---
def ai_salesman_start(accounts: list[int], targets: list[str],
criteria: dict, notify_telegram_id: str = "") -> str:
"""
3-фазный продажник:
1. Пишет первым каждому из базы
2. Квалифицирует: задаёт вопросы, сверяет с критериями
3. При совпадении — уведомление в Telegram с контактом и историей
"""
# POST /api/ai/ai_salesman
...
# --- ИИ Рассылка ---
def ai_broadcast_chats(accounts: list[int], chats: list[str],
ai_preset_id: int, mode: str = "basic") -> str:
"""
Рассылка по чатам.
mode: basic | multi_phase | postbot
"""
# POST /api/ai/broadcast_chats
...
def ai_broadcast_dm(accounts: list[int], targets: list[str],
ai_preset_id: int) -> str:
"""Рассылка в личные сообщения"""
# POST /api/ai/broadcast_dm
...
# --- Автоответчик ---
def ai_autoresponder_start(account_id: int, ai_preset_id: int,
scenario: str = "support") -> str:
"""ИИ автоответчик на входящие сообщения"""
# POST /api/ai/ai_autoresponder
...
# --- Накрутка ---
def nakrutka_reactions(accounts: list[int], post_link: str,
reaction_type: str = "👍", count: int = 100) -> str:
"""Массовые реакции на пост"""
# POST /api/ai/reactions (только Ultra)
...
def nakrutka_views(accounts: list[int], post_link: str, count: int = 1000) -> str:
"""Накрутка просмотров на пост"""
# POST /api/ai/views (только Ultra)
...
def mass_looking(accounts: list[int], targets: list[str]) -> str:
"""Массовый просмотр профилей (Mass Looking)"""
# POST /api/ai/mass_looking
...
# --- Отметки в сторис ---
def story_mentions(accounts: list[int], story_media: str,
targets: list[str]) -> str:
"""
Отметки пользователей в сторис.
Упомянутый получает уведомление → смотрит историю → переходит в канал.
"""
# POST /api/ai/story_mentions (только Ultra)
...
def story_repost_preview(story_link: str) -> dict:
"""Предпросмотр истории перед репостом"""
# GET /api/story-repost/preview
...
def story_repost_viewers(story_link: str) -> list[str]:
"""Список зрителей истории"""
# GET /api/story-repost/viewers
...
# --- Инвайтер ---
def inviter_start(accounts: list[int], invite_link: str, count: int = 100) -> str:
"""Массовое приглашение в канал/чат"""
# POST /api/ai/inviter
...
# --- Каналы ---
def channel_create_copy_post(source_channel: str, target_channel: str,
accounts: list[int]) -> str:
"""Копирование постов между каналами"""
# POST /api/channel-create/copy-post
...
def channel_get_templates() -> list[dict]:
"""Шаблоны для каналов"""
# GET /api/channel-create/templates
...
# --- Граббер ---
def grabber_start(source_channels: list[str], accounts: list[int]) -> str:
"""Сбор контента из каналов (текст, медиа, ссылки)"""
# POST /api/ai/grabber
...
# --- Сессионный дубликатор ---
def session_duplicate(account_id: int) -> str:
"""Клонировать сессию аккаунта (для параллельного использования)"""
# POST /api/session-duplicator/:id
...
def session_download(account_id: int) -> bytes:
"""Скачать .session файл"""
# GET /api/session-duplicator/download/:id
...
def session_switch(account_id: int, new_session_id: int) -> bool:
"""Переключить аккаунт на другую сессию"""
# POST /api/session-duplicator/switch/:id
...
# --- Профили ---
def profile_presets_list() -> list[dict]:
"""Список пресетов профилей (имя + био + фото)"""
# GET /api/profile-presets/list
...
def profile_random() -> dict:
"""Случайный пресет профиля"""
# GET /api/profile-presets/random
...
def profile_templates() -> list[dict]:
"""Шаблоны профилей"""
# GET /api/profile-templates
...
def profile_upload_photo(photo_file: str) -> str:
"""Загрузить фото для профиля"""
# POST /api/profile-templates/photos/upload
...
# --- Воркспейсы / Команда ---
def workspace_list() -> list[dict]:
"""Список воркспейсов"""
# GET /api/workspaces
...
def workspace_set_active(workspace_id: int) -> bool:
"""Сменить активный воркспейс"""
# POST /api/workspaces/active
...
def team_context() -> dict:
"""Контекст команды (права, роли)"""
# GET /api/team/context
...
# --- Биллинг ---
def subscribe_start(tariff: str, payment_method: str = "crypto") -> dict:
"""Оформить подписку. payment_method: crypto | card | sbp"""
# POST /api/subscribe/start
...
def subscribe_status() -> dict:
"""Статус подписки: active/inactive, тариф, дата окончания"""
# GET /api/subscribe/active
...
def currency_rate() -> dict:
"""Курс валют для крипто-оплаты"""
# GET /api/currency/rate
...
# === АНТИ-ДЕТЕКТ И ЗАЩИТА ===
ANTI_DETECT_LAYERS = {
"captcha_solver": "85% капч авто-решаются (боты проверки Telegram)",
"trust_score": "Рейтинг надёжности каждого аккаунта (0-100)",
"auto_limits": "Безопасные лимиты по умолчанию для всех действий",
"intervals": "Паузы между действиями с рандомизацией",
"proxy_per_account": "Отдельный резидентский прокси на каждый аккаунт",
"warmup_before_use": "Обязательный прогрев перед рассылкой/комментингом",
"spamblock_check": "Авто-проверка @SpamBot при подозрении на спамблок",
"session_isolation": "Изолированные сессии через встроенный Telegram Web",
"cloud_execution": "24/7 облачное исполнение, IP ротация на стороне сервера",
}
# === СРАВНЕНИЕ С DESKGRAM ===
COMPARISON = {
"architecture": {
"darktelegram": "SaaS Cloud (FastAPI + React SPA). Нет десктоп-клиента. 24/7 сервера.",
"deskgram": "Desktop (PE32+ C++ dropper → Python/Telethon workers). Локальный сервер 127.0.0.1:5000.",
},
"auth": {
"darktelegram": "email+password, Google OAuth, Telegram OAuth, Cloudflare Turnstile",
"deskgram": "activation_key (Prodamus), JWT refresh",
},
"accounts": {
"darktelegram": ".session + tdata import, встроенный LZT Market, phone auth flow",
"deskgram": ".session import, ручная авторизация через код",
},
"modules": {
"darktelegram": "~15 модулей (AI-центричные)",
"deskgram": "82 модуля (всё что можно автоматизировать)",
},
"ai": {
"darktelegram": "Своя AI-инфраструктура (OpenRouter?), пресеты промптов и фото",
"deskgram": "io.net, OpenRouter (14 моделей), Mistral API",
},
"unique": {
"darktelegram": "ИИ Продажник (3-фазный), Session Duplicator, Story Mentions, Telegram Web в дашборде",
"deskgram": "Инвайт по гео, Remove SpamBlock, 12 категорий модулей",
},
"pricing": {
"darktelegram": "$49-130/мес + модули à la carte + AI токены",
"deskgram": "16,990₽/год (~$15/мес) единый тариф",
},
}
# === УЯЗВИМОСТИ И ВЕКТОРЫ ===
VULNERABILITIES = {
"turnstile_bypass": {
"target": "/api/auth/register",
"vector": "Отсутствует серверная валидация Turnstile? Нужно проверить через реплей запроса без токена",
"status": "НЕ ПРОВЕРЕНО — нужен реплей без cf-turnstile-response",
},
"rate_limiting": {
"target": "/api/auth/login",
"vector": "Нет видимого rate-limit в ответах. 429 не тестировался",
"status": "НЕ ПРОВЕРЕНО",
},
"id_enumeration": {
"target": "/api/accounts/summary, /api/accounts/trust",
"vector": "ID аккаунтов последовательные? Можно перебирать чужие аккаунты",
"status": "НЕ ПРОВЕРЕНО — нужна сессия",
},
"ai_preset_injection": {
"target": "ai_presets",
"vector": "Можно ли инжектить промпт в AI задачу через кастомный preset?",
"status": "Требует анализа формата пресетов",
},
"session_leak": {
"target": "/api/session-duplicator/download/:id",
"vector": "Можно ли скачать чужую сессию при IDOR?",
"status": "КРИТИЧЕСКИЙ ВЕКТОР — нужна авторизованная сессия для теста",
},
}
if __name__ == "__main__":
print(f"DarkTelegram.pro reverse — {len(ENDPOINTS)} API endpoint'ов")
print(f"Модулей: {len(MODULES)}, Тарифов: {len(TARIFFS)}")
print(f"Векторов для проверки: {len(VULNERABILITIES)}")
print("\n=== УНИКАЛЬНЫЕ ФИЧИ ===")
for k, v in COMPARISON["unique"].items():
print(f" {k}: {v}")

View File

@@ -0,0 +1,466 @@
# DarkTelegram.pro — Reverse Engineering Report (Public Assets Only)
**Status:** All claims are extracted from publicly served JS bundles (`darktelegram.pro` over plain HTTPS).
**No auth, no credentials, no mutating requests.** Every endpoint name below is from minified frontend code, not from live API calls.
**Date:** 2026-09-15
**Rate limit:** ~20 GET requests total (landing page, main bundles, module chunks, CSS). No fuzzing, no crawling.
---
## 1. Code-Split Chunk Filenames → Product Module Mapping
Chunks are Vite code-split `.js` files served from `https://darktelegram.pro/assets/`. The main entry `index-CQKpAuC4.js` (663 KB) declares the full dependency graph via `__vite__mapDeps`. The dashboard shell is `App-DL7CzC9q.js`.
### Landing / Public Route Pages
| Chunk | Module / Page |
|---|---|
| `index-CQKpAuC4.js` | SPA entry, route definitions, core API helpers |
| `App-DL7CzC9q.js` | Dashboard shell, sidebar, account picker, folder UI, context providers, full dependency map of all 80+ dashboard tab chunks |
| `Landing-CXQemKrJ.js` | Landing page hero |
| `AuthPage-CiVnbMr6.js` | Login/Register forms, OAuth, Turnstile (auth-independent header/footer CSS) |
| `AuthPage-rwu218-r.js` | Auth page shared logic |
| `ResetPasswordPage-CUxx1NKP.js` | Password reset |
| `SeoLayout-DI8Ngi0U.js` | SEO layout wrapper |
| `SeoMeta-Df7W64jI.js` | Dynamic SEO meta injection |
| `pageMeta-C24qRuxo.js` | Per-page SEO metadata config |
| `PrivacyPage-BUTds85K.js` | Privacy policy |
| `TermsPage-CDKHvBhR.js` | Terms of service |
### Product/Marketing Landing Pages (Feature Docs)
| Chunk | Product Module |
|---|---|
| `TelegramManager--WBuvWjE.js` | Telegram Account Manager feature page |
| `AiBroadcast-CtQ819br.js` | AI Mailing feature page (3 modes) |
| `AiPromoter-OKyXD7VX.js` | AI Promoter / Нейродиалоги feature page |
| `BuyAccounts-BE-VUlUn.js` | Buy Telegram Accounts marketplace page |
| `Nakrutka-CmIdulPO.js` | SMM Panel / Накрутка (subscriptions, reactions, views) |
| `Arbitrage-D8HyljyM.js` | Traffic arbitrage page (dating/betting/crypto) |
| `AiAssistantsPage-BYjQpdtd.js` | AI Assistants page |
| `ParseReportPage-Tt5DVO47.js` | Parse report page |
| `BlogIndex-vXaavkcO.js` | Blog index |
| `BlogArticle-DkAe3e6J.js` | Blog article |
| `article-ChKm0xiJ.js` | Blog article (alternate) |
| `blog-refresh-CDwEFsgE.js` | Blog refresh component |
| `Converter-C77A1IiI.js` | tdata session converter |
| `TgStatParser-DtrLk5fl.js` | TgStat Chrome extension parser |
| `LztTrust-DT9wFtsT.js` | LZT Trust page |
| `JoinCabinetPage-ChqIw2TJ.js` | Join cabinet page |
| `kak-nachat-rabotu-v-darktelegram-D-RibygM.js` | How to start article |
### Dashboard Tab Components (authenticated code-split chunks)
Revealed from the sidebar route map in App-DL7CzC9q.js:
| Route | Chunk (when applicable) | Module |
|---|---|---|
| `/accounts` | — (in main shell) | Account management |
| `/proxies` | — (in main shell) | Proxy management |
| `/market` | MarketTab | LZT Marketplace |
| `/warmup` | WarmupTab | Account warmup |
| `/broadcast` | BroadcastTab | AI Broadcast (8 modes) |
| `/chat-broadcast` | ChatBroadcastTab | Chat broadcast (AI DM broadcast) |
| `/autoreply` | AutoReplyTab | AI auto-reply |
| `/promoter` | PromoterTab | AI Promoter / AI sales agent |
| `/massreaction` | MassReactionTab | Mass reactions |
| `/nakrutka` | NakrutkaTab | Nakrutka (SMM panel) |
| `/masslooking` | MassLookingTab | Mass story viewing |
| `/story-mentions` | StoryMentionsTab | Story mentions |
| `/neurocommenting` | NeuroCommentingTab | Neuro-commenting |
| `/neuroshilling` | NeuroshillingTab | Neuro-shilling |
| `/inviter` | InviterTab | Inviter |
| `/salesman` | SalesmanTab | AI Sales Agent |
| `/copier` | CopierTab | Copier |
| `/audience` | AudienceTab | Channel management |
| `/groups` | GroupsTab | Group management |
| `/audience-parse` | AudienceParseTab | Audience parser |
| `/audience-users` | AudienceUsersTab | Audience user list |
| `/channel-db` | ChannelDbTab | Channel database |
| `/darkfather` | DarkFatherTab | DarkFather module |
| `/session-duplicator` | SessionDuplicatorTab | Session duplicator |
| `/telegram-folders` | TelegramFoldersTab | Telegram folders |
| `/links` | LinksTab | Links module |
| `/integrations` | IntegrationsTab | Integrations (MCP/API) |
| `/runpod` | RunPodTab | RunPod integration |
| `/products` | ProductsTab | Products |
| `/templates` | — | Templates |
| `/profile` | ProfileTab | User profile |
| `/wallet` | WalletTab | Wallet/balance |
| `/subscription` | SubscriptionTab | Subscription management |
| `/feature-logs` | FeatureLogsTab | Feature change logs |
| `/tasks` | TasksTab | Active tasks |
| `/referral` | ReferralTab | Referral program |
| `/support` | SupportTab | Support |
---
## 2. Dashboard API Surface (Grouped by Module)
All endpoints inferred from fetch() calls in the public JS bundles. Relative to /api/. Returns { detail: ... } on errors.
### Auth
| Method | Path | Notes |
|---|---|---|
| POST | /api/auth/login | email + password login |
| POST | /api/auth/register | registration |
| POST | /api/auth/oauth/* | OAuth callbacks |
| POST | /api/auth/reset-password | password reset |
### Accounts
| Method | Path | Notes |
|---|---|---|
| GET | /api/accounts | list |
| POST | /api/accounts | import |
| GET | /api/accounts/:id/export | export .session |
| GET | /api/accounts/:id/export-tdata | export tdata |
| PATCH | /api/accounts/:id | update |
| DELETE | /api/accounts/:id | remove |
| GET | /api/account-folders | list folders |
| POST | /api/account-folders | create folder |
| PATCH | /api/account-folders/:id | rename folder |
| DELETE | /api/account-folders/:id | delete folder |
### Proxies
| Method | Path | Notes |
|---|---|---|
| GET | /api/proxy-folders | list proxy folders |
| POST | /api/proxy-folders | create folder |
| PATCH | /api/proxy-folders/:id | rename folder |
| DELETE | /api/proxy-folders/:id | delete folder |
### Broadcast (AI Mailing)
| Method | Path | Notes |
|---|---|---|
| GET | /api/broadcast/history?page=N | paginated history |
| GET | /api/broadcast/status | campaign status |
| POST | /api/broadcast/create | create campaign |
| POST | /api/broadcast/:id/start | start campaign |
| POST | /api/broadcast/:id/stop | stop campaign |
| POST | /api/broadcast/:id/retry | retry failed |
| GET | /api/broadcast/:id/stats | campaign stats (funnel) |
| GET | /api/broadcast/:id/recipients | per-recipient report |
| GET | /api/broadcast/stream/:id | SSE log stream |
| GET | /api/broadcast/audience-count | audience count query |
| GET | /api/broadcast/smart/active | active Smart broadcasts |
| POST | /api/broadcast/smart/:id/pause | pause smart broadcast |
| POST | /api/broadcast/smart/:id/stop | stop smart broadcast |
| POST | /api/broadcast/voice | upload voice file |
| DELETE | /api/broadcast/voice/:id | delete voice file |
| GET | /api/broadcast/voice/:id/file?token= | stream voice file |
### Audience / Parser
| Method | Path | Notes |
|---|---|---|
| GET | /api/audience-folders | audience folder list |
| GET | /api/groups-channel-folders | groups/channel folders |
| POST | /api/audience-parse/start | start parse task |
### AI Promoter / Нейродиалоги
| Method | Path | Notes |
|---|---|---|
| GET | /api/promoter/status | promoter status |
| GET | /api/promoter/sessions | list past sessions |
| POST | /api/promoter/start | start session |
| POST | /api/promoter/stop/:id | stop session |
| POST | /api/promoter/demo | demo: test message vs product |
| GET | /api/promoter/stream/:id | SSE log stream |
| GET | /api/promoter/monitor-targets | list monitorable chats |
| POST | /api/promoter/preview-scenarios | generate scenario preview |
### Profile / User
| Method | Path | Notes |
|---|---|---|
| GET | /api/profile/limits | user limits |
| GET | /api/profile/promoter-settings | promoter prompt templates |
| PUT | /api/profile/promoter-settings | update promoter prompts |
### Products
| Method | Path | Notes |
|---|---|---|
| GET | /api/products | list products with keywords |
---
## 3. AiPromoter (AI Sales Agent) Flow — Detailed
Based on PromoterTab-ClNavCxu.js (dashboard component) and AiPromoter-OKyXD7VX.js (marketing page).
### Data Model
**Product** (from GET /api/products):
```
{
id: number,
name: string,
keywords: string[],
description?: string,
link?: string
}
```
**Session Config** (POST /api/promoter/start):
```
{
product_id: number,
account_ids: number[],
target_chats: string[],
initial_history_count: number,
dm_followup?: {
enabled: boolean,
min_delay: number, // minutes
max_delay: number // minutes
},
hyperlink_enabled: boolean,
mode: "polling" | "realtime",
reaction_delay_min?: number, // seconds
reaction_delay_max?: number,
autoreply_prompt_id?: number | null,
solve_captcha: boolean // BETA
}
```
### 3-Phase Flow (confirmed from bundle)
**Phase 1 — First message to everyone:**
- AI writes to every contact in the base from the connected account
- Message is contextualized using product description + keywords
**Phase 2 — Qualification (criteria matching):**
- When someone responds, AI evaluates relevance via relevance_prompt:
- Variables: {keywords}, {description}, {message}
- Output: keywords_matched[], keywords_missed[], matched: boolean
- If matched, generates public reply via comment_prompt:
- Variables: {acc_name}, {acc_bio}, {product_name}, {product_link}, {hyperlink}, {description}, {message}
- If DM follow-up enabled, generates DM via dm_prompt:
- Variables: {acc_name}, {acc_bio}, {product_name}, {product_link}, {hyperlink}, {description}
**Phase 3 — Notification:**
- Sends Telegram notification via DarkTelegram bot to the user
- Includes: contact name, what they want, product interest, full dialog history
- Session log tracks: mentions (public), dm_replies (private), account_ids, product_name
### Demo Endpoint
POST /api/promoter/demo
Request: { message: string, product_id: number }
Response: { matched, reply, dm_message, reasoning, keywords_matched[], keywords_missed[] }
### Custom Prompts (saved via GET/PUT /api/profile/promoter-settings)
Three editable prompt templates:
- relevance_prompt: {keywords}, {description}, {message}
- comment_prompt: {acc_name}, {acc_bio}, {product_name}, {product_link}, {hyperlink}, {description}, {message}
- dm_prompt: {acc_name}, {acc_bio}, {product_name}, {product_link}, {hyperlink}, {description}
---
## 4. TelegramManager and AiBroadcast Endpoint Shapes
### AiBroadcast (from BroadcastTab-B9lQ9vJz.js)
Eight broadcast modes: single | threephase | postbot | smart | sticker | ttl | contacts | voice
POST /api/broadcast/create body:
```
{
name, account_ids[], broadcast_mode,
audience_folder_ids[], audience_min_messages, audience_has_username,
audience_search, audience_only_new,
messages_per_hour, schedule_hour_min, schedule_hour_max,
enable_ramp_up, enable_dialog_warmup, skip_read_contacted, send_greeting_sticker,
followup_enabled?, followup_delay_hours?, followup_text?, followup_entities?,
// mode-specific:
message_text?, message_entities?, ai_uniquify?,
warmup_duration_min?, warmup_duration_max?,
greeting_prompt?, link_mode?, link_url?, link_text?, link_prompt?, // threephase
reply_timeout_hours?, delay_after_reply_min?, delay_after_reply_max?, skip_autoreply?,
postbot_text?, // postbot
smart_mailing?, smart_daily_limit?, smart_min_interval_minutes?, // smart
contacts_include_dialogs?, contacts_quiet_mode?, // contacts
voice_id? // voice
}
```
Campaign stats (GET /api/broadcast/:id/stats):
```
{
funnel: { recipients, greetings_sent, replies, links_sent },
stats: { sent, replied, link_sent, failed, peer_flood_count,
peer_flood_accounts, by_status: { [status]: count } }
}
```
### TelegramManager
The marketing page only (not a dashboard tab). Routes to /accounts.
Capabilities: built-in marketplace, auto-proxy, 1-click warmup (95% survival), AI tools, audience parsing, real-time monitoring, session/tdata import, parallel execution.
---
## 5. Cloudflare Turnstile Wiring
- Loaded via script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" in HTML head
- Widget rendered into div.auth-turnstile (centered, min-height: 65px)
- Token submitted alongside email/password in auth form POST body
- Turnstile is NOT on API endpoints — only on auth pages
- Gated: exact form field name (cf-turnstile-response by convention, not confirmed without auth form JS logic)
---
## 6. Feature-Gap Table: DarkTelegram.pro vs T-Pilot
Legend: ✅ Present | ⚠️ Partial | ❌ Missing
### Core Infrastructure
| Capability | DT | T-Pilot |
|---|---|---|
| Multi-account management | ✅ | ✅ |
| Proxy management + auto-rotation | ✅ built-in pool | ⚠️ user-provided only |
| Account import (.session / tdata) | ✅ both | ⚠️ converter exists |
| 24/7 cloud execution | ✅ | ⚠️ local-first |
| Embedded Telegram Web | ✅ ($20) | ❌ |
| API/MCP integrations | ✅ | ⚠️ partial |
| Auto-captcha solving (~85%) | ✅ | ❌ |
### Account Management
| Capability | DT | T-Pilot |
|---|---|---|
| Marketplace (buy accounts) | ✅ | ❌ |
| Warmup | ✅ | ✅ |
| Trust Score | ✅ | ✅ |
| Session duplicator | ✅ | ✅ |
| Profile fill | ✅ | ✅ |
| Number checker | ✅ | ✅ |
| Chat creator | ✅ | ✅ |
| Dialog cleaner | ✅ | ✅ |
| Restrictions removal | ✅ | ✅ |
| AI Protection | ✅ | ✅ |
| Telegram folders sync | ✅ | ❌ |
| Cloner | ✅ | ✅ |
### Broadcasting
| Capability | DT | T-Pilot |
|---|---|---|
| Single message broadcast | ✅ | ⚠️ basic exists |
| Multi-phase (threephase) | ✅ | ❌ |
| PostBot broadcast | ✅ | ❌ |
| Smart broadcast | ✅ | ❌ |
| Sticker broadcast | ✅ | ❌ |
| TTL broadcast | ✅ | ❌ |
| Voice broadcast | ✅ | ❌ |
| Contacts broadcast | ✅ | ❌ |
| AI uniqueization | ✅ | ⚠️ AIPostGenerator |
| Audience filters | ✅ | ❌ |
| Campaign stats/funnel | ✅ | ❌ |
| Per-recipient report | ✅ | ❌ |
| SSE live logs | ✅ | ❌ |
### AI / Sales
| Capability | DT | T-Pilot |
|---|---|---|
| AI auto-reply | ✅ | ✅ |
| AI Promoter (Нейродиалоги) | ✅ ($50) | ❌ |
| AI Sales Agent (SalesmanTab) | ✅ | ❌ |
| Neuro-commenting | ✅ | ⚠️ basic |
| Neuro-shilling | ✅ | ❌ |
| AI Assistants | ✅ | ⚠️ partial |
| Lead qualification | ✅ | ❌ |
| Scenario preview | ✅ | ❌ |
| Products with keywords | ✅ | ❌ |
| ROI Predictor | ❌ | ✅ (TP differentiator) |
| Lead Catcher | ❌ | ✅ (TP differentiator) |
### Audience / Parsing
| Capability | DT | T-Pilot |
|---|---|---|
| Channel parser | ✅ | ✅ |
| Group parsing | ✅ | ⚠️ forum_scraper.py |
| Audience users list | ✅ | ❌ |
| Channel database | ✅ | ❌ |
| TGStat parser | ✅ | ❌ |
| Audience filters | ✅ | ❌ |
### Growth / Social
| Capability | DT | T-Pilot |
|---|---|---|
| Mass reactions | ✅ | ⚠️ basic |
| Mass story viewing | ✅ | ❌ |
| Story mentions | ✅ | ⚠️ StoryTags |
| Nakrutka (SMM panel) | ✅ | ❌ |
| Inviter | ✅ | ✅ |
| Mass subscribe/unsubscribe | ✅ | ✅ |
| Boost | ✅ | ✅ |
| Username checker | ✅ | ✅ |
| Text randomizer | ✅ | ✅ |
### Business / Monetization
| Capability | DT | T-Pilot |
|---|---|---|
| Products (for AI Promoter) | ✅ | ❌ |
| Templates | ✅ | ❌ |
| Referral program | ✅ | ❌ |
| Subscription tiers + modules | ✅ | ❌ (open) |
| Wallet / balance | ✅ | ❌ |
| One-click setup | ✅ | ❌ |
| Support ticket system | ✅ | ❌ |
| Feature change logs | ✅ | ❌ |
### T-Pilot Differentiators (not in DT)
| Capability | DT | T-Pilot |
|---|---|---|
| AI Post Generator | ❌ | ✅ |
| SEO Bot | ❌ | ✅ |
| Telegraph Poster | ❌ | ✅ |
| Email Sender | ❌ | ✅ |
| Traffic Generator | ❌ | ✅ |
| Forum Scraper | ❌ | ✅ |
| Blast Control | ❌ | ✅ |
| News Module | ❌ | ✅ |
---
## 7. Prioritised Recommendations for T-Pilot
Cheapest-highest-value first.
### Tier 1: Low Effort, High Value (1-2 days each)
1. Broadcast audience filters — Folders, min_messages, has_username. Reuse existing parser. ~1 day.
2. Campaign history + basic stats — Persist completed campaigns. T-Pilot tracks task state. ~1 day.
3. AI message uniqueization — Wrap existing AI to rewrite per recipient. ~1 day.
### Tier 2: Medium Effort, High Value (2-4 days)
4. AI Promoter (Нейродиалоги) — Closes DT largest gap. Reuse NeuroChat/NeuroComment. ~3 days.
5. Multi-phase (threephase) broadcast — State machine on broadcasting.py. ~2 days.
6. SMART broadcast — Rate limiter + daily cap. ~1 day.
### Tier 3: Higher Effort, Strategic (3-5 days)
7. Built-in account marketplace — Largest DT conversion driver. ~5 days.
8. Per-recipient campaign report — Chain viewer. ~2 days.
9. Auto-captcha solving — ML/heuristic for Telegram. ~3 days.
### Tier 4: Differentiators (4-7 days)
10. Nakrutka — Subscriptions + reactions + views with own farm. ~3 days.
11. Embedded Telegram Web — WebK/Telethon mini-client. ~5 days.
12. Traffic arbitrage funnel — Pre-configured vertical scenarios. ~4 days.
### Top 6 by Value
| # | Feature | DT price | TP effort | Impact |
|---|---|---|---|---|
| 1 | Broadcast audience filters | bundled | 1 day | Direct conversion |
| 2 | Campaign stats/funnel | bundled | 1 day | User retention |
| 3 | AI uniqueization | bundled | 1 day | Spam safety |
| 4 | AI Promoter | $50/mo | 3 days | Closes biggest gap |
| 5 | Multi-phase broadcast | $20/mo | 2 days | 3-5x conversion |
| 6 | SMART broadcast | $20/mo | 1 day | Stealth dispatch |
---
## Compliance Confirmation
- No authentication attempt — all data from public HTTP(S) fetches of .js bundles
- No mutating requests — GET only
- No credentials or session tokens used or transmitted
- No customer data scraped or enumerated
- Rate limit observed — ~20 requests total
- Gated resources noted as such
- Turnstile token field name is gated (not in extracted CSS-only auth chunk)

View File

@@ -0,0 +1,638 @@
"""
Deskgram 2 — реконструкция функций по параметрам из веб-превью.
Telethon-based. Все параметры взяты из интерфейса модулей.
"""
import asyncio, random, json, os, re, time, csv
from datetime import datetime, timedelta
from pathlib import Path
from telethon import TelegramClient, functions, types, errors
from telethon.tl.types import InputPeerUser, InputPeerChat, InputPeerChannel
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.functions.channels import InviteToChannelRequest, JoinChannelRequest
from telethon.tl.functions.account import UpdateProfileRequest, UpdateUsernameRequest
from telethon.tl.functions.photos import UploadProfilePhotoRequest
from telethon.sessions import StringSession
from dataclasses import dataclass, field
from typing import Optional
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Панель аккаунтов
# ═══════════════════════════════════════════════════════════════
async def account_check(client: TelegramClient):
"""Проверка аккаунта: статус, спамблок, премиум"""
me = await client.get_me()
try:
await client.send_message('SpamBot', '/start')
await asyncio.sleep(2)
msgs = await client.get_messages('SpamBot', limit=1)
spam_blocked = 'ограничен' in (msgs[0].message or '').lower()
except:
spam_blocked = None
return {
'id': me.id, 'username': me.username, 'phone': me.phone,
'premium': getattr(me, 'premium', False),
'spam_blocked': spam_blocked,
'last_seen': me.status.was_online if hasattr(me.status, 'was_online') else None
}
async def account_edit_profile(client: TelegramClient, *,
first_name=None, last_name=None, bio=None, username=None, photo_path=None):
"""Редактирование профиля аккаунта"""
if first_name or last_name:
await client(UpdateProfileRequest(
first_name=first_name, last_name=last_name, about=bio))
if username:
await client(UpdateUsernameRequest(username))
if photo_path:
await client(UploadProfilePhotoRequest(
await client.upload_file(photo_path)))
async def account_set_2fa(client: TelegramClient, password: str, hint: str = ''):
"""Установка 2FA"""
await client.edit_2fa(new_password=password, hint=hint)
async def account_get_sessions(client: TelegramClient):
"""Получить активные сессии"""
return await client(functions.account.GetAuthorizationsRequest())
async def account_terminate_sessions(client: TelegramClient):
"""Сбросить все сессии кроме текущей"""
await client(functions.auth.ResetAuthorizationsRequest())
async def account_privacy(client: TelegramClient, *,
hide_phone=True, hide_lastseen=True, hide_forwarded=True):
"""Настройки приватности"""
rules = []
if hide_phone:
rules.append(types.InputPrivacyValueDisallowAll())
if hide_lastseen:
pass # аналогично через account.setPrivacy
await client(functions.account.SetPrivacyRequest(
key=types.InputPrivacyKeyPhoneNumber(), rules=rules))
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Рассылка в ЛС
# ═══════════════════════════════════════════════════════════════
@dataclass
class SpamPMConfig:
threads: int = 3
msg_per_account: int = 50
delay_min: float = 30.0
delay_max: float = 90.0
silent: bool = False
ttl_seconds: Optional[int] = None
pin_message: bool = False
delete_sender: bool = False
block_after: bool = False
add_to_blacklist: bool = False
remove_links_preview: bool = False
rotate_on_flood: bool = True
check_spambot: bool = True
use_autoresponder: bool = False
collect_incoming: bool = False
thread_start_delay: tuple = (5, 30)
async def spam_pm(client: TelegramClient, users: list, message: str, cfg: SpamPMConfig):
"""Рассылка в ЛС с настройками из интерфейса"""
sent = 0
for user in users:
if sent >= cfg.msg_per_account:
break
try:
entity = await client.get_input_entity(user)
await client.send_message(
entity, message,
silent=cfg.silent,
background=None
)
sent += 1
if cfg.block_after:
await client(functions.contacts.BlockRequest(entity))
delay = random.uniform(cfg.delay_min, cfg.delay_max)
await asyncio.sleep(delay)
except errors.FloodWaitError as e:
if cfg.rotate_on_flood:
return False # сигнал сменить аккаунт
await asyncio.sleep(e.seconds)
except errors.PeerFloodError:
if cfg.check_spambot:
await client.send_message('SpamBot', '/start')
return False
except Exception:
continue
return True
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Нейрочаттинг
# ═══════════════════════════════════════════════════════════════
@dataclass
class NeuroChatConfig:
mode: str = 'keywords' # keywords | trigger | smart | promoter
chat_source: str = 'subscriptions' # subscriptions | list
chat_list: list = field(default_factory=list)
replies_per_account: int = 30
context_messages: int = 5
delay_before_reply: tuple = (5, 30)
pause_between_replies: tuple = (60, 300)
max_replies_per_chat: int = 10
chat_cooldown_min: int = 30
trigger_words: list = field(default_factory=list)
whole_word: bool = True
case_sensitive: bool = False
ignore_bots: bool = True
ignore_system: bool = True
min_message_length: int = 1
leave_if_cant_write: bool = False
auto_leave_spam: bool = False
respond_to_our_replies: bool = False
check_spambot_on_flood: bool = True
async def neurochatting(client: TelegramClient, ai_generate, cfg: NeuroChatConfig):
"""Нейрочаттинг: AI отвечает на сообщения в чатах"""
if cfg.chat_source == 'subscriptions':
dialogs = await client.get_dialogs()
chats = [d for d in dialogs if d.is_group]
else:
chats = cfg.chat_list
chat_stats = {}
for chat in chats:
if chat_stats.get(chat.id, 0) >= cfg.max_replies_per_chat:
continue
try:
messages = await client.get_messages(chat, limit=50)
except errors.ChatWriteForbiddenError:
if cfg.leave_if_cant_write:
await client.delete_dialog(chat)
continue
for msg in messages:
if not msg.message:
continue
if cfg.ignore_bots and msg.sender and getattr(msg.sender, 'bot', False):
continue
if cfg.ignore_system and getattr(msg, 'action', None):
continue
if len(msg.message or '') < cfg.min_message_length:
continue
# Проверка триггеров
should_reply = False
text = msg.message or ''
if cfg.mode == 'keywords':
for word in cfg.trigger_words:
if cfg.whole_word:
pattern = rf'\b{re.escape(word)}\b'
else:
pattern = re.escape(word)
flags = 0 if cfg.case_sensitive else re.IGNORECASE
if re.search(pattern, text, flags):
should_reply = True
break
elif cfg.mode == 'trigger':
should_reply = True # AI решает
elif cfg.mode == 'smart':
should_reply = True
elif cfg.mode == 'promoter':
should_reply = True
if should_reply:
# Контекст
context = await client.get_messages(
chat, limit=cfg.context_messages, offset_id=msg.id)
context_text = '\n'.join(
f"[{m.sender_id}]: {m.message}" for m in reversed(context) if m.message)
# AI генерация
reply = await ai_generate(context_text, msg.message)
delay = random.uniform(*cfg.delay_before_reply)
await asyncio.sleep(delay)
try:
await client.send_message(chat, reply, reply_to=msg.id)
chat_stats[chat.id] = chat_stats.get(chat.id, 0) + 1
except errors.PeerFloodError:
if cfg.check_spambot_on_flood:
await client.send_message('SpamBot', '/start')
return chat_stats
pause = random.uniform(*cfg.pause_between_replies)
await asyncio.sleep(pause)
return chat_stats
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Инвайтинг
# ═══════════════════════════════════════════════════════════════
async def invite_users(client: TelegramClient, chat, users: list,
per_account: int = 50, delay: tuple = (60, 180), rotate_on_flood: bool = True):
"""Массовый инвайт пользователей в канал/группу"""
invited = 0
for user in users:
if invited >= per_account:
break
try:
entity = await client.get_input_entity(user)
await client(InviteToChannelRequest(chat, [entity]))
invited += 1
await asyncio.sleep(random.uniform(*delay))
except errors.FloodWaitError as e:
if rotate_on_flood:
return invited
await asyncio.sleep(e.seconds)
except errors.UserPrivacyRestrictedError:
continue
except Exception:
continue
return invited
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Парсер аудитории
# ═══════════════════════════════════════════════════════════════
async def parse_chat_members(client: TelegramClient, chat,
limit: int = 50000, active_only: bool = False) -> list[dict]:
"""Сбор участников чата/канала"""
users = []
try:
async for member in client.iter_participants(chat, limit=limit):
if active_only and member.status:
if hasattr(member.status, 'was_online'):
if (datetime.now() - member.status.was_online).days > 30:
continue
users.append({
'id': member.id,
'username': member.username,
'first_name': member.first_name,
'last_name': member.last_name,
'phone': getattr(member, 'phone', None),
'premium': getattr(member, 'premium', False),
'bot': member.bot,
'was_online': str(getattr(member.status, 'was_online', None))
})
except errors.ChatAdminRequiredError:
pass
return users
async def parse_comments(client: TelegramClient, channel, post_limit: int = 100):
"""Парсер комментаторов постов"""
commenters = {}
messages = await client.get_messages(channel, limit=post_limit)
for msg in messages:
if msg.replies and msg.replies.replies > 0:
try:
async for comment in client.iter_messages(
channel, reply_to=msg.id, limit=100):
if comment.sender_id and comment.sender_id not in commenters:
commenters[comment.sender_id] = {
'user_id': comment.sender_id,
'post_id': msg.id,
'count': 1
}
elif comment.sender_id:
commenters[comment.sender_id]['count'] += 1
except:
continue
return sorted(commenters.values(), key=lambda x: x['count'], reverse=True)
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Нейрокомментинг
# ═══════════════════════════════════════════════════════════════
async def neuro_commenting(client: TelegramClient, channels: list,
ai_generate, posts_per_channel: int = 10,
delay: tuple = (30, 120), mode: str = 'firstnah'):
"""Автокомментирование новых постов с AI"""
results = []
for channel in channels:
try:
# Первонах (firstnah) — комментарий первым
messages = await client.get_messages(channel, limit=posts_per_channel)
for msg in messages:
if not msg.message:
continue
try:
existing = await client.get_messages(
channel, reply_to=msg.id, limit=5)
our_comments = [c for c in existing
if c.sender_id == (await client.get_me()).id]
if mode == 'firstnah' and our_comments:
continue # уже комментили
except:
pass
comment = await ai_generate(
f"POST: {msg.message[:500]}",
style='positive' # из настроек модуля
)
await asyncio.sleep(random.uniform(*delay))
await client.send_message(channel, comment, reply_to=msg.id)
results.append({'channel': channel, 'post_id': msg.id, 'comment': comment[:100]})
except Exception as e:
results.append({'channel': channel, 'error': str(e)})
return results
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Рассылка в группы
# ═══════════════════════════════════════════════════════════════
async def spam_groups(client: TelegramClient, chats: list, message: str,
ai_rewrite=False, ai_generate=None,
per_account: int = 20, delay: tuple = (60, 180)):
"""Рассылка в группы с AI-рерайтом"""
sent = 0
for chat in chats:
if sent >= per_account:
break
try:
text = message
if ai_rewrite and ai_generate:
text = await ai_generate(f"Rewrite this naturally: {message}")
await client.send_message(chat, text)
sent += 1
await asyncio.sleep(random.uniform(*delay))
except errors.FloodWaitError as e:
await asyncio.sleep(e.seconds)
except Exception:
continue
return sent
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Автоответчик с ветвлением
# ═══════════════════════════════════════════════════════════════
@dataclass
class AutoReplyRule:
trigger_words: list
response: str
whole_word: bool = True
case_sensitive: bool = False
collect_usernames: bool = False
async def auto_responder(client: TelegramClient, rules: list[AutoReplyRule],
collect_usernames: bool = False, blacklist: set = set()):
"""Автоответчик на входящие сообщения"""
collected = []
while True:
try:
dialogs = await client.get_dialogs()
for dialog in dialogs:
if dialog.unread_count > 0 and dialog.id not in blacklist:
msgs = await client.get_messages(dialog.id, limit=dialog.unread_count)
for msg in msgs:
if msg.out:
continue
if collect_usernames and msg.sender:
collected.append({
'user_id': msg.sender_id,
'username': getattr(msg.sender, 'username', None),
'message': msg.message[:200]
})
text = msg.message or ''
for rule in rules:
for word in rule.trigger_words:
if rule.whole_word:
pattern = rf'\b{re.escape(word)}\b'
else:
pattern = re.escape(word)
flags = 0 if rule.case_sensitive else re.IGNORECASE
if re.search(pattern, text, flags):
await client.send_message(dialog.id, rule.response)
break
else:
continue
break
except Exception:
pass
await asyncio.sleep(5)
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Массовые подписки + лайки + просмотры
# ═══════════════════════════════════════════════════════════════
async def mass_join(client: TelegramClient, channels: list,
per_account: int = 50, delay: tuple = (30, 90)):
"""Массовое вступление в каналы/группы"""
joined = 0
for ch in channels:
if joined >= per_account:
break
try:
await client(JoinChannelRequest(ch))
joined += 1
await asyncio.sleep(random.uniform(*delay))
except errors.FloodWaitError as e:
await asyncio.sleep(e.seconds)
except Exception:
continue
return joined
async def mass_react(client: TelegramClient, channel, post_ids: list,
reaction='👍', per_account: int = 100, delay: tuple = (5, 15)):
"""Массовые реакции на посты"""
for pid in post_ids[:per_account]:
try:
await client.send_reaction(channel, pid, reaction)
await asyncio.sleep(random.uniform(*delay))
except errors.FloodWaitError as e:
await asyncio.sleep(e.seconds)
except Exception:
continue
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Чекер юзернеймов
# ═══════════════════════════════════════════════════════════════
async def check_usernames(client: TelegramClient, usernames: list) -> dict:
"""Проверка доступности юзернеймов"""
results = {'free': [], 'taken': [], 'errors': []}
for username in usernames:
try:
entity = await client.get_entity(username)
results['taken'].append(username)
except errors.UsernameNotOccupiedError:
results['free'].append(username)
except Exception:
results['errors'].append(username)
await asyncio.sleep(0.5)
return results
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Масслукинг (просмотр Stories)
# ═══════════════════════════════════════════════════════════════
async def mass_story_view(client: TelegramClient, targets: list,
per_account: int = 200, delay: tuple = (3, 10)):
"""Массовый просмотр Telegram Stories"""
viewed = 0
for target in targets:
if viewed >= per_account:
break
try:
entity = await client.get_input_entity(target)
stories = await client(functions.stories.GetPeerStoriesRequest(
peer=entity))
if stories.stories:
await client(functions.stories.ReadStoriesRequest(
peer=entity,
max_id=max(s.id for s in stories.stories.stories)
))
viewed += 1
await asyncio.sleep(random.uniform(*delay))
except Exception:
continue
return viewed
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Прогрев аккаунтов
# ═══════════════════════════════════════════════════════════════
async def warmup_account(client: TelegramClient, days: int = 7,
daily_joins: int = 5, daily_messages: int = 3, daily_reactions: int = 10):
"""Прогрев аккаунта перед работой"""
for day in range(days):
for _ in range(random.randint(1, daily_joins)):
try:
dialogs = await client.get_dialogs()
groups = [d for d in dialogs if d.is_group]
if groups:
await client(JoinChannelRequest(random.choice(groups)))
except:
pass
await asyncio.sleep(random.uniform(300, 900))
for _ in range(random.randint(1, daily_messages)):
try:
await client.send_message('me', f'Warmup message {time.time()}')
except:
pass
await asyncio.sleep(random.uniform(600, 1800))
return True
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Постинг по каналам
# ═══════════════════════════════════════════════════════════════
async def channel_posting(client: TelegramClient, channels: list,
posts: list[dict], schedule: bool = False):
"""Публикация постов в каналы через бота-админа"""
for channel in channels:
for post in posts:
try:
entity = await client.get_entity(channel)
if post.get('photo'):
await client.send_file(entity, post['photo'],
caption=post.get('caption', ''))
else:
await client.send_message(entity, post.get('text', ''))
except Exception:
continue
await asyncio.sleep(random.uniform(10, 30))
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Снятие спамблока
# ═══════════════════════════════════════════════════════════════
async def remove_spamblock(client: TelegramClient) -> bool:
"""Снятие ограничений через SpamBot"""
try:
await client.send_message('SpamBot', '/start')
await asyncio.sleep(2)
msgs = await client.get_messages('SpamBot', limit=5)
for msg in msgs:
if msg.reply_markup and hasattr(msg.reply_markup, 'rows'):
for row in msg.reply_markup.rows:
for btn in row.buttons:
if 'ограничен' in (btn.text or '').lower() or \
'это я' in (btn.text or '').lower() or \
'продолжить' in (btn.text or '').lower():
await btn.click()
return True
except Exception:
pass
return False
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Диспетчер задач (оркестратор)
# ═══════════════════════════════════════════════════════════════
class TaskDispatcher:
"""Центральный диспетчер задач"""
def __init__(self):
self.tasks = {}
self.running = set()
self.results = {}
async def run_task(self, task_id: str, coro, accounts: list,
proxy_rotate=None):
"""Запуск задачи на пуле аккаунтов с ротацией"""
self.running.add(task_id)
results = []
for acc in accounts:
client = await self._get_client(acc, proxy_rotate)
try:
result = await coro(client)
results.append({'account': acc, 'result': result})
except Exception as e:
results.append({'account': acc, 'error': str(e)})
finally:
await client.disconnect()
self.running.discard(task_id)
self.results[task_id] = results
return results
async def _get_client(self, account, proxy):
"""Создать клиент с прокси"""
session = account.get('session')
api_id = account.get('api_id', 2040)
api_hash = account.get('api_hash', 'b18441a1ff607e10a989891a5462e627')
client = TelegramClient(
StringSession(session) if session else StringSession(),
api_id, api_hash,
proxy=proxy
)
await client.connect()
if not await client.is_user_authorized():
await client.start(phone=account['phone'])
return client
# ═══════════════════════════════════════════════════════════════
# МОДУЛЬ: Прокси-менеджер
# ═══════════════════════════════════════════════════════════════
async def proxy_check(proxy: dict) -> dict:
"""Проверка прокси перед назначением на аккаунт"""
import socket
try:
proto, host, port = proxy['type'], proxy['host'], proxy['port']
sock = socket.create_connection((host, port), timeout=5)
sock.close()
return {'proxy': proxy, 'alive': True, 'latency': None}
except Exception as e:
return {'proxy': proxy, 'alive': False, 'error': str(e)}
async def proxy_rotate(proxies: list, accounts: list) -> dict:
"""Назначение прокси на аккаунты (round-robin)"""
alive = [p for p in proxies if (await proxy_check(p))['alive']]
mapping = {}
for i, acc in enumerate(accounts):
mapping[acc['id']] = alive[i % len(alive)] if alive else None
return mapping

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,403 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![testednation](https://forum.tuts4you.com/uploads/monthly_2025_10/sunset.thumb.jpg.1191f083998af5ad81472d47975f9e97.jpg)
[secure boot disable](https://forum.tuts4you.com/topic/46213-secure-boot-disable/ "secure boot disable")
testednation,
[Thursday at 08:10 PM1 day](https://forum.tuts4you.com/topic/46213-secure-boot-disable/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Asif](https://forum.tuts4you.com/uploads/monthly_2026_05/dark-tree-in-the-middle-of-a-purple-lake-wallpaper.thumb.jpg.02ff4397975066b3a9bcae231c439e2e.jpg)
[JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach")
Asif,
[Tuesday at 05:03 PM3 days](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 472 posts
![Raven](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23a1c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TX-02 Berkeley Mono Fontface](https://forum.tuts4you.com/topic/45493-tx-02-berkeley-mono-fontface/ "TX-02 Berkeley Mono Fontface")
Raven,
[May 16May 16](https://forum.tuts4you.com/topic/45493-tx-02-berkeley-mono-fontface/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 985 posts
![redbull](https://forum.tuts4you.com/uploads/monthly_2026_07/83496-859380-cat-listening-to-music.thumb.jpg.a5006daa3b9c8a982bd875a41c8a6a82.jpg)
[Protecting my Golang exe](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Protecting my Golang exe")
redbull,
[July 10Jul 10](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[Monday at 11:17 PM4 days](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 258 posts
![ToughDev](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c46285%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ET%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
ToughDev,
[March 26Mar 26](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 454 posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
CodeExplorer,
[July 31Jul 31](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
CodeExplorer,
[June 20Jun 20](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.6k posts
![Say](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2382c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)")
Say,
[September 4Sep 4](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 151 posts
![Dax](https://forum.tuts4you.com/uploads/monthly_2026_06/1503603.thumb.jpeg.22c101f9cbdb6c3c040531dd4a26176b.jpeg)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Dax,
[June 23Jun 23](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,470** Total Members
- **7,713** Most Online
- [![Shadow09](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c462b3%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)](https://forum.tuts4you.com/profile/149859-shadow09/ "Go to Shadow09's profile")
**[Shadow09](https://forum.tuts4you.com/profile/149859-shadow09/ "Go to Shadow09's profile")** Newest Member · Wednesday at 07:53 PM2 days
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,403 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![testednation](https://forum.tuts4you.com/uploads/monthly_2025_10/sunset.thumb.jpg.1191f083998af5ad81472d47975f9e97.jpg)
[secure boot disable](https://forum.tuts4you.com/topic/46213-secure-boot-disable/ "secure boot disable")
testednation,
[Thursday at 08:10 PM1 day](https://forum.tuts4you.com/topic/46213-secure-boot-disable/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Asif](https://forum.tuts4you.com/uploads/monthly_2026_05/dark-tree-in-the-middle-of-a-purple-lake-wallpaper.thumb.jpg.02ff4397975066b3a9bcae231c439e2e.jpg)
[JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach")
Asif,
[Tuesday at 05:03 PM3 days](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 472 posts
![Raven](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23a1c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TX-02 Berkeley Mono Fontface](https://forum.tuts4you.com/topic/45493-tx-02-berkeley-mono-fontface/ "TX-02 Berkeley Mono Fontface")
Raven,
[May 16May 16](https://forum.tuts4you.com/topic/45493-tx-02-berkeley-mono-fontface/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 985 posts
![redbull](https://forum.tuts4you.com/uploads/monthly_2026_07/83496-859380-cat-listening-to-music.thumb.jpg.a5006daa3b9c8a982bd875a41c8a6a82.jpg)
[Protecting my Golang exe](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Protecting my Golang exe")
redbull,
[July 10Jul 10](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[Monday at 11:17 PM4 days](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 258 posts
![ToughDev](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c46285%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ET%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
ToughDev,
[March 26Mar 26](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 454 posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
CodeExplorer,
[July 31Jul 31](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
CodeExplorer,
[June 20Jun 20](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.6k posts
![Say](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2382c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)")
Say,
[September 4Sep 4](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 151 posts
![Dax](https://forum.tuts4you.com/uploads/monthly_2026_06/1503603.thumb.jpeg.22c101f9cbdb6c3c040531dd4a26176b.jpeg)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Dax,
[June 23Jun 23](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,470** Total Members
- **7,713** Most Online
- [![Shadow09](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c462b3%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)](https://forum.tuts4you.com/profile/149859-shadow09/ "Go to Shadow09's profile")
**[Shadow09](https://forum.tuts4you.com/profile/149859-shadow09/ "Go to Shadow09's profile")** Newest Member · Wednesday at 07:53 PM2 days
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,431 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![Stingered](https://forum.tuts4you.com/uploads/monthly_2026_01/Stingered_animated_Avatar.thumb.gif.578a5e25596943c2d83999a12bffbb3e.gif)
[Question. I've been working on a patch for severel months without success...](https://forum.tuts4you.com/topic/46217-question-ive-been-working-on-a-patch-for-severel-months-without-success/ "Question. I've been working on a patch for severel months without success...")
Stingered,
[15 hours ago15 hr](https://forum.tuts4you.com/topic/46217-question-ive-been-working-on-a-patch-for-severel-months-without-success/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Asif](https://forum.tuts4you.com/uploads/monthly_2026_05/dark-tree-in-the-middle-of-a-purple-lake-wallpaper.thumb.jpg.02ff4397975066b3a9bcae231c439e2e.jpg)
[JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "JitDumperEx — Dump JIT-Generated Code on .NET Framework 2.0–4.8 via ExecuteEXE & ExecuteDLLForAttach")
Asif,
[September 15Sep 15](https://forum.tuts4you.com/topic/46211-jitdumperex-dump-jit-generated-code-on-net-framework-2048-via-executeexe-executedllforattach/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 473 posts
![whoknows](https://forum.tuts4you.com/uploads/monthly_2024_01/avatar1.thumb.jpg.34724bdfbd3ed5b434bd6f7fc7c097b9.jpg)
[Retrieve all amazing awesomeness from Github](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Retrieve all amazing awesomeness from Github")
whoknows,
[Yesterday at 01:40 PM1 day](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 985 posts
![redbull](https://forum.tuts4you.com/uploads/monthly_2026_07/83496-859380-cat-listening-to-music.thumb.jpg.a5006daa3b9c8a982bd875a41c8a6a82.jpg)
[Protecting my Golang exe](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Protecting my Golang exe")
redbull,
[July 10Jul 10](https://forum.tuts4you.com/topic/45329-protecting-my-golang-exe/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[September 14Sep 14](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 258 posts
![ToughDev](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c46285%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ET%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
ToughDev,
[March 26Mar 26](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 454 posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
CodeExplorer,
[July 31Jul 31](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
CodeExplorer,
[June 20Jun 20](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.6k posts
![Say](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2382c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "CSL Course - Cracking Software Legally (CSL) & CSP Course - Cracking Software Practicals (CSP)")
Say,
[September 4Sep 4](https://forum.tuts4you.com/topic/43321-csl-course-cracking-software-legally-csl-csp-course-cracking-software-practicals-csp/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 151 posts
![Dax](https://forum.tuts4you.com/uploads/monthly_2026_06/1503603.thumb.jpeg.22c101f9cbdb6c3c040531dd4a26176b.jpeg)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Dax,
[June 23Jun 23](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,468** Total Members
- **7,713** Most Online
- ![Shadow09](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23c462b3%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ES%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
**Shadow09** Newest Member · Wednesday at 07:53 PM4 days
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,496 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Is there any AI model we can use without message limitations?](https://forum.tuts4you.com/topic/46194-is-there-any-ai-model-we-can-use-without-message-limitations/ "Is there any AI model we can use without message limitations?")
Progman,
[10 hours ago10 hr](https://forum.tuts4you.com/topic/46194-is-there-any-ai-model-we-can-use-without-message-limitations/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Raggy](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23626dc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Realistic Water Effect When Touched by Mouse.](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Realistic Water Effect When Touched by Mouse.")
Raggy,
[Wednesday at 11:06 AM2 days](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 474 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[Retrieve all amazing awesomeness from Github](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Retrieve all amazing awesomeness from Github")
Erich Gropper,
[8 hours ago8 hr](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 990 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?")
Erich Gropper,
[8 hours ago8 hr](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[September 14Sep 14](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 259 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
Erich Gropper,
[8 hours ago8 hr](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 454 posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
CodeExplorer,
[July 31Jul 31](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![CodeExplorer](https://forum.tuts4you.com/uploads/monthly_2020_07/67d195ad13dd13e9b3fed230b8ea30ef.thumb.jpg.240d0fe24951c68b0e53cdc07687081a.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
CodeExplorer,
[June 20Jun 20](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.6k posts
![Washi](https://forum.tuts4you.com/uploads/monthly_2019_03/avatar_873632.thumb.png.9c04c2850dff78439125ab2a368560e2.png)
[Flare-On 13](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Flare-On 13")
Washi,
[13 hours ago13 hr](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 151 posts
![Dax](https://forum.tuts4you.com/uploads/monthly_2026_06/1503603.thumb.jpeg.22c101f9cbdb6c3c040531dd4a26176b.jpeg)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Dax,
[June 23Jun 23](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,487** Total Members
- **7,713** Most Online
- ![zerigue](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362c496%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
**zerigue** Newest Member · 3 hours ago3 hr
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,508 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Is there any AI model we can use without message limitations?](https://forum.tuts4you.com/topic/46194-is-there-any-ai-model-we-can-use-without-message-limitations/ "Is there any AI model we can use without message limitations?")
Progman,
[Friday at 01:40 PM1 day](https://forum.tuts4you.com/topic/46194-is-there-any-ai-model-we-can-use-without-message-limitations/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Raggy](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23626dc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Realistic Water Effect When Touched by Mouse.](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Realistic Water Effect When Touched by Mouse.")
Raggy,
[13 hours ago13 hr](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 474 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[Retrieve all amazing awesomeness from Github](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Retrieve all amazing awesomeness from Github")
Erich Gropper,
[Friday at 03:40 PM1 day](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 990 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?")
Erich Gropper,
[Friday at 03:44 PM1 day](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[September 14Sep 14](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 259 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
Erich Gropper,
[Friday at 03:47 PM1 day](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 455 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
Erich Gropper,
[9 hours ago9 hr](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
Erich Gropper,
[9 hours ago9 hr](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.6k posts
![adicto](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23628ac4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EA%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Flare-On 13](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Flare-On 13")
adicto,
[21 minutes ago21 min](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 151 posts
![Dax](https://forum.tuts4you.com/uploads/monthly_2026_06/1503603.thumb.jpeg.22c101f9cbdb6c3c040531dd4a26176b.jpeg)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Dax,
[June 23Jun 23](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,496** Total Members
- **7,713** Most Online
- ![Memo56](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2365c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EM%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
**Memo56** Newest Member · 4 hours ago4 hr
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,813 @@
[Skip to content](https://forum.tuts4you.com/#ipsLayout__main)
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
View in the app
A better way to browse. **Learn more**.
Learn more×DismissClose
![](https://forum.tuts4you.com/uploads/monthly_2022_09/apple-touch-icon-180x180.png)
Tuts 4 You
A full-screen app on your home screen with push notifications, badges and more.
To install this app on iOS and iPadOS
1. Tap the Share icon in Safari
2. Scroll the menu and tap **Add to Home Screen**.
3. Tap **Add** in the top-right corner.
To install this app on Android
1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
2. Tap **Add to Home screen** or **Install app**.
3. Confirm by tapping **Install**.
[Tuts 4 YouA Reverse Engineering Community](https://forum.tuts4you.com/)
- Sign In
1. ## [Community Links](https://forum.tuts4you.com/forum/163-community-links/) Toggle this category
1. [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
### [Terms, Privacy Policy & Frequently Asked Questions](https://forum.tuts4you.com/forum/45-terms-privacy-policy-frequently-asked-questions/)
Very important! Please read before sign up and posting...
- [Collection 2011](https://forum.tuts4you.com/forum/157-collection-2011/)
- [Downloads](https://forum.tuts4you.com/forum/152-downloads/)
- [Website Archives](https://forum.tuts4you.com/forum/162-website-archives/)
- [Telegram](https://forum.tuts4you.com/forum/158-telegram/)
1,065,525 visits to this link
2. ## [Community Discussions](https://forum.tuts4you.com/forum/52-community-discussions/) Toggle this category
1. [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
### [General Discussions and Off Topic](https://forum.tuts4you.com/forum/2-general-discussions-and-off-topic/)
General and off-topic conversations and discussions here...
- 15.9k posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[whoknows News!](https://forum.tuts4you.com/topic/42778-whoknows-news/ "whoknows News!")
Erich Gropper,
[8 hours ago8 hr](https://forum.tuts4you.com/topic/42778-whoknows-news/ "Go to last post")
2. [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
### [Scene News and Chit-Chat](https://forum.tuts4you.com/forum/3-scene-news-and-chit-chat/)
Discussions covering scene news and changes...
- [Artscene Community](https://forum.tuts4you.com/forum/48-artscene-community/)
- [Artscene Downloads](https://forum.tuts4you.com/forum/156-artscene-downloads/)
- 11k posts
![RADIOX](https://forum.tuts4you.com/uploads/monthly_2023_02/smiley-512x512.png.06f6c7c710fa87ef8d43485a836b9244.thumb.png.83e1875ac487169c4eef314c734b235e.png)
[52pojie](https://forum.tuts4you.com/topic/46159-52pojie/ "52pojie")
RADIOX,
[August 18Aug 18](https://forum.tuts4you.com/topic/46159-52pojie/ "Go to last post")
3. [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
### [Site Bug Reports and Feedback](https://forum.tuts4you.com/forum/39-site-bug-reports-and-feedback/)
Bugs, feedback and ideas regarding this site...
- 2.3k posts
![Teddy Rogers](https://forum.tuts4you.com/uploads/monthly_2024_01/1646824.thumb.png.42f4192982a5236fe8671e0b7ef441a6.png)
[Unplanned Outage](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Unplanned Outage")
Teddy Rogers,
[April 30Apr 30](https://forum.tuts4you.com/topic/46028-unplanned-outage/ "Go to last post")
3. ## [Developers Forums](https://forum.tuts4you.com/forum/143-developers-forums/) Toggle this category
1. [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
### [Programming and Coding](https://forum.tuts4you.com/forum/47-programming-and-coding/)
Programming and coding tips, help and solutions...
- 13k posts
![Raggy](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23626dc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Realistic Water Effect When Touched by Mouse.](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Realistic Water Effect When Touched by Mouse.")
Raggy,
[Saturday at 11:05 AM1 day](https://forum.tuts4you.com/topic/46135-realistic-water-effect-when-touched-by-mouse/ "Go to last post")
2. [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
### [Programming Resources](https://forum.tuts4you.com/forum/121-programming-resources/)
Share an interesting blog, news page or other resource...
- 475 posts
![whoknows](https://forum.tuts4you.com/uploads/monthly_2024_01/avatar1.thumb.jpg.34724bdfbd3ed5b434bd6f7fc7c097b9.jpg)
[Retrieve all amazing awesomeness from Github](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Retrieve all amazing awesomeness from Github")
whoknows,
[3 hours ago3 hr](https://forum.tuts4you.com/topic/41644-retrieve-all-amazing-awesomeness-from-github/ "Go to last post")
3. [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
### [Software Security](https://forum.tuts4you.com/forum/133-software-security/)
Securing your software against reverse engineering...
- 990 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "VMProtect 3.10.4 vs Themida 3.2.4.52 — Which One Makes Crackers Cry?")
Erich Gropper,
[Friday at 03:44 PM2 days](https://forum.tuts4you.com/topic/46083-vmprotect-3104-vs-themida-32452-which-one-makes-crackers-cry/ "Go to last post")
4. ## [Reverse Code Engineering](https://forum.tuts4you.com/forum/51-reverse-code-engineering/) Toggle this category
1. [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
### [Challenge of Reverse Engineering](https://forum.tuts4you.com/forum/146-challenge-of-reverse-engineering/)
Try a challenge or contribute your own, any platform or operating system...
- [CrackMe](https://forum.tuts4you.com/forum/145-crackme/)
- [KeygenMe](https://forum.tuts4you.com/forum/148-keygenme/)
- [UnPackMe](https://forum.tuts4you.com/forum/147-unpackme/)
- [UnPackMe (.NET)](https://forum.tuts4you.com/forum/155-unpackme-net/)
- 15.1k posts
![hamzadutsher](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2362bcc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EH%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[WinLicense v3.1.3.0 x86 (All Protection Options)](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "WinLicense v3.1.3.0 x86 (All Protection Options)")
hamzadutsher,
[September 14Sep 14](https://forum.tuts4you.com/topic/44125-winlicense-v3130-x86-all-protection-options/ "Go to last post")
2. [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
### [Hardware Reverse Engineering](https://forum.tuts4you.com/forum/124-hardware-reverse-engineering/)
Reverse engineering of circuitry hardware and firmware...
- 259 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "I built an Iomega ZIP100 parallel port emulator (PIC32MZ + USB disk images) – LPT100 project")
Erich Gropper,
[Friday at 03:47 PM2 days](https://forum.tuts4you.com/topic/45979-i-built-an-iomega-zip100-parallel-port-emulator-pic32mz-usb-di[REDACTED]/ "Go to last post")
3. [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
### [Network Security](https://forum.tuts4you.com/forum/122-network-security/)
Discussions on network security, holes, exploits and other issues...
- 455 posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[Why ping doesn't work???](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Why ping doesn't work???")
Erich Gropper,
[Saturday at 03:49 PM1 day](https://forum.tuts4you.com/topic/40521-why-ping-doesnt-work/ "Go to last post")
4. [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
### [Malware Reverse Engineering](https://forum.tuts4you.com/forum/106-malware-reverse-engineering/)
Debugging, disassembling and documenting interesting malware...
- 1.7k posts
![Erich Gropper](https://forum.tuts4you.com/uploads/monthly_2026_09/FB_IMG_1790278751891.thumb.jpg.50dd1b95435c849f38f452d21da47257.jpg)
[How can i extract files from turbo virtualized apps?](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "How can i extract files from turbo virtualized apps?")
Erich Gropper,
[Saturday at 03:52 PM1 day](https://forum.tuts4you.com/topic/43136-how-can-i-extract-files-from-turbo-virtualized-apps/ "Go to last post")
5. [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
### [Reverse Engineering Articles](https://forum.tuts4you.com/forum/93-reverse-engineering-articles/)
Share an interesting blog, news page or other RE related site...
- 2.7k posts
![crap](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23627fc4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EC%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Flare-On 13](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Flare-On 13")
crap,
[23 minutes ago23 min](https://forum.tuts4you.com/topic/46223-flare-on-13/ "Go to last post")
6. [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
### [Employment and Careers](https://forum.tuts4you.com/forum/128-employment-and-careers/)
Discussions on employment and career paths in the industry...
- 213 posts
![zahainesu](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3EZ%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[Experienced Reverse Engineer wanted for RAGE:MP project](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Experienced Reverse Engineer wanted for RAGE:MP project")
zahainesu,
[September 5Sep 5](https://forum.tuts4you.com/topic/46140-experienced-reverse-engineer-wanted-for-ragemp-project/ "Go to last post")
5. ## [Community Projects](https://forum.tuts4you.com/forum/118-community-projects/) Toggle this category
1. [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
### [Scylla Imports Reconstruction](https://forum.tuts4you.com/forum/132-scylla-imports-reconstruction/)
Development and support forum for the Scylla project...
- 506 posts
![Progman](https://forum.tuts4you.com/uploads/monthly_2026_09/progman_profile_512.thumb.png.4d6df774e7197532ec94bc0c33fa4024.png)
[Scylla Imports Reconstruction Source](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Scylla Imports Reconstruction Source")
Progman,
[June 11, 20242 yr](https://forum.tuts4you.com/topic/27191-scylla-imports-reconstruction-source/ "Go to last post")
2. [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
### [x64dbg](https://forum.tuts4you.com/forum/139-x64dbg/)
An open-source x64/x32 debugger for windows...
- 1.3k posts
![remek002](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%2391c462%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ER%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[x64dbg plugin in delphi](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "x64dbg plugin in delphi")
remek002,
[July 2Jul 2](https://forum.tuts4you.com/topic/43648-x64dbg-plugin-in-delphi/ "Go to last post")
3. [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
### [Future Community Projects](https://forum.tuts4you.com/forum/130-future-community-projects/)
Looking for support and interested partners for a future project?
- 154 posts
![Bartosz](https://forum.tuts4you.com/uploads/monthly_2018_05/pelock-120.thumb.png.acaeecdb5611c9d816d72e15da9a5c8c.png)
[REDasm Disassembler](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "REDasm Disassembler")
Bartosz,
[2 hours ago2 hr](https://forum.tuts4you.com/topic/40281-redasm-disassembler/ "Go to last post")
4. [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
### [Community Projects Archive](https://forum.tuts4you.com/forum/141-community-projects-archive/)
Old and inactive projects moved to long term support...
- [uPPP](https://forum.tuts4you.com/forum/120-uppp/)
- [Imports Fixer](https://forum.tuts4you.com/forum/119-imports-fixer/)
- [TitanEngine CE](https://forum.tuts4you.com/forum/138-titanengine-ce/)
- 832 posts
![devsat-dz](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%237062c4%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3ED%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
[TitanHide](https://forum.tuts4you.com/topic/34431-titanhide/ "TitanHide")
devsat-dz,
[December 17, 2025Dec 17](https://forum.tuts4you.com/topic/34431-titanhide/ "Go to last post")
6. ## [The Trashcan](https://forum.tuts4you.com/forum/100-the-trashcan/) Toggle this category
1. [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
### [The Trashcan](https://forum.tuts4you.com/forum/7-the-trashcan/)
This is where all the bad posts go.
**99.9%** of the time it contains crack requests and banned members...
### Member Statistics
- **31,511** Total Members
- **7,713** Most Online
- ![67jkawbgk](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201024%22%20style%3D%22background%3A%23939393%22%3E%3Cg%3E%3Ctext%20text-anchor%3D%22middle%22%20dy%3D%22.35em%22%20x%3D%22512%22%20y%3D%22512%22%20fill%3D%22%23ffffff%22%20font-size%3D%22700%22%20font-family%3D%22-apple-system%2C%20BlinkMacSystemFont%2C%20Roboto%2C%20Helvetica%2C%20Arial%2C%20sans-serif%22%3E6%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E)
**67jkawbgk** Newest Member · 29 minutes ago29 min
- [Existing user? Sign In](https://forum.tuts4you.com/login/)
- [Sign Up](https://forum.tuts4you.com/register/)
Search
Where:
EverywhereTopicsFilesPagesArticle
Search:
Content titles and bodyContent titles only
Date Created:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Use:
All of these wordsAny of these words
Last Updated:
Any datePast 24 hoursPast weekPast monthPast six monthsPast year
Search...
Search
Search
Search by content type
EverywhereTopicsFilesPagesArticle
Find results in
Search titles and bodySearch titles only
Date Created
Created any timeCreated past 24 hoursCreated past weekCreated past monthCreated past 6 monthsCreated past year
Last Updated
Updated any timeUpdated past 24 hoursUpdated past weekUpdated past monthUpdated past 6 monthsUpdated past year
Close
#### Configure browser push notifications
Close
Chrome Safari Edge Firefox
##### Chrome (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions → Notifications**.
3. Adjust your preference.
##### Chrome (Desktop)
1. Click the padlock icon in the address bar.
2. Select **Site settings**.
3. Find **Notifications** and adjust your preference.
##### Safari (iOS 16.4+)
1. Ensure the site is installed via **Add to Home Screen**.
2. Open **Settings App → Notifications**.
3. Find your app name and adjust your preference.
##### Safari (macOS)
1. Go to **Safari → Preferences**.
2. Click the **Websites** tab.
3. Select **Notifications** in the sidebar.
4. Find this website and adjust your preference.
##### Edge (Android)
1. Tap the lock icon next to the address bar.
2. Tap **Permissions**.
3. Find **Notifications** and adjust your preference.
##### Edge (Desktop)
1. Click the padlock icon in the address bar.
2. Click **Permissions for this site**.
3. Find **Notifications** and adjust your preference.
##### Firefox (Android)
1. Go to **Settings → Site permissions**.
2. Tap **Notifications**.
3. Find this site in the list and adjust your preference.
##### Firefox (Desktop)
1. Open Firefox Settings.
2. Search for **Notifications**.
3. Find this site in the list and adjust your preference.

View File

@@ -0,0 +1,124 @@
{
"generated": "2026-09-27T01:18:41+00:00",
"repos": [
{
"url": "https://github.com/open-free-llm-api/awesome-freellm-apis",
"stars": 3372,
"updated": "2026-09-27T01:05:15Z",
"desc": "134+ free LLM APIs & AI API keys from 40+ providers. Google Gemini, NVIDIA NIM, Groq, OpenRouter & more. One-click setup for Claude Code, Cursor and Codex.",
"category": "claude"
},
{
"url": "https://github.com/dwgx/WindsurfAPI",
"stars": 3039,
"updated": "2026-09-26T15:55:20Z",
"desc": "Turn Windsurf / Devin Desktop's 100+ AI models (Claude, GPT, Gemini, DeepSeek, Kimi, GLM, SWE) into OpenAI-, Anthropic- & Gemini-compatible APIs. Zero-dependency self-hosted reverse proxy for Claude Code, Cline & Cursor. 把 Windsurf/Devin 云端 100+ 模型变成三套兼容 API。",
"category": "windsurf"
},
{
"url": "https://github.com/caozhiyuan/copilot-api",
"stars": 1049,
"updated": "2026-09-27T01:01:48Z",
"desc": "GitHub Copilot, OpenAI Codex, OpenCode Go, and third-party AI provider gateway with OpenAI and Anthropic API compatibility.",
"category": "copilot"
},
{
"url": "https://github.com/sylearn/AIUsage",
"stars": 686,
"updated": "2026-09-26T10:31:59Z",
"desc": "One dashboard to manage all your AI subscriptions — track quotas, costs, accounts, Claude Code proxy, and Codex proxy in one place.",
"category": "claude"
},
{
"url": "https://github.com/raine/claude-code-proxy",
"stars": 620,
"updated": "2026-09-26T23:20:02Z",
"desc": "Use Claude Code with your ChatGPT, Kimi, Cursor or Grok subscription via a local Anthropic-compatible proxy",
"category": "claude"
},
{
"url": "https://github.com/timgordontg/engrim",
"stars": 291,
"updated": "2026-09-26T17:35:55Z",
"desc": "The Universal Cross-Model Episodic Memory Standard. Local-first, project-scoped SQLite engine for Google Antigravity, Claude Code, Cursor, Codex CLI, GitHub Copilot CLI, and OpenCode. Zero cloud lock-in.",
"category": "copilot"
},
{
"url": "https://github.com/ClawLabsAI/free-ai-models",
"stars": 159,
"updated": "2026-09-27T00:20:17Z",
"desc": "Daily-updated list of free AI models (free LLM APIs), ranked by quality with live status. Plus one OpenAI-compatible endpoint that routes to the best one.",
"category": "gpt"
},
{
"url": "https://github.com/baicaigpt/FreeGPT_FreeApiKey",
"stars": 35,
"updated": "2026-08-21T07:32:47Z",
"desc": "🚀 白菜GPT|OpenAI中转APIKEY🚀 https://baicaigpt.com 🔥官方价格1:1🔥 1¥购买1$ Token 🔥便宜好用白菜价!🔥|国内直连|无需代理|高速稳定|gpt3.5|gpt4|gpt4o|gpt4omin",
"category": "gpt"
},
{
"url": "https://github.com/mvalentsev/awesome-free-ai-coding",
"stars": 33,
"updated": "2026-09-26T13:28:06Z",
"desc": "📡 Legal free LLM APIs & coding agents — self-updating, probe-verified twice a week. Free tiers, no-card trials, free models.",
"category": "other-free"
},
{
"url": "https://github.com/nherx/free-llm-api-resources",
"stars": 30,
"updated": "2026-09-27T00:15:37Z",
"desc": "🤖 Discover free API access and credits for various legitimate large language model services in one curated resource list.",
"category": "other-free"
},
{
"url": "https://github.com/sozercan/vekil",
"stars": 21,
"updated": "2026-09-26T21:55:20Z",
"desc": "🧑‍💼 AI gateway exposing Anthropic, Gemini, and OpenAI-compatible APIs, backed by GitHub Copilot, OpenAI Codex, Microsoft Foundry, and compatible model servers",
"category": "copilot"
},
{
"url": "https://github.com/ai-dev-2024/Antigravity-Claude-Code-Proxy",
"stars": 13,
"updated": "2026-09-23T20:22:01Z",
"desc": "Local multi-provider gateway for using Claude Code with Gemini, GPT, Grok, and other models, with account rotation and monitoring.",
"category": "antigravity"
},
{
"url": "https://github.com/imbuxiangnan-cyber/windsurf-api",
"stars": 7,
"updated": "2026-06-29T08:42:06Z",
"desc": "Turn your Windsurf subscription into an OpenAI/Anthropic-compatible API server",
"category": "windsurf"
},
{
"url": "https://github.com/happyyboxx/free-llm-atlas",
"stars": 7,
"updated": "2026-09-26T10:35:50Z",
"desc": "Free LLM Atlas — Curated atlas of 46+ free LLM API platforms with automated probing, structured data, and gateway configs",
"category": "other-free"
},
{
"url": "https://github.com/ai-resource-radar/ai-resource-radar",
"stars": 5,
"updated": "2026-09-26T06:09:24Z",
"desc": "Daily-verified free LLM APIs, AI token prices, and GPU compute deals with no-card filters, official evidence, and a local-first dashboard.",
"category": "other-free"
},
{
"url": "https://github.com/the-long-ride/QuotaShift",
"stars": 1,
"updated": "2026-09-26T21:25:16Z",
"desc": "A tauri desktop app for monitoring AI subscription quota usage, switching account with 1 click and pooling Codex usage. Support Codex, Antigravity & Claude. Guardrails usage for Claude.",
"category": "antigravity"
},
{
"url": "https://github.com/devasheeshG/claude-code-proxy",
"stars": 0,
"updated": "2026-09-26T11:53:03Z",
"desc": "Self-hosted multi-account Claude Code proxy with priority routing, quota-aware failover, user policies, observability, and a management dashboard.",
"category": "claude"
}
]
}

View File

@@ -0,0 +1,586 @@
# Реверс-инжиниринг: как получить что угодно БЕСПЛАТНО с самым опасным репо и Opus 5.5 — полный курс
![](https://pbs.twimg.com/media/HUbbxvhXIAAugl8.jpg)
REA + Opus 5.5: полный курс
REA — самая опасная вещь в интернете прямо сейчас, и 99% людей понятия не имеют, как ей пользоваться.
Ты каждый месяц платишь за приложения, чьи функции уже лежат на твоём компьютере.
Motion-design приложения. Office. TradingView. Твой блокнот и остальные — всё это просто код на диске.
И каждая компания ставит на одно: что ты никогда не заглянешь внутрь.
Теперь один open-source репо даёт твоему Claude Code тот же навык — одной командой.
За три дня это разлетелось везде. «Софт закончился». «Closed source мёртв».
Большинство посмотрели скриншоты, кинули в закладки — и так ничего и не попробовали.
Поэтому в этом полном курсе показываю всё простыми словами:
- что такое реверс-инжиниринг на самом деле
- что REA умеет читать — от десктопных приложений до игр
- честный ответ на «разве это не воровство?»
- как установить пошагово, прямо по официальным докам
- что люди уже пересобрали: Adobe, Office, TradingView, игры
- как это каждый день использует обычный человек и профи
- пак промтов, которые можно копипастить
Так что сохрани, открой терминал и проходи шаг за шагом.
* * *
### Часть 1 — Понять
#### 01. Что такое реверс-инжиниринг (и что такое REA)
Реверс-инжиниринг на самом деле прост.
> Берёшь готовое приложение и разбираешься, как оно работает внутри — без его исходников.
Вот и всё. Ты хочешь понять фичу настолько, чтобы объяснить её, изменить или собрать собственную версию.
REA (Reverse Engineer Anything) делает ровно это, причём тяжёлую часть выполняет твой AI-агент. Официальный README описывает это одной строкой:
> «Увидел фичу, которая нравится. Понял, как она работает — вплоть до бинарного уровня».
Технически это:
- MCP-сервер + CLI, который подключается к Claude Code, Codex, Cursor, Gemini CLI и другим агентам
- работает локально. Твои приложения никуда не загружаются
- каждый вывод идёт с доказательством: функция, файл, вызов — и что ещё осталось неизвестным
Ты спрашиваешь обычными словами. REA исследует программу. Агент объясняет её, собирает твою версию и тестирует. [Репо REA](https://github.com/morluto/rea)
Лучший пример — на официальном сайте. Почему калькулятор Windows показывает 220, когда вводишь 200 + 10%?
Без REA пришлось бы вручную декодировать ветки и трейсить вызовы. С REA ты просто спрашиваешь.
Ответ прямо из кода: после + кнопка % берёт процент от первого числа. 10% от 200 это 20, значит 200 + 20 = 220. А после × те же 10% просто превращаются в 0.1. [rea.tools](https://rea.tools/)
Или почему динозаврик в Chrome ускоряется: скорость стартует с 6, каждый апдейт добавляет 0.001 и останавливается на 13.
> Ты не читаешь код. Ты задаёшь вопрос — и получаешь правило.
REA — open source под MIT, сделал [@morluto](https://x.com/morluto). Первый релиз вышел 12 июля 2026. Через три месяца — 100K+ звёзд на GitHub.
* * *
#### 02. Что REA умеет читать
Официальный список, переведённый на человеческий ([что можно анализировать](https://github.com/morluto/rea#what-you-can-analyze)):
- Десктопные приложения на JavaScript/Electron (Notion, Slack, Discord, Obsidian и ещё куча). Ничего дополнительно ставить не нужно
- Сайты: структура страниц, скрипты, сетевые запросы. Нужен браузер семейства Chrome
- Сохранённый сетевой трафик (HAR-файлы из твоего браузера)
- Программы и игры (.exe, Mac-приложения, старые DOS-игры): псевдокод, ассемблер, строки, вызовы. Нужен Ghidra, Hopper или IDA
- .NET-приложения: никаких доп. тулов
- Android-приложения (APK): нужны JDK и JADX
- Байткод смарт-контрактов: Linux x64
- Прошивки, WASM, Go-бинарники и многое другое
А вот часть, о которой почти никто не говорит:
Многие Unity-игры поставляют игровую логику как .NET-код. И REA читает .NET вообще без дополнительных инструментов.
Именно так один человек взял купленную им игру из Steam и открыл её в Unity меньше чем за 30 минут.
То есть теперь агент делает за тебя всю работу.
* * *
#### 03. Подождите… это же просто воровство?
Поговорим о слоне в комнате.
В момент, когда REA завирусилась, половина X кричала «пиратство», а вторая половина — «софт умер».
Chamath вообще сказал на All-In, что люди «декомпилировали» весь пакет Adobe.
И вот смешная часть. Этот фрагмент получил Community Note:
> Альтернативы Adobe не были декомпилированы. Их разработчик называет их clean-room реимплементациями.
Эта одна заметка объясняет всю юридическую игру. Разберём clean room, потому что когда поймёшь — всё встанет на места.
**Clean room — трюк, которому 40 лет.**
Шаг 1: одна команда изучает оригинал и записывает, что он делает. Не код. Поведение.
Шаг 2: другая команда строит новый продукт только по этому описанию. Оригинальный код она не видит никогда.
Результат делает то же самое, но содержит ноль строк кода оригинала. [Clean-room design](https://en.wikipedia.org/wiki/Clean-room_design)
Так родилась индустрия PC. В начале 80-х Compaq таким способом пересобрала BIOS IBM — за примерно $1 млн. Поэтому «IBM-совместимые» PC других брендов вообще существуют.
И суды продолжали поддерживать реверс-инжиниринг:
- ['1992, ', {'tag': 'b', 'children': ['Sega v. Accolade']}, '. Accolade разобрала игры Sega Genesis, чтобы делать свои совместимые игры. Суд признал: разбор кода может быть добросовестным использованием, если это единственный способ понять, как он работает. ', {'tag': 'a', 'attrs': {'href': 'https://en.wikipedia.org/wiki/Sega_v._Accolade'}, 'children': ['Sega v. Accolade']}]
- ['2000, ', {'tag': 'b', 'children': ['Sony v. Connectix']}, '. Sony проиграла со счётом 3-0. Финальный эмулятор не содержал ни строчки кода Sony.']
Но у истории есть и вторая сторона.
В 2010-2011 хакеры сломали защиту PS3 и опубликовали её root-ключ. Sony подала в суд на Джорджа Хотца (geohot), и в апреле 2011 он заключил мировую и согласился больше не взламывать продукты Sony. [TechSpot](https://www.techspot.com/news/43246-sony-and-geohot-settle-over-ps3-hacking-lawsuit.html)
**Мой честный взгляд:**
- Читать приложение на собственном компьютере, чтобы понять его — это учёба
- Пересобирать фичу по её поведению, в собственном коде — так индустрия работала всегда
- Копировать их код, крякать платные функции или публиковать чужой декомпилированный сорс — вот за это прилетает иск
Команда REA сама говорит прямо: это для законных исследований, образования, совместимости, сохранения софта — и для программ, которыми ты владеешь или которые тебе разрешено изучать. [Disclaimer](https://github.com/morluto/rea#disclaimer)
**Изучай оригинал. Выпускай своё. **Это правило для всего в этой статье.
* * *
### Часть 2 — Установить
#### 04. Установка REA за 5 минут
Проходи по порядку. [Get started](https://rea.tools/get-started/)
**Шаг 1. Проверь Node.js**
Открой терминал и запусти:
```
node -v
npm -v
```
Нужен Node 22.19+, 24.11+ или 26+. Версии 23 и 25 не поддерживаются.
Если версия старше или «command not found» — ставь Node 24 LTS:
macOS (с Homebrew):
```
brew install node
```
macOS (без Homebrew):
```
curl -fsSL https://fnm.vercel.app/install | bash
```
Закрой терминал, открой снова, затем:
```
fnm install 24
fnm default 24
```
Windows (PowerShell):
```
winget install OpenJS.NodeJS.LTS
```
Если спросит — нажми Y. Закрой PowerShell, открой заново, запусти node -v.
Если Windows потом скажет «запуск сценариев отключён», выполни один раз:
```
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```
**Шаг 2. Нужен агент**
Я использую Claude Code. Ему нужен платный план Claude. Страница установки: [code.claude.com/docs/en/setup](https://code.claude.com/docs/en/setup)
Codex, Cursor, Gemini CLI, OpenCode и другие тоже работают.
**Шаг 3. Запусти установку REA**
Самый простой способ — вставь это в Claude Code и дай ему сделать всё самому:
```
Install REA and connect it to this coding agent using npx rea-agents@latest setup. Show me the setup plan for approval, then verify the installation.
```
Или запусти сам:
```
npx rea-agents@latest setup
```
Что произойдёт дальше:
- npm попросит скачать пакет — соглашайся
- REA покажет список агентов. Выбирай Claude Code
- REA покажет план всех изменений, которые внесёт. Ничего не меняется, пока не подтвердишь. Текущий конфиг тоже бэкапится
- Добавляется MCP-подключение плюс соответствующий скилл расследования
Установка также предложит Hopper — отдельный движок для чтения программ. На Mac она скачает официальный инсталлятор и откроет его, там выбери demo-режим. Это опционально, можно пока отказаться.
**Шаг 4. Перезапусти агента**
- Claude Code в терминале: выйди и начни новую сессию
- Десктопные приложения (Claude Desktop, Cursor): выйди полностью через ⌘Q. Закрыть окно — недостаточно
**Шаг 5. Проверь**
```
npx -y rea-agents@latest doctor --client claude_code --json
```
doctor только проверяет и ничего не меняет. Если что-то отвалилось — он скажет следующий шаг.
Хочешь короткую команду rea навсегда:
```
npm install --global rea-agents
rea --help
```
Результат: в Claude Code появились инструменты REA. Спроси «какие у тебя есть REA-тулы?» — и он перечислит их.
* * *
#### 05. Твой первый реверс-инжиниринг за 2 минуты
Не начинай с чего-то огромного. У REA есть официальное тренировочное приложение — [First investigation](https://rea.tools/first-investigation/)
Это крошечное приложение «Заметки» с кнопкой Export notes. Твоя задача: выяснить, куда уходит экспорт.
Вставь в Claude Code:
```
Download https://rea.tools/examples/notes-example.zip into a new example folder and unpack it. Use REA to find what happens when I click Export notes.
```
Потом спроси:
```
Show where notes.csv is written, which fields it contains, and the relevant files and lines.
```
Что должно прийти обратно — полный путь одного клика:
- Страница (renderer.js) обрабатывает кнопку
- Мост (preload.js) отправляет сообщение notes:export
- Хендлер (main.js) пишет notes.csv в твою папку Downloads с полями id и title
> Поздравляю. Это и есть реверс-инжиниринг.
Ты только что проследил фичу внутри приложения, которое не писал, — и каждый шаг пришёл с доказательством.
А теперь весёлая часть. Каждое Electron-приложение на твоём компе устроено так же, и ты знаешь, где оно живёт:
- Mac: /Applications/<App>.app/Contents/Resources/app.asar (правый клик по приложению → Show Package Contents)
- Windows: C:\Users\<ты>\AppData\Local\Programs\<App>\resources\app.asar
- Linux: часто /opt/<App>/resources/app.asar
И можно анализировать прямо из терминала, вообще не запуская приложение:
```
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
```
Совет: на Mac зажми Option, кликни правой по папке и выбери «Copy as Pathname». Или просто перетащи папку в терминал.
* * *
#### 06. Добавь нужный движок под свою задачу
Десктопным JavaScript-приложениям больше ничего не нужно. Для всего остального добавь один движок.
**Программы и игры: Ghidra **(бесплатно, сделано в АНБ). Нужен Ghidra 12.1.x и JDK 21 или новее.
macOS / Linux:
```
export GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.1.4_PUBLIC
export JAVA_HOME=/absolute/path/to/jdk-21
npx -y rea-agents@latest doctor --provider ghidra --json
npx rea-agents@latest setup
```
Windows PowerShell:
```
$env:GHIDRA_INSTALL_DIR = "C:/tools/ghidra_12.1.4_PUBLIC"
$env:JAVA_HOME = "C:/tools/jdk-21"
npx -y rea-agents@latest doctor --provider ghidra --json
npx rea-agents@latest setup
```
Поддержка Windows пока экспериментальная и только на чтение.
Потом смотри любую функцию:
```
npx -y rea-agents@latest function /absolute/path/to/program main --provider ghidra --json
```
**Программы и игры: Hopper **(Mac/Linux, коммерческий, есть демо). Просто запусти setup ещё раз. Он найдёт Hopper или предложит установить. На Mac при первом запуске выбери demo-режим или свою лицензию.
**Программы и игры: IDA **(если уже куплен). Проверено на Windows через существующую настройку IDA MCP. [Get started](https://rea.tools/get-started/)
**Android-приложения: **полный JDK 17+ и jadx-headless-mcp 0.7.1. [Гайд по Android](https://github.com/morluto/rea/blob/main/docs/android-analysis.md)
```
export REA_JADX_MCP_JAR=/absolute/path/jadx-headless-mcp-0.7.1-all.jar
rea inspect-android-package /path/App.apk
```
**Сайты: **любой браузер семейства Chrome.
**Смарт-контракты: **Linux x64.
Держи обновлённым (REA выкатывает фиксы почти каждый день):
```
rea update
```
или npx rea-agents@latest setup. Удалить: rea uninstall.
Если агент не видит REA: перезапусти его, потом снова запусти doctor --client claude_code --json.
* * *
### Часть 3 — Что люди уже пересобрали
#### 07. Adobe, Office, TradingView и игры
Вот где начинается жесть.
AI не просто научился читать софт. Люди уже пересобирают целые продукты.
**Adobe**
ArtCraft пересобрал семь приложений Adobe как бесплатные open-source альтернативы: Photoshop, Illustrator, Premiere, Lightroom, After Effects, InDesign и Acrobat. Написано на Rust с помощью Claude Opus 5.5.
Помнишь clean room? Вот оно. ArtCraft называет их clean-room реимплементациями — без исходного кода Adobe. Это пока ранняя альфа, но они существуют и они бесплатны.
**Microsoft Office**
Потом взялись за Office. WordCraft, GridCraft и DeckCraft: Word, Excel и PowerPoint.
**TradingView**
Этот кейс люблю. Смаппить, как платформа себя ведёт, превратить это в спеку с помощью Opus 5.5, а потом построить собственный движок графиков и бэктестер — своим кодом.
Одна честная заметка: строить свой терминал — нормально. Бесплатно юзать чужие платные индикаторы — нет. Строй свои.
**Игры**
Здесь AI-реверс-инжиниринг рванул первым.
Нативный PC-порт Super Mario Sunshine: около 365 агенто-часов и 17.3 млрд токенов, использовались и Claude, и Codex. [Репозиторий](https://github.com/chasem-dev/sms-pc-port)
Игра Tomba! с PS1 теперь работает на PC через статический рекомпилятор. У автора не было никакого prior-опыта, он использовал Claude Code + Ghidra около трёх недель. [Разбор](https://1379.tech/i-built-a-ps1-static-recompiler-with-no-prior-experience-and-claude-code/)
А в официальном блоге REA один человек с AI-агентами пересобрал игру Touhou: 697 функций, 696 точных совпадений, играбельно примерно за 12 дней. [Индустриальная революция в реверс-инжиниринге](https://rea.tools/blog/touhou-reconstruction/)
Kotaku даже писал про браузерные версии Halo, GTA: Vice City и The Simpsons: Hit & Run, которые приписывают AI-помощи в декомпиляции. Это неофициальные порты, и их, скорее всего, снесут takedown-ами — это ровно та граница из главы выше. [Kotaku](https://kotaku.com/we-might-be-cooked-as-these-vibe-coded-web-browser-ports-of-halo-the-simpsons-hit-and-run-and-gta-vice-city-seem-to-work-perfectly-2000743300)
**Как повторить любое из этого: **выбери тул, за который платишь, или игру, которой владеешь; спроси у REA, как работает одна фича; напиши спеку; собери свою версию. Промты — в шаге 10.
* * *
### Часть 4 — Используй каждый день
Реверс-инжиниринг придумали для совместимости, безопасности и сохранения софта. Но вот как я бы использовал его в обычной жизни.
#### 08. Для новичков
**1. «Что это приложение реально делает на моём телефоне?»**
Возьми APK любого Android-приложения: твоего брокера, твоей биржи, того самого приложения «бесплатных сигналов» из Telegram. И спроси:
```
Use REA on this APK. List every permission, every analytics or tracking SDK, and every domain the app talks to. Show the class and method for each finding.
```
Официальное доказательство, что это работает: REA разобрала приложение-аутентификатор Aegis (3 077 классов), нашла в точности, как оно генерирует 6-значные коды входа, и пересобрала его. Пересборка прошла все 133 тест-кейса. [Кейс Aegis](https://rea.tools/showcase/aegis/)
**2. «Этот файл безопасен?»**
Реверс-инжиниринг — это как раз то, чем ловят малварь. Когда по сети ходила фейковая «сборка GTA 6» на 113 ГБ, человек, который разобрал файлы, обнаружил, что это фейк, набитый малварью.
**3. «Этот токен — скам?»**
Большинство мемкоинов не публикуют исходники. REA читает сырой байткод контракта и восстанавливает его функции. [Гайд по EVM](https://github.com/morluto/rea/blob/main/docs/evm-bytecode.md)
```
rea inspect-evm-interface ./runtime.hex hex --json
```
Потом спроси:
```
Use REA on this contract bytecode. List every function that can change state. Flag anything that looks like mint, blacklist, pause, fee change or owner-only transfer. Mark what is confirmed and what is inferred.
```
Имена функций здесь — догадки из байткода, поэтому к красному флагу относись как к «проверь глубже». И эта команда пока работает только на Linux x64.
**4. «Хочу ту платную фичу»**
Не крякай её. Пересобери. Спроси у REA, как фича работает, потом дай Claude собрать твою собственную версию из публичных данных и open-source частей.
* * *
#### 09. Для профи
В REA встроены guided-воркфлоу, о которых почти никто не знает. Они зашиты в MCP-сервер ([Guided prompts](https://github.com/morluto/rea/blob/main/docs/mcp-prompts.md)):
- [{'tag': 'b', 'children': ['investigate_feature']}, ': проследить фичу от обнаружения до конкретных функций']
- [{'tag': 'b', 'children': ['compare_application_versions']}, ': сравнить два релиза приложения и увидеть, что реально изменилось в апдейте']
- [{'tag': 'b', 'children': ['verify_reconstruction']}, ': проверить свою пересборку против сохранённых доказательств']
- [{'tag': 'b', 'children': ['trace_crash']}, ': связать креш с путями кода за ним']
- [{'tag': 'b', 'children': ['audit_residual_unknowns']}, ': перечислить, что всё ещё не доказано']
- [{'tag': 'b', 'children': ['prepare_bounded_process_capture']}, ': спланировать безопасный ограниченный runtime-эксперимент до того, как что-либо запускать']
Цикл профи: **investigate → spec → build → verify**
```
Use REA to investigate how [feature] works in [app]. Write SPEC.md: behavior, inputs, outputs, edge cases, no copied code. Then build it from SPEC.md in ./my-version, write tests from the observed behavior, and run them until they pass.
```
Насколько далеко это заходит — из официальных показов:
- ['DX-Ball (1996): REA восстановила функцию sound-pan и пересобрала её на C. Проходит 3 205 тест-кейсов оригинального x86 и воспроизводит все 63 байта компиляции. ', {'tag': 'a', 'attrs': {'href': 'https://rea.tools/showcase/dx-ball/'}, 'children': ['DX-Ball']}]
- ['Notion: REA проследила, как работает копирование — от страницы через IPC-мост до системного буфера обмена. ', {'tag': 'a', 'attrs': {'href': 'https://rea.tools/showcase/notion/'}, 'children': ['Notion']}]
И уроки из пересборки Touhou — золото для любого, кто занимается этим серьёзно:
- давай агенту чёткую цель и чёткие критерии приёмки
- держи заметки и проверки в git, чтобы следующая сессия могла продолжить
- относись к любому объяснению агента как к гипотезе, которую надо проверить
- тестируй свои тесты. Однажды сломанное сравнение пропустило неправильную функцию
Безопасники уже гоняют это в промышленных масштабах. Один исследователь собрал AI-пайплайн из 8 MCP-серверов, 300+ инструментов, Ghidra, radare2 и Frida — и говорит, что он окупился через bug bounty.
**Где деньги: **исследования безопасности и bug bounty, перенос старого софта на новые системы, связывание тулов между собой и помощь компаниям в понимании софта, к которому потеряны исходники.
* * *
#### 10. Чего REA не может
Хочу, чтобы этой статье доверяли, поэтому вот реальные ограничения:
- ['Она не может тронуть сервер. Читается только то, что на твоей машине. Код, который крутится на серверах компании, тебе никогда не поставлялся. Банк она не взломает и деньги не переведёт. ', {'tag': 'a', 'attrs': {'href': 'https://rafaelroman.com/articles/ai-reverse-engineering-cant-hack-your-bank/'}, 'children': ['Почему ею нельзя взломать банк']}]
- Декомпилированный код — не оригинальный исходник. Это реконструкция. Поэтому шаг verify так важен
- Сложные цели остаются сложными. Стрипанные C++-бинарники намного жёстче, чем Unity .NET-игры
- Твой агент может отказаться. Некоторые прошивки и консольные цели упираются в правила безопасности модели
- Коммерческим тулам нужны настоящие лицензии. REA не даёт лицензий на IDA, Hopper или JEB, а крякнутые копии запрещены
* * *
#### 11. Пак промтов
Сохрани. Каждый промт работает в Claude Code, когда REA установлена.
**Установка:**
```
Install REA and connect it to this coding agent using npx rea-agents@latest setup. Show me the setup plan for approval, then verify the installation.
```
**Первый тест:**
```
Download https://rea.tools/examples/notes-example.zip into a new example folder and unpack it. Use REA to find what happens when I click Export notes.
```
**Универсальный:**
```
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
```
**Real-time фичи:**
```
Figure out how Discord shows who's typing in real time, show me the proof, and build something similar for my project.
```
**Калькулятор:**
```
Use REA to inspect Windows Calculator's % button. Recover the rules after + and ×, then build a small calculator that uses both.
```
**Игра:**
```
Inspect the dinosaur game and build a version with adjustable speed.
```
**Реконструировать игру:**
```
Reconstruct a game from its executable and test it against the original.
```
**Клонировать сайт:**
```
Clone the rea.tools website.
```
**Аудит мобильного приложения:**
```
Use REA on this APK. List every permission, every analytics or tracking SDK, and every domain the app talks to. Show the class and method for each finding.
```
**Проверка токена:**
```
Use REA on this contract bytecode. List every function that can change state. Flag anything that looks like mint, blacklist, pause, fee change or owner-only transfer. Mark what is confirmed and what is inferred.
```
**Профи-пересборка:**
```
Use REA to investigate how [feature] works in [app]. Write SPEC.md: behavior, inputs, outputs, edge cases, no copied code. Then build it from SPEC.md in ./my-version, write tests from the observed behavior, and run them until they pass.
```
**Что изменилось в апдейте:**
```
Use REA's compare_application_versions workflow on [old version] and [new version] of [app]. Tell me what actually changed, with evidence.
```
* * *
#### Твой протокол на один вечер
Не просто кидай в закладки. Сделай это сегодня вечером:
- Установи REA сетап-промтом (5 мин)
- Потренируйся на официальном примере Notes (2 мин)
- Выбери одно приложение на компе, которым пользуешься каждый день
- Задай один вопрос про одну фичу, которая тебе нравится
- Получи спеку: что она делает, шаг за шагом, с доказательствами
- Собери свою версию из спеки в новой папке
Вот и всё. Один вечер — и ты больше никогда не будешь смотреть на софт по-прежнему.
* * *
### Сдвиг
> Closed source раньше означало «ты никогда не узнаешь» → теперь означает «покажи мне доказательства».
> REA — не хакерский инструмент.
> Это инструмент чтения софта, который написал не ты.
И настоящая альфа — не 100K звёзд и не вирусные скриншоты.
Настоящая альфа в том, что каждая фича, которой ты завидовал в чужом приложении, теперь — то, что ты можешь понять:
- Пусть REA найдёт фичу и доказательства
- Пусть Claude напишет спеку и соберёт твою версию
- Пусть тесты докажут, что это работает
Большинство продолжит платить за фичи, которые можно понять за один вечер.
Те немногие, кто научится читать софт, смогут собрать что угодно. Абсолютно бесплатно.

View File

@@ -0,0 +1,24 @@
🩸 К ГАЙДУ: КАК ЕГО ПРОЙТИ
Гайд проверен целиком: все 102 ссылки живые, цифры (звёзды, число тулов, названия репозиториев и книг) сверены с первоисточниками, лицензионные ограничения помечены. Сверху добавлен раздел про лицензию IDA — в исходных версиях такого гайда его нет.
🩸 ПЕРВЫЕ 7 ДНЕЙ
Весь стек сразу не осилить — и не надо. Минимальный старт:
1. Ghidra (https://github.com/NationalSecurityAgency/ghidra) + 2–3 задачи 1☆ с crackmes.one (https://crackmes.one/)
2. godbolt.org (https://godbolt.org/) — написал функцию на C → разобрал её ассемблер
3. x64dbg (https://x64dbg.com/) — своя программа: бряк, стек, регистры
Потом pwn.college (https://pwn.college/) — система и автопроверка.
🩸 ЧЕТЫРЕ ГВОЗДЯ
- ИИ-агент декомпилирует и ходит по xrefs, но уверенно ошибается в именах функций. Крипто, C2, авторизация — только руками
- Упакованный сэмпл = мусор вместо псевдокода: распаковывай до подачи агенту
- «IDA с ключом из телеги» = бинарь, изменённый анонимом. Легально и бесплатно: IDA Free (https://hex-rays.com/ida-free/), Ghidra, студенческая лицензия Hex-Rays
- Строки в бинарнике могут быть промпт-инъекцией против твоего ИИ-ассистента (https://arxiv.org/abs/2605.30667) — малварь уже так умеет
🩸 НЕ СПРИНТ
Маршрут на месяцы: база → инструменты → 30+ crackme → система → пайплайн → ИИ → специализация. Сохраняй гайд и возвращайся к нему по шагам.

View File

@@ -0,0 +1,194 @@
===MSG 1/4===
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026
Путь от нуля до самостоятельного анализа бинарников: база, инструменты, пайплайн, реверс через ИИ, материалы. Всё бесплатное или с free-версией, лицензионные исключения помечены.
🩸 ШАГ 1. БАЗА
Без базы инструменты не дают результатов:
- C — указатели, память, структуры, строки
- Ассемблер x86-64 — регистры, стек, calling conventions, переходы
- Compiler Explorer (https://godbolt.org/) — пишешь функцию на C, видишь её ассемблер
- Формат PE (https://learn.microsoft.com/windows/win32/debug/pe-format) — заголовки, секции, таблица импортов
Результат: читаешь ассемблерный листинг простой функции.
🩸 ШАГ 2. ИНСТРУМЕНТЫ
- Ghidra (https://github.com/NationalSecurityAgency/ghidra) — дизассемблер + декомпилятор, бесплатный. Основной инструмент для обучения, скриптится на Python через Ghidrathon (https://github.com/mandiant/Ghidrathon)
- x64dbg (https://x64dbg.com/) — отладчик Windows
- Detect It Easy (https://github.com/horsicq/Detect-It-Easy) — определение компилятора, протектора, упаковщика
- HxD (https://mh-nexus.de/hxd/) — hex-редактор
Позже пригодятся: IDA Pro (https://hex-rays.com/) — эталонный декомпилятор Hex-Rays; Binary Ninja (https://binary.ninja/) — API для автоматизации; radare2 (https://github.com/radareorg/radare2) / rizin (https://github.com/rizinorg/rizin) + Cutter (https://github.com/rizinorg/cutter) — консольный стек.
Результат: рабочая среда — Ghidra, x64dbg, DIE.
🩸 ШАГ 3. ПРАКТИКА
Порядок: 15–20 задач 1☆, затем 10–15 задач 2☆, затем 3☆.
- crackmes.one (https://crackmes.one/) — задачи по реверсу, сложность 1–6
- ROP Emporium (https://ropemporium.com/) — exploitation по шагам
Осваиваются: поиск точки входа, паттерн проверки пароля, простые анти-отладочные приёмы.
Результат: самостоятельно разбираешь небольшой бинарь.
🩸 ШАГ 4. СИСТЕМА
- pwn.college (https://pwn.college/) — бесплатные модули от ASU: ассемблер, основы RE, автопроверка, 15–25 задач на модуль
- OpenSecurityTraining2 (https://p.ost2.fyi/) — реверс C++, символьное исполнение, отладчики, UEFI
- RE-MA-Roadmap (https://github.com/x86byte/RE-MA-Roadmap) — roadmap от нуля до malware-аналитика
Результат: системная база для C++ и сложных форматов.
🩸 ШАГ 5. ПАЙПЛАЙН АНАЛИЗА БИНАРЯ
Порядок разбора реальных сэмплов. Перед запуском живого: виртуалка + снапшот, без общих папок и реальной сети.
1. Триаж без запуска: DIE — упаковщик/компилятор; FLOSS (https://github.com/mandiant/flare-floss) — строки, включая обфусцированные; capa (https://github.com/mandiant/capa) — capabilities с маппингом на ATT&CK
2. Распаковка: натив — x64dbg до OEP, дамп, IAT чинит Scylla (https://github.com/NtQuery/Scylla); .NET — de4dot-форк (https://github.com/kant2002/de4dot), разбор в dnSpyEx (https://github.com/dnSpyEx/dnSpy); без запуска на живой системе — Qiling (https://github.com/qilingframework/qiling)
3. Статика: Ghidra/IDA — декомпиляция, xrefs, переименование
4. Динамика: отладчик для проверки гипотез; Frida (https://frida.re/) — хуки на функции, снятие конфигов
5. Деобфускация: D-810 (https://gitlab.com/eshard/d810) — MBA и flattening в декомпиляторе IDA; эмуляция и трейсинг — Unicorn (https://github.com/unicorn-engine/unicorn), Qiling, angr (https://github.com/angr/angr)
6. Поведение: FakeNet-NG (https://github.com/mandiant/flare-fakenet-ng) — перехват трафика; CAPEv2 (https://github.com/kevoreilly/capev2) — сэндбокс; Speakeasy (https://github.com/mandiant/speakeasy) — эмуляция малвари и драйверов без VM
7. Диффинг версий: BinDiff (https://github.com/google/bindiff) / Diaphora (https://github.com/joxeankoret/diaphora) — что изменил вендор, где была дыра
8. Выход: YARA-правило (https://github.com/VirusTotal/yara) — сигнатура; IOC и отчёт
Результат: полный цикл разбора сэмпла — от триажа до YARA-правила.
ШАГ 6 — реверс через ИИ — во 2-м и 3-м сообщениях.
👻 [иишко](https://t.me/AlStack)
===MSG 2/4===
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (2/4)
🩸 ШАГ 6. РЕВЕРС ЧЕРЕЗ ИИ: MCP-СЕРВЕРЫ
Как это работает: агент (Claude Code, Codex, Cursor, Gemini CLI) подключается к дизассемблеру или отладчику через MCP и сам декомпилирует, ходит по xrefs, переименовывает, ставит бряки, снимает конфиги. Роль человека — направлять и валидировать.
IDA Pro:
- ida-pro-mcp (https://github.com/mrexodia/ida-pro-mcp) — 12.3к звёзд, от автора x64dbg: декомпиляция, xrefs, патчи, отладчик (включается ?ext=dbg)
- ida-mcp (https://github.com/HexRaysSA/ida-mcp) — официальный сервер Hex-Rays, MIT, требует IDA 9.4+ (https://docs.hex-rays.com/core/mcp)
- IDA-NO-MCP (https://github.com/P4nda0s/IDA-NO-MCP) — 2к звёзд: выгружает базу IDA в файлы для AI-клиента вместо verbose MCP
- ida-multi-mcp (https://github.com/MeroZemory/ida-multi-mcp) — несколько бинарей в одной сессии: дроппер, пейлоад, C2 рядом
- ida-mcp-rs (https://github.com/blacktop/ida-mcp-rs) — headless-сервер на Rust для пайплайнов
Ghidra:
- GhidraMCP (https://github.com/LaurieWired/GhidraMCP) — 10.2к звёзд, классика от LaurieWired
- ghidra-mcp (https://github.com/bethington/ghidra-mcp) — 4к звёзд: 200+ тулов, GUI-плагин и headless, эмуляция p-code, Docker
- ReVa (https://github.com/cyberkaida/reverse-engineering-assistant) — 840 звёзд, заточен под длинные задачи, минимум потери контекста
- GhidrAssistMCP (https://github.com/symgraph/GhidrAssistMCP) — MCP внутри процесса Ghidra
- GhidraGPT (https://github.com/weirdmachine64/GhidraGPT) — LLM внутри GUI Ghidra
- PyGhidra-MCP (https://github.com/clearbluejar/pyghidra-mcp) — CLI на PyGhidra
- OGhidra (https://github.com/llnl/OGhidra) — от Lawrence Livermore: LLM через Ollama или облачные API; в локальном режиме сэмплы не уходят в облако
radare2 и Binary Ninja:
- radare2-mcp (https://github.com/radareorg/radare2-mcp) — официальный MCP radare2
- r2ai (https://github.com/radareorg/r2ai) — LLM внутри radare2: объяснение функций, нейминг, поиск багов
- binary_ninja_mcp (https://github.com/fosdickio/binary_ninja_mcp) — мост Binja ↔ LLM
- binary-ninja-headless-mcp (https://github.com/mrphrazer/binary-ninja-headless-mcp) — headless, 181 тул
- Rikugan (https://github.com/buzzer-re/Rikugan) — агент внутри IDA и Binja: 60+ тулов, 12 скиллов, Ollama
Отладчики и память:
- x64dbg-mcp (https://github.com/SetsunaYukiOvO/x64dbg-mcp) — управление x64dbg/x32dbg: бряки, регистры, память
- cheatengine-mcp-bridge (https://github.com/miscusi-peek/cheatengine-mcp-bridge) — 1.5к звёзд: Cheat Engine как тул агента — скан памяти, пойнтер-цепочки, структуры
- windbg-mcp (https://github.com/memoryforensics1/windbg-mcp) — kernel-отладка: DbgEng, TTD, KDNET
Малварь, Android, .NET, Python:
- Qu1cksc0pe (https://github.com/CYB3RMX/Qu1cksc0pe) — 2к звёзд, all-in-one малварь-анализ со встроенным MCP
- Reversecore_MCP (https://github.com/sjkim1127/Reversecore_MCP) — radare2, YARA, LIEF, capa, angr, Volatility в одном MCP
- Arkana (https://github.com/JameZUK/Arkana) — 250+ тулов: вся лаба малварь-анализа за одним промптом
- remnux-mcp-server (https://github.com/REMnux/remnux-mcp-server) — дистрибутив REMnux как MCP
- jadx-ai-mcp (https://github.com/zinja-coder/jadx-ai-mcp) — 2.8к звёзд, AI внутри JADX
- apktool-mcp-server (https://github.com/zinja-coder/apktool-mcp-server) — Smali, ресурсы, пересборка APK
- de4py (https://github.com/Fadi002/de4py) — деобфускация Python + Ollama (CC BY-NC)
- disrobe (https://github.com/1-3-7/disrobe) — мультитул-деобфускатор: PyArmor, PyInstaller, obfuscator.io, UPX, WASM + MCP (платно для компаний)
- TriageMCP (https://github.com/eversinc33/TriageMCP) — быстрый статический триаж PE
Скиллы и агенты — в 3/4.
👻 [иишко](https://t.me/AlStack)
===MSG 3/4===
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (3/4)
🩸 ШАГ 6 (ПРОДОЛЖЕНИЕ). СКИЛЛЫ
Скилл = SKILL.md с методикой: агент получает не тул, а порядок действий. Кладётся в ~/.claude/skills: Claude Code, Codex, Cursor, Gemini CLI.
- reverse-skill (https://github.com/zhaoxuya520/reverse-skill) — 37.9к звёзд, роутер: маршрутизирует задачу — apk, ida, radare2, binary-ninja, dotnet, js, малварь + CTF-оркестратор на 42 скилла
- Anthropic-Cybersecurity-Skills (https://github.com/mukul975/Anthropic-Cybersecurity-Skills) — 33.4к звёзд: 817 скиллов по 34 доменам, привязка к ATT&CK, D3FEND, NIST CSF
- ctf-skills (https://github.com/ljagiello/ctf-skills) — 3.3к звёзд: pwn, crypto, reverse, forensics, OSINT
- android-reverse-engineering-skill (https://github.com/SimoneAvogadro/android-reverse-engineering-skill) — 7.9к звёзд: APK/XAPK, call chains, Retrofit/OkHttp
- skills от Trail of Bits (https://github.com/trailofbits/skills) — 7.2к звёзд: security research, поиск уязвимостей, аудиты
- Claude-Red (https://github.com/SnailSploit/Claude-Red) — 6.9к звёзд: offensive-скиллы от SQLi до EDR evasion
- Claude-Code-CyberSecurity-Skill (https://github.com/Masriyan/Claude-Code-CyberSecurity-Skill) — 22 скилла: реверс, threat hunting, purple team
- open-reverselab (https://github.com/LING71671/open-reverselab) — 1.2к звёзд: 100+ MCP-тулов Ghidra/Frida/x64dbg/Rizin + база знаний на 180+ статей
- REA (https://github.com/morluto/rea) — агент + скилл: от поведения приложения до нативных бинарей, управление evidence
Скиллы тоже атакуют: SkillSpector (https://github.com/NVIDIA/SkillSpector) от NVIDIA — 18.4к звёзд, сканер скиллов перед установкой: промпт-инъекции, эксфильтрация, supply-chain.
🩸 АГЕНТЫ
- agentic-malware-analysis (https://github.com/mrphrazer/agentic-malware-analysis) — Docker: Kali, 50+ RE-тулов, MCP-дизассемблеры. Бинарь на входе — структурный отчёт на выходе
- auto-re-agent (https://github.com/Dryxio/reagent) — 2к звёзд: реконструирует C/C++ из бинаря, генерирует кандидатов, собирает и гоняет тесты на паритет
- reverify (https://github.com/2akouwu/reverify) — 1.2к звёзд: слой проверки — агент предлагает, детерминированные тулы сверяют каждое утверждение с бинарём
- firefox-reverse (https://github.com/WhiteNightShadow/firefox-reverse) — 857 звёзд: Firefox со встроенным AI-реверс-агентом, трейс на уровне движка
- anything-analyzer (https://github.com/Mouseww/anything-analyzer) — 3.7к звёзд: воркстейшн — браузер + MITM + хуки + AI
- FIRERPA (https://github.com/firerpa/lamda) — 8.4к звёзд: полный контроль Android-устройств, Frida, MITM, 160+ API
- shannon (https://github.com/KeygraphHQ/shannon) — 48к звёзд, AI-пентестер веба и API (смежное)
🩸 ДАТАСЕТЫ И БЕНЧМАРКИ
- mcp-reversing-dataset (https://github.com/mrexodia/mcp-reversing-dataset) — задачи реверса, решённые LLM: тренировка и eval
- AgentRE-Bench (https://github.com/agentrebench/AgentRE-Bench) — бенчмарк LLM-реверса
- CrackMeBench (https://arxiv.org/abs/2605.10597) — бенчмарк агентов на crackme: выбор между Ghidra, angr, radare2
🩸 ЭТО УЖЕ РАБОТАЕТ
Big Sleep (https://projectzero.google/2024/10/from-naptime-to-big-sleep.html) — агент Project Zero и DeepMind нашёл 0-day в SQLite до релиза: stack buffer underflow, который не поймал фаззинг после 150 CPU-часов. За 2025 — ~20 0-day в open-source.
🩸 ОГРАНИЧЕНИЯ
- Агент уверенно ошибается в именах функций. Крипто, C2, авторизация — проверяй руками
- Упакованный сэмпл = слабый псевдокод = слабые выводы. Распаковывай до подачи
- Строки в бинарнике как промпт-инъекция против RE-агента (https://arxiv.org/abs/2605.30667): малварь встраивает команды для ассистента прямо в строки
Каталоги AI-реверса: awesome-ai-reverse (https://github.com/DiscoverBox/awesome-ai-reverse), Awesome-RE-MCP (https://github.com/crowdere/Awesome-RE-MCP), mcp-security-hub (https://github.com/FuzzingLabs/mcp-security-hub).
👻 [иишко](https://t.me/AlStack)
===MSG 4/4===
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (4/4)
🩸 ШАГ 7. СПЕЦИАЛИЗАЦИЯ
- Малварь: PMAT (https://github.com/HuskyHacks/PMAT-labs) — лабы к бесплатному курсу по триажу: сэмплы в VM, FakeNet-NG
- Прошивки: binwalk v3 (https://github.com/ReFirmLabs/binwalk) — распаковка, переписан на Rust; EMBA (https://github.com/e-m-b-a/emba) — полный анализ firmware: SBOM, уязвимости, эмуляция
- Android: jadx (https://github.com/skylot/jadx) + apktool (https://github.com/iBotPeaches/Apktool)
- CTF: ctftime.org (https://ctftime.org/), Flare-On от Mandiant — раз в год
🩸 МАТЕРИАЛЫ
- По-русски: intro-rev-ida-pro (https://yutewiyof.gitbook.io/intro-rev-ida-pro) — перевод Рикардо Нарвахи «Введение в реверсинг с нуля, используя IDA PRO»
- Книги: Practical Malware Analysis, Practical Reverse Engineering, The Ghidra Book; бесплатно — Reverse Engineering for Beginners (https://beginners.re/)
- Библиография: Awesome-Reversing (https://github.com/ReversingID/Awesome-Reversing)
- Ютуб: OALabs (https://www.youtube.com/@OALabs), LiveOverflow (https://www.youtube.com/@LiveOverflow), Gynvael Coldwind (https://www.youtube.com/@GynvaelColdwind)
🩸 ПРО ЛИЦЕНЗИЮ IDA
Лицензия IDA — офлайн: .hexlic, JSON с подписью, публичный ключ зашит в бинарь (схема официально не документируется, известна из разборов сообщества). В 2025 утекала бета 9.2, по форумам гуляли генераторы лицензий — под пропатченные бинарники; keygen с настоящим приватным ключом публично не подтверждён.
- Защитникам: офлайн-схема «ключ в бинаре + подпись» ломается патчем бинаря, а не только кражей ключа. Работают серверная валидация и ротация
- Реверсеру: точку проверки подписи ищут по xrefs на байты открытого ключа/модуля (RSA-модуль, 0x10001)
- Пропатченная сборка — бинарь, изменённый анонимом, регулярный вектор доставки малвари. Бесплатно и легально: IDA Free (https://hex-rays.com/ida-free/), Ghidra, академические лицензии Hex-Rays через вуз
👻 [иишко](https://t.me/AlStack)

View File

@@ -0,0 +1,55 @@
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026
Полный путь от нуля до самостоятельного анализа бинарников: база, инструменты, пайплайн, реверс через ИИ, материалы. Всё бесплатное или с free-версией.
🩸 ШАГ 1. БАЗА
Без этого инструменты бесполезны:
- C — указатели, память, структуры, строки
- Ассемблер x86-64 — регистры, стек, calling conventions, переходы
- Compiler Explorer (https://godbolt.org/) — пишешь функцию на C, видишь её ассемблер. Лучший способ понять, что делает компилятор
- Формат PE (https://learn.microsoft.com/windows/win32/debug/pe-format) — заголовки, секции, таблица импортов
Результат: свободно читаешь ассемблерный листинг простой функции.
🩸 ШАГ 2. ИНСТРУМЕНТЫ
- Ghidra (https://github.com/NationalSecurityAgency/ghidra) — дизассемблер + декомпилятор, бесплатный. Основной инструмент для обучения, скриптится на Python через Ghidrathon (https://github.com/mandiant/Ghidrathon)
- x64dbg (https://x64dbg.com/) — отладчик Windows
- Detect It Easy (https://github.com/horsicq/Detect-It-Easy) — определение компилятора, протектора, упаковщика
- HxD (https://mh-nexus.de/hxd/) — hex-редактор
Позже пригодятся: IDA Pro (https://hex-rays.com/) — эталонный декомпилятор Hex-Rays; Binary Ninja (https://binary.ninja/) — API для автоматизации; radare2 (https://github.com/radareorg/radare2) / rizin (https://github.com/rizinorg/rizin) + Cutter (https://github.com/rizinorg/cutter) — консольный стек.
🩸 ШАГ 3. ПРАКТИКА
- crackmes.one (https://crackmes.one/) — задачи по реверсу, сложность 1–6
- Порядок: 15–20 задач 1☆, затем 10–15 задач 2☆, затем 3☆
- Осваиваются: поиск точки входа, паттерн проверки пароля, простые анти-отладочные приёмы
- ROP Emporium (https://ropemporium.com/) — exploitation по шагам
Результат: самостоятельно разбираешь небольшой бинарь от запуска до ответа.
🩸 ШАГ 4. СИСТЕМА
- pwn.college (https://pwn.college/) — бесплатные модули от ASU: ассемблер, основы RE, автопроверка, 15–25 задач на модуль
- OpenSecurityTraining2 (https://p.ost2.fyi/) — реверс C++, символьное исполнение, отладчики, UEFI
- RE-MA-Roadmap (https://github.com/x86byte/RE-MA-Roadmap) — roadmap от нуля до malware-аналитика
🩸 ШАГ 5. ПАЙПЛАЙН АНАЛИЗА БИНАРЯ
Порядок, по которому разбирают реальные сэмплы. Перед запуском чего-либо живого: виртуалка + снапшот, без общих папок и реальной сети.
1. Триаж без запуска: DIE — упаковщик/компилятор; FLOSS (https://github.com/mandiant/flare-floss) — строки, включая обфусцированные; capa (https://github.com/mandiant/capa) — capabilities с маппингом на ATT&CK
2. Распаковка: натив — x64dbg до OEP, дамп, IAT чинит Scylla (https://github.com/NtQuery/Scylla); .NET — de4dot-форк (https://github.com/kant2002/de4dot), разбор в dnSpyEx (https://github.com/dnSpyEx/dnSpy); без запуска — Qiling (https://github.com/qilingframework/qiling)
3. Статика: Ghidra/IDA — декомпиляция, xrefs, переименование
4. Динамика: отладчик для проверки гипотез; Frida (https://frida.re/) — хуки на функции, снятие конфигов
5. Деобфускация: D-810 (https://gitlab.com/eshard/d810) — MBA и flattening в декомпиляторе IDA; эмуляция и трейсинг — Unicorn (https://github.com/unicorn-engine/unicorn), Qiling, angr (https://github.com/angr/angr)
6. Поведение: FakeNet-NG (https://github.com/mandiant/flare-fakenet-ng) — перехват трафика; CAPEv2 (https://github.com/kevoreilly/capev2) — сэндбокс; Speakeasy (https://github.com/mandiant/speakeasy) — эмуляция малвари и драйверов без VM
7. Диффинг версий: BinDiff (https://github.com/google/bindiff) / Diaphora (https://github.com/joxeankoret/diaphora) — что изменил вендор, где была дыра
8. Выход: YARA-правило (https://github.com/VirusTotal/yara), IOC, отчёт
Шаг 6 — реверс через ИИ — во 2-м и 3-м сообщениях.
👻 [иишко](https://t.me/AlStack)

View File

@@ -0,0 +1,48 @@
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (2/4)
🩸 ШАГ 6. РЕВЕРС ЧЕРЕЗ ИИ: MCP-СЕРВЕРЫ
Как это работает: агент (Claude Code, Codex, Cursor, Gemini CLI) подключается к дизассемблеру или отладчику через MCP и сам декомпилирует, ходит по xrefs, переименовывает, ставит бряки, снимает конфиги. Ты направляешь и валидируешь.
IDA Pro:
- ida-pro-mcp (https://github.com/mrexodia/ida-pro-mcp) — 12.3к звёзд, от автора x64dbg: декомпиляция, xrefs, патчи, отладчик
- ida-mcp (https://github.com/HexRaysSA/ida-mcp) — официальный сервер Hex-Rays, MIT, требует IDA 9.4+ (https://docs.hex-rays.com/core/mcp)
- IDA-NO-MCP (https://github.com/P4nda0s/IDA-NO-MCP) — 2к звёзд: выгружает базу IDA в файлы для AI-клиента вместо verbose MCP
- ida-multi-mcp (https://github.com/MeroZemory/ida-multi-mcp) — несколько бинарей в одной сессии: дроппер, пейлоад, C2 рядом
- ida-mcp-rs (https://github.com/blacktop/ida-mcp-rs) — headless-сервер на Rust для пайплайнов
Ghidra:
- GhidraMCP (https://github.com/LaurieWired/GhidraMCP) — 10.2к звёзд, классика от LaurieWired
- ghidra-mcp (https://github.com/bethington/ghidra-mcp) — 4к звёзд: 200+ тулов, GUI-плагин и headless, эмуляция p-code, Docker
- ReVa (https://github.com/cyberkaida/reverse-engineering-assistant) — 840 звёзд, заточен под длинные задачи, минимум потери контекста
- GhidrAssistMCP (https://github.com/symgraph/GhidrAssistMCP) — MCP внутри процесса Ghidra
- GhidraGPT (https://github.com/weirdmachine64/GhidraGPT) — LLM внутри GUI Ghidra
- PyGhidra-MCP (https://github.com/clearbluejar/pyghidra-mcp) — CLI на PyGhidra
- OGhidra (https://github.com/llnl/OGhidra) — от Lawrence Livermore: локальные LLM через Ollama, сэмплы не уходят в облако
radare2 и Binary Ninja:
- radare2-mcp (https://github.com/radareorg/radare2-mcp) — официальный MCP radare2
- r2ai (https://github.com/radareorg/r2ai) — LLM внутри radare2: объяснение функций, нейминг, поиск багов
- binary_ninja_mcp (https://github.com/fosdickio/binary_ninja_mcp) — мост Binja ↔ LLM
- binary-ninja-headless-mcp (https://github.com/mrphrazer/binary-ninja-headless-mcp) — headless, 180 тулов
- Rikugan (https://github.com/buzzer-re/Rikugan) — агент внутри IDA и Binja: 60+ тулов, 12 скиллов, Ollama
Отладчики и память:
- x64dbg-mcp (https://github.com/SetsunaYukiOvO/x64dbg-mcp) — управление x64dbg/x32dbg: бряки, регистры, память
- cheatengine-mcp-bridge (https://github.com/miscusi-peek/cheatengine-mcp-bridge) — 1.5к звёзд: Cheat Engine как тул агента — скан памяти, пойнтер-цепочки, структуры
- windbg-mcp (https://github.com/memoryforensics1/windbg-mcp) — kernel-отладка: DbgEng, TTD, KDNET
Малварь, Android, .NET, Python:
- Qu1cksc0pe (https://github.com/CYB3RMX/Qu1cksc0pe) — 2к звёзд, all-in-one малварь-анализ со встроенным MCP
- Reversecore_MCP (https://github.com/sjkim1127/Reversecore_MCP) — radare2, YARA, LIEF, capa, angr, Volatility в одном MCP
- Arkana (https://github.com/JameZUK/Arkana) — 250+ тулов: вся лаба малварь-анализа за одним промптом
- remnux-mcp-server (https://github.com/REMnux/remnux-mcp-server) — дистрибутив REMnux как MCP
- jadx-ai-mcp (https://github.com/zinja-coder/jadx-ai-mcp) — 2.8к звёзд, AI внутри JADX
- apktool-mcp-server (https://github.com/zinja-coder/apktool-mcp-server) — Smali, ресурсы, пересборка APK
- de4py (https://github.com/Fadi002/de4py) — деобфускация Python + Ollama
- disrobe (https://github.com/1-3-7/disrobe) — мультитул-деобфускатор: PyArmor, PyInstaller, obfuscator.io, UPX, WASM + MCP
- TriageMCP (https://github.com/eversinc33/TriageMCP) — быстрый статический триаж PE
Скиллы и агенты — в 3/4.
👻 [иишко](https://t.me/AlStack)

View File

@@ -0,0 +1,46 @@
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (3/4)
🩸 ШАГ 6 (ПРОДОЛЖЕНИЕ). СКИЛЛЫ
Скилл = SKILL.md с методикой: агент получает не тул, а порядок действий. Кладётся в ~/.claude/skills, работает в Claude Code, Codex, Cursor, Gemini CLI.
- reverse-skill (https://github.com/zhaoxuya520/reverse-skill) — 37.9к звёзд, роутер: маршрутизирует задачу — apk, ida, radare2, binary-ninja, dotnet, js, малварь + CTF-оркестратор на 42 скилла
- Anthropic-Cybersecurity-Skills (https://github.com/mukul975/Anthropic-Cybersecurity-Skills) — 33.4к звёзд: 817 скиллов по 29 доменам, привязка к ATT&CK, D3FEND, NIST CSF
- ctf-skills (https://github.com/ljagiello/ctf-skills) — 3.3к звёзд: pwn, crypto, reverse, forensics, OSINT
- android-reverse-engineering-skill (https://github.com/SimoneAvogadro/android-reverse-engineering-skill) — 7.9к звёзд: APK/XAPK, call chains, Retrofit/OkHttp
- skills от Trail of Bits (https://github.com/trailofbits/skills) — 7.2к звёзд: security research, поиск уязвимостей, аудиты
- Claude-Red (https://github.com/SnailSploit/Claude-Red) — 6.9к звёзд: offensive-скиллы от SQLi до EDR evasion
- Claude-Code-CyberSecurity-Skill (https://github.com/Masriyan/Claude-Code-CyberSecurity-Skill) — 22 скилла: реверс, threat hunting, purple team
- open-reverselab (https://github.com/LING71671/open-reverselab) — 1.2к звёзд: 100+ MCP-тулов Ghidra/Frida/x64dbg/Rizin + база знаний на 194 статьи
- REA (https://github.com/morluto/rea) — агент + скилл: от поведения приложения до нативных бинарей, с управлением evidence
Скиллы тоже атакуют: SkillSpector (https://github.com/NVIDIA/SkillSpector) от NVIDIA — 18.4к звёзд, сканер скиллов перед установкой: промпт-инъекции, эксфильтрация, supply-chain. Ставишь чужой скилл — проверяй.
🩸 АГЕНТЫ
- agentic-malware-analysis (https://github.com/mrphrazer/agentic-malware-analysis) — Docker: Kali, 50+ RE-тулов, MCP-дизассемблеры. Бинарь на входе — структурный отчёт на выходе
- auto-re-agent (https://github.com/Dryxio/reagent) — 2к звёзд: реконструирует C/C++ из бинаря, генерирует кандидатов, собирает и гоняет тесты на паритет
- reverify (https://github.com/2akouwu/reverify) — 1.2к звёзд: слой проверки — агент предлагает, детерминированные тулы сверяют каждое утверждение с бинарём
- firefox-reverse (https://github.com/WhiteNightShadow/firefox-reverse) — 855 звёзд: Firefox со встроенным AI-реверс-агентом, трейс на уровне движка
- anything-analyzer (https://github.com/Mouseww/anything-analyzer) — 3.7к звёзд: воркстейшн — браузер + MITM + хуки + AI
- FIRERPA (https://github.com/firerpa/lamda) — 8.4к звёзд: полный контроль Android-устройств, Frida, MITM, 160+ API
- shannon (https://github.com/KeygraphHQ/shannon) — 47к звёзд, AI-пентестер веба и API. Смежное с бинарным реверсом
🩸 ДАТАСЕТЫ И БЕНЧМАРКИ
- mcp-reversing-dataset (https://github.com/mrexodia/mcp-reversing-dataset) — задачи реверса, решённые LLM: тренировка и eval
- AgentRE-Bench (https://github.com/agentrebench/AgentRE-Bench) — бенчмарк LLM-реверса
- CrackMeBench (https://arxiv.org/abs/2605.10597) — бенчмарк агентов на crackme: выбор между Ghidra, angr, radare2
🩸 ЭТО УЖЕ РАБОТАЕТ
Big Sleep (https://projectzero.google/2024/10/from-naptime-to-big-sleep.html) — агент Project Zero и DeepMind нашёл 0-day в SQLite до релиза: stack buffer underflow, который не поймал фаззинг после 150 CPU-часов. За 2025 — ~20 новых 0-day в open-source.
🩸 ОГРАНИЧЕНИЯ
- Агент уверенно ошибается в именах функций. Крипто, C2, авторизация — проверяй руками
- Упакованный сэмпл = слабый псевдокод = слабые выводы. Распаковывай до подачи
- Строки в бинарнике как промпт-инъекция против RE-агента (https://arxiv.org/abs/2605.30667) — малварь учится «разговаривать» с твоим ассистентом
Каталоги всего AI-реверса: awesome-ai-reverse (https://github.com/DiscoverBox/awesome-ai-reverse), Awesome-RE-MCP (https://github.com/crowdere/Awesome-RE-MCP), mcp-security-hub (https://github.com/FuzzingLabs/mcp-security-hub).
👻 [иишко](https://t.me/AlStack)

View File

@@ -0,0 +1,25 @@
🩸 РЕВЕРС-ИНЖИНИРИНГ С НУЛЯ: ГАЙД 2026 (4/4)
🩸 ШАГ 7. СПЕЦИАЛИЗАЦИЯ
- Малварь: PMAT (https://github.com/HuskyHacks/PMAT-course) — бесплатный курс по триажу. Лаба: VM + FakeNet-NG
- Прошивки: binwalk v3 (https://github.com/ReFirmLabs/binwalk) — распаковка, переписан на Rust; EMBA (https://github.com/e-m-b-a/emba) — полный анализ firmware: SBOM, уязвимости, эмуляция
- Android: jadx (https://github.com/skylot/jadx) + apktool (https://github.com/iBotPeaches/Apktool)
- CTF: ctftime.org (https://ctftime.org/), Flare-On от Mandiant — раз в год
🩸 МАТЕРИАЛЫ
- По-русски: intro-rev-ida-pro (https://yutewiyof.gitbook.io/intro-rev-ida-pro) — «Реверсинг с IDA Pro от 0» Рикардо Нарвахи, полный перевод
- Книги: Practical Malware Analysis, Practical Reverse Engineering, The Ghidra Book; Reverse Engineering for Beginners (https://beginners.re/) — бесплатно
- Библиография: Awesome-Reversing (https://github.com/ReversingID/Awesome-Reversing)
- Ютуб: OALabs, LiveOverflow, Gynvael Coldwind
🩸 ПРО ЛИЦЕНЗИЮ IDA
По публичным сообщениям 2025: лицензия IDA — офлайн-проверка, JSON с подписью, публичный ключ зашит в бинарь. Утёк keygen с приватным ключом, Hex-Rays в 9.1+ сменила схему подписи.
- Защитникам: офлайн-схема «ключ в бинаре + подпись» ломается подменой ключа. Работают серверная валидация и ротация
- Реверсеру: точка проверки подписи ищется через xrefs на крипто-константы
- Пропатченная сборка — бинарь, изменённый анонимом, регулярный вектор доставки малвари. Бесплатно и легально: IDA Free (https://hex-rays.com/ida-free/), Ghidra, академические лицензии Hex-Rays
👻 [иишко](https://t.me/AlStack)

View File

@@ -0,0 +1,12 @@
import json, os
P = "C:/Users/User/tmp/octopusx_keys.json"
d = json.load(open(P, encoding="utf-8"))
keys = d["keys"]
print("before:", len(keys), "| first:", keys[0][:14], "| last:", keys[-1][:14])
d["keys"] = list(reversed(keys)) # newest first
d["current_index"] = 0
json.dump(d, open(P, "w", encoding="utf-8"), ensure_ascii=False, indent=1)
# bump mtime to force hot reload
os.utime(P)
print("reversed. now first:", d["keys"][0][:14], "| last:", d["keys"][-1][:14])