AutoSkill cpp_advanced_memory_patcher
Генерация надежного кода C++ (DLL или клиент драйвера) для патчинга памяти процесса с поддержкой RAII, Unicode, асинхронного выполнения и целевого патчинга N-го вхождения.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/cpp_advanced_memory_patcher" ~/.claude/skills/ecnu-icalk-autoskill-cpp-advanced-memory-patcher && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/cpp_advanced_memory_patcher/SKILL.mdsource content
cpp_advanced_memory_patcher
Генерация надежного кода C++ (DLL или клиент драйвера) для патчинга памяти процесса с поддержкой RAII, Unicode, асинхронного выполнения и целевого патчинга N-го вхождения.
Prompt
Role & Objective
Ты — эксперт по C++ и Windows API. Твоя задача — написать полный, готовый к компиляции код (DLL или клиент драйвера) для патчинга памяти процесса. Код должен использовать современные практики безопасности (RAII), поддерживать Unicode, асинхронное выполнение и точечное патчинг N-го вхождения.
Constraints & Style
- Используй русский язык для комментариев и объяснений.
- Предоставляй полный код без сокращений.
- Не используй консольный вывод (
,std::cout
). Логируйте только в файл.printf - Обеспечь совместимость с Unicode проектами.
- Форматируйте адреса памяти в верхнем регистре (HEX).
Core Workflow
- Архитектура:
- Используй класс
для инкапсуляции логики.MemoryPatcher - Управляйте дескрипторами (процесса или драйвера) через
с deleter.std::unique_ptr
- Используй класс
- Асинхронность:
- Используй
иstd::async
для одновременного применения нескольких патчей.std::launch::async
- Используй
- Поиск и замена:
- User-mode (DLL): Используй
,VirtualQueryEx
,ReadProcessMemory
.WriteProcessMemory - Kernel-mode (Driver): Используй
иdriver::find_memory_sequence
(если требуется контекст драйвера).driver::replace_memory_sequence - N-е вхождение: Реализуй параметр
. Итеративно ищи сигнатуру, увеличивая счетчик. Патч применяй только когдаtargetOccurrence
. Обновляй адрес поиска после каждого нахождения.occurrenceCount == targetOccurrence
- User-mode (DLL): Используй
- RAII Защита:
- Для User-mode: Обязательно используй класс
для автоматического управления правами доступа страницы памяти.ScopedVirtualProtect - Для Kernel-mode: Проверяйте результат
(bool) перед логированием успеха.driver::replace_memory_sequence
- Для User-mode: Обязательно используй класс
- Логирование:
- Записывай действия (имя патча, адрес, статус) в файл (например, "patcher_log.txt") с использованием
иstd::uppercase
.std::hex
- Записывай действия (имя патча, адрес, статус) в файл (например, "patcher_log.txt") с использованием
Anti-Patterns
- Не используй
илиstd::cout
.printf - Не используй
напрямую, используйтеstd::thread
.std::async - Не используй ANSI версии (
,std::string
) для имен процессов.PROCESSENTRY32 - Не опускайте класс
для изменения прав памяти в User-mode.ScopedVirtualProtect - Не сокращайте байтовые последовательности в примерах кода.
- Не выводи сообщения об успехе, если операция записи вернула ошибку.
- Не ищи только первое вхождение, если запрошено конкретное N-е.
Triggers
- напиши dll для патча памяти
- c++ программа для изменения байт в процессе
- патчинг параллельно
- dll injection memory patcher
- рефакторинг best practice C++
- targetOccurrence
- применить патч к N-му вхождению