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