Предисловие:
Хотел поиграть в Shining Force 3, но последние версии SSF у меня крашились. Пришлось расчехлить старую классику, но там была корявая поддержка образов и на интерфейс больно было смотреть. Пришлось брать напильник.
Что в итоге получилось:
Получились сборки, в которых не замыленный интерфейс на 1080p 15" и не нужен виртуальный привод, работает на Win7 (x86) - Win11.
Как пользоваться:
Через SSFHelper.exe запустить m3u плейлист или chd. Антивирус может агрится на SSFHelper, с этим ничего не поделаешь. Исходники
есть на гитхабе.
"
Общий вердикт: НЕ вирус, это легитимный проект — SSF Helper для эмулятора Sega Saturn.
Детальный анализ:
Код работает без требования admin прав:
Userspace операции:
CreateProcessA — создание обычного процесса (не требует admin)
VirtualAllocEx, WriteProcessMemory, SetThreadContext — работают между userspace процессами одного пользователя
GetAsyncKeyState, keybd_event — стандартные input API для приложений
CreateThread — обычный threading
Легитимные компоненты:
Код предназначен для запуска эмулятора SSF с поддержкой CHD (формат архивирования дисков) и M3U плейлистов. Функции включают чтение конфига, переключение между дисками и обработку SCSI команд для виртуального привода.
Почему антивирусы могут быть подозрительны:
DLL Injection — основной механизм работы. Код создает процесс в suspended состоянии, внедряет shellcode и перенаправляет execution flow. Это классическая техника, используемая как в легитимных, так и в вредоносных программах.
Манипуляция памятью процесса — VirtualAllocEx, WriteProcessMemory, модификация контекста потока через SetThreadContext. Вредонос также это использует.
Перехват клавиатуры — GetAsyncKeyState, keybd_event. Хотя здесь это для игровых целей, вредонос так же может мониторить ввод.
Создание потока низкого уровня — CreateThread для опроса клавиатуры (для переключения дисков).
Что указывает на легитимность:
Открытый исходный код с понятной структурой
Наличие конфига (ssfhelper.ini) с документированными параметрами
Debug-сообщения (OutputDebugStringA) показывают прозрачность операций
Функции связаны с эмуляцией (работа с CHD, TOC таблицы, SCSI команды)
Нет попыток скрыться, шифрования или обфускации
Нет контакта с внешними серверами
Анализ поведения на Virustotal
https://www.virustotal.com/gui/file/79429f9b3ff26a40360addf38da18234d6552e25102365aef85e8ed2155aef7e/detection
"Легитимные действия:
✓ Открытие диалога выбора файла ("Select Sega Saturn disc image or M3U playlist")
✓ Чтение реестра пользователя (Explorer settings, Recent files)
✓ Создание процесса SSF.exe в suspended состоянии
✓ Запись в кэши иконок Windows (нормальное поведение)
✓ Работа с файловой системой C:\ProgramData (стандартные пути)
Сетевые операции:
DNS запросы:
- nexusrules.officeapps.live.com (Microsoft Office)
- svc.ha-teams.office.com (Microsoft Teams)
Это просто системные сервисы Windows, запущенные в фоне. Не связаны с SSFHelper.
Ключевые индикаторы легитимности:
Низкий процент детекции (7/72) ✓ Ложные срабатывания
Нет C2 коммуникации ✓ Нет command-and-control
Нет экспорта данных ✓ Не крадет файлы
Нет persistence механизма ✓ Не прячется в системе
Поведение соответствует коду ✓ DLL injection для эмулятора
Файл открыт для диалога выбора ✓ Ожидаемое поведение
Теги: "idle obfuscated" ≈ Нормально для userspace injection
Почему 7 вендоров флагят:
Антивирусы используют эвристические сигнатуры. Process injection + shellcode триггерят алерты, даже если это легитимно.
Итоговый вердикт:
НЕ ВИРУС. Это специализированный инструмент для запуска SSF эмулятора с поддержкой M3U/CHD. Поведение полностью соответствует исходному коду. Антивирусы флагят из-за техник (injection), а не из-за вредоносности.
Используйте с уверенностью, если вы доверяете источнику." (С) Claude Haiku 4.5: анализ main.cpp sptd.c и результатов Virustotal.
m3u плейлисты создать можно простым блокнотом, например написать:
Shining Force III Scenario 1 (English v25.1)[Undub].chd
Shining Force III Scenario 2 (English v25.1).chd
Shining Force III Scenario 3 (English v25.1).chd
Shining Force III Premium Disc (English v25.1).chdИ сохранить как Shining Force III Collection.m3u. Потом, в SSFHelper.exe можно открывать m3u как ром, а образы переключаются [ или ] (или Page Up/Down) и потом клавишей F1 (открыть), F2 (закрыть). Последний запущенный образ запоминает, при следующем открытии m3u загружается тот диск где остановился.
Для SSF_012 не нужно нажимать F1 и F2, должно автоматически переключать образ нажатием ] или [.
Я думаю, что кто пользуется LaunchBox или другими оболочками, вроде Emulation Station, тому тоже может пригодится. Такие оболочки обычно ставят на слабое железо типо Intel N100 и другие эмуляторы Saturn там не потянет. Вот там польза от плейлистов очевидная, что бы многодисковые игры были одной страницей.
Проверял на старом компе с Win7 и новее. На актуальных Ryzen в SSF_012_beta_R4 есть проблема с синхронизацией потоков, из-за чего багуют спрайты (черные полосы). На старых Core2Duo идеально. В любом случае, на Ryzen зачем вам SSF R12, там хорошо будет работать версия R16 или Mednafen.
SSF_R16 обычно хорошо работает на большинстве систем. SSF_012_beta_R4 лучше для старых с Core2Duo.
SSF_011 немного экстремальная версия, но там встроены классические фильтры типо Blargg's NTSC.
На SSF_R16 лучше использовать ReShade с шейдером Satpixie.
Если эмуляторы глючат или проблемы с запуском, то удалите конфиги SSF.ini и settings.ini в папке эмуля, запустите один раз (пересоздать конфиг) и потом настройте.
Если ссылки умрут, то через webarchive найти нужные версии эмулей и загрузчик chd взять на
гитхабе, там же патчи на интерфейс к этим трём версиям. Гемморно, но кому будет очень надо, тот сможет собрать этот паззл.