ASSEMBLER CASINO - SECURITY NOTES
=================================

Что уже защищено
----------------
1. Установщик проверяет SHA-256 архива игры внутри PokerGameSetup.exe.
   Если после сборки кто-то подменит payload установщика, установка остановится.

2. Установщик не распаковывает файлы наружу через пути вида ../.
   Каждый путь из архива проверяется, чтобы он оставался внутри выбранной папки установки.

3. Сохранения лежат отдельно в AppData.
   Это не защита от взлома, но защищает их от случайного удаления при переустановке.

4. Лаунчер Assembler Casino.exe проверяет SHA-256 bin/poker.exe перед запуском.
   Если основной игровой exe подменили после установки, лаунчер остановит запуск.

5. Сохранения получили простую checksum/signature.
   Новые save-файлы пишутся с подписью по первым 276 байтам и соли в коде.
   Старые 276-байтные сохранения читаются для совместимости, а новые поврежденные/измененные
   сохранения не загружают банк и статистику.

Что это НЕ защищает
-------------------
1. Это не DRM.
   Если игра лежит на компьютере игрока, ее можно дизассемблировать, патчить и запускать под отладчиком.

2. Это не цифровая подпись издателя.
   Чтобы Windows показывал доверенного автора и чтобы было сложнее незаметно подменить сам PokerGameSetup.exe,
   нужен Authenticode-сертификат и подпись через signtool.

3. Подпись сохранений не является криптографической защитой.
   Она ловит грубую ручную правку и случайное повреждение, но патчер с дизассемблером может
   найти алгоритм и пересчитать подпись.

Что можно добавить следующим слоем
---------------------------------
1. Authenticode:
   подписывать PokerGameSetup.exe, Assembler Casino.exe, Uninstall Assembler Casino.exe и bin/poker.exe.

2. Release manifest:
   хранить список SHA-256 всех файлов релиза в docs/RELEASE_MANIFEST.txt.

3. Более сильная защита сохранений:
   вынести save version, HMAC-подобную проверку и явную метку tampered-профиля.

Честный вывод
-------------
Для офлайн-казино цель защиты - не сделать невозможный взлом, а поймать случайную/грубую подмену файлов,
защитить установщик от повреждения и усложнить ручное редактирование прогресса.
