- C# 74.6%
- JavaScript 21.2%
- Python 1.8%
- PowerShell 1.5%
- Batchfile 0.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .gitignore | ||
| app.manifest | ||
| build.cmd | ||
| LICENSE | ||
| logo.png | ||
| logo.py | ||
| Program.cs | ||
| README.md | ||
| release.cmd | ||
| release.ps1 | ||
| screen.png | ||
| sdm.ico | ||
| sdm.js | ||
| Sync.cs | ||
| Ui.cs | ||
| Updater.cs | ||
| Web.cs | ||
Steam Drun Mod
набор мод утилит для стима.
Друн Mod. меняет всех друзей на друней прям везде. список друзей, магазин, сообщество, оверлей, чат, профили, даже чужие комменты
список друзей → список друней друзья играют → друнья играют добавить в друзья → добавить в друнья
Steam Hours Faker. сканирует библиотеку, выбираешь игру и делаешь с часами что хочешь: спрятать (везде будет ??? ч.), поставить своё число, накинуть сверху к реальным. накинутые растут дальше пока играешь. меняется везде где стим показывает часы: библиотека, профиль, магазин, список игр. только у тебя на экране, стим на сервере хранит настоящие
как юзать
- качаешь sdm.exe из releases
- запускаешь. если пишет что стим без devtools порта, жми «включить devtools порт» внизу (попросит админа, стим лежит в program files) и перезапусти стим
- друн mod → «в клиенте стима» патчит файлы (тоже админ, тоже перезапуск), «в вебе» работает сразу
- steam hours faker → ждёшь пока подгрузит иконки, тыкаешь игру, выбираешь режим, применить
закрываешь окно оно уходит в трей и оттуда следит за стимом. галка автозапуск чтобы стартовало с виндой
что за devtools порт
магазин, сообщество, профили стим грузит с сервера, там файлы не подправишь. поэтому в папку стима кладётся файл .cef-enable-remote-debugging, после перезапуска стим открывает порт 8080 с devtools протоколом (тот же что у хрома). exe цепляется к нему и в каждую вкладку подсовывает sdm.js, который правит текст прямо в дом дереве. на новые страницы и фреймы тоже, там mutation observer. без порта работает только патч файлов, ни веб-друни ни часы не будут
значок sdm у ников
все кто юзает мод лежат в общей базе, и у каждого из них рядом с ником везде висит логотип sdm: профиль, комменты, список друней, чат, мини-профили. у создателя вместо логотипа ключ. база в firebase, сервера у мода нет. exe при старте стима кладёт туда свой steamid и раз в час забирает список, больше в сеть не ходит. выключить нельзя, в этом смысл
в окнах клиента у ников нет steamid, там значок ловится по нику и аватарке из friendStore стима, поэтому в клиенте он только у друней. в вебе у всех
база это realtime database с такими правилами (u юзеры, rel релизы, туда пишет только секрет):
{
"rules": {
"u": {
".read": true,
"$id": {
".write": true,
".validate": "$id.matches(/^7656119[0-9]{10}$/) && newData.isString() && newData.val().length < 64"
}
},
"rel": {
".read": true,
".write": false
}
}
}
адрес базы зашит в Program.cs
обновления
при старте стима и дальше раз в десять минут exe смотрит версию в firebase (rel/v). если есть новее, в окне стима вылезает уведомление с кнопкой «обновить», по ней exe качает sdm.exe оттуда же (rel/exe, base64), подменяет себя и перезапускается. в самом окне sdm тоже есть ссылка
гитхаб для обновлений не используется: он прячет репу от всех кроме владельца, и релизы оттуда никто скачать не может
выложить новую версию: release.cmd. собирает, кладёт exe и версию в базу. секрет базы (project settings → service accounts → database secrets) лежит в secret.txt рядом, он в gitignore
файлы
Program.cs- патч локализации, настройки часов, mainWeb.cs- devtools протокол, инъекция скрипта во вкладкиUi.cs- окно, всё нарисовано руками через gdiUpdater.cs- проверка версии в firebase и самообновлениеrelease.cmd+release.ps1- собрать и выложить новую версию в firebaseSync.cs- база тех кто юзает мод, firebasesdm.js- то что живёт внутри стима: друни, часы, значки у никовlogo.py- генерит sdm.ico и logo.png (нужен pillow)
настройки лежат в реестре HKCU\Software\sdm. оригиналы локализации рядом с файлами как .drunbak, откат тоже кнопкой
собрать самому
build.cmd
компилятор есть в любой винде начиная с 7, ничего ставить не надо. exe весит ~110кб, из них половина иконка
если стим обновился
стим при обновлении может перезаписать файлы локализации и друнья в клиенте пропадут. просто включи тумблер ещё раз. веб часть и часы от обновлений не зависят
с millennium
работает, порт 8080 они делят нормально
лицензия
mit