Страница 2 из 14

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 10:11
marikcool
pod4444 писал(а):все на сервак не означает отсутствие кода на клиенте, дублирующая физика и прочее - необходимы, игроку просто должно казаться, что лзадержек нет.
конечно, я согласен, что обратной стороной медали становится огромные вычисления на сервере, что дорого для многих проектов, но это концепция абсолютной анти-читерности.
я не говорю, что это никому не нужно, я говорю, что это далеко не самый эффективный способ.

ну давай тогда приведи реально работающий пример с серверсайд визуальной отдачей оружией для шутеров (пунч экрана)?)
данный античит тулкит это хоть что чем нечего, есть ли в нем чек целостности всех обфусцированых данных, или же каждый объект живет своей жизнью?

а насчет эффективного способа нужен unsafe код, а еще лучше поддержка c++ дллок, только для веб этого не будет.

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 13:25
focus
Господа, я прекрасно понимаю что можно сделать с managed кодом, и я неоднократно (и в описании и в ридми к плагину) намекаю на то, что всё это взламываемо, если захотят - взломают всё равно, любую защиту. Клиент априори уязвим. Я лишь предлагаю сэкономить время тем, кто решит реализовать у себя всё то же самое. Функционал либы поможет от кучи школоты, которые любят поиграться с артмани, но которые не полезут патчить сборку. А тех кому реально захочется зачитить клиент и у кого есть достаточно знаний, никакие средства не остановят. Самый эффективный способ - не оставлять в клиенте ничего ценного, но далеко не у всех есть возможность перенести всё чувствительное ко взлому на сервер.

А по поводу того, что весь функционал в отдельной библиотеке - разница не велика. Если надо будет, то и в самом проекте поломают. А так, придется каждое обновление dll ковырять.
Кроме того, не исключено, что в будущем я вместе с плагином буду поставлять его исходники.

В общем, вовсе необязательно демонстрировать свои навыки владения инструментами для патча сборок :-B

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 18:50
Fredo
Мне нравится давно о чем то подобном думал, но не так глубоко. Думал просто вводить для каждого типа значений коофициенты (как было помоему сделано в 1 части халф лайф) что бы визуально отображающееся значние отличалось от значения в памяти. А тут все намного интересней. Да и дает плоды для размышлений по поводу дальнейшей защиты, допустим человек даже найдет шифрованное значений HP но если он его поменяет так скажем на угад, результат может получится далеко не корректный вроде -1008439 и тут мы делаем проверку на корректность значения допустим от 0 до 100 и баним читерюгу :D Мне нравится )

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 19:13
focus
Спасибо за отзыв!
Кстати, на ActiveDen очень оперативно выливают обновления, чего не скажешь про Asset Store. Последняя версия 1.0.1.1 уже доступна там для покупки.

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 19:39
Kayler
если вдруг как нибудь человек ломанет и все таки изменит значение, это можно будет отследить чтоб в последующем забанить, например?
(я имею ввиду это встроено или придется самому химичить дополнительными переменными?)

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 23 окт 2013, 19:54
focus
В данный момент реализована только проверка целостности самих сборок, проверка спрятанных переменных не осуществляется, но как я уже писал ранее, это уже в TODO.

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 26 окт 2013, 01:10
focus
До Ассет Стора добрался последний апдейт с некоторыми багфиксами и изменениями:

1.0.1.2
- fixed .meta files handling
- moved Anti-Cheat Toolkit/Options menu item to the Window/Anti-Cheat Toolkit/Options
- moved plugin into CodeStage directory (to compact placing of any future plugins I'll release)
- reduced ObscuredInt default key length
- attempt to fix async assemblies reloading issue

1.0.1.1
- Added assemblies signing process duration estimation
- Fixed issues with Anti-Cheat Toolkit .dll import in Unity 4.x

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 17 ноя 2013, 00:55
gnoblin
полезная штука!

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 17 ноя 2013, 22:40
focus
Итак, очередное обновление ушло на ревью и уже доступно для скачивания всем купившим предыдущие версии (по запросу, с предоставлением инвойса).
Самые важные изменения:
- плагин теперь поставляется в исходниках! Так что обфусцировать и модифицировать можно до посинения
- Flash Exporter вновь поддерживается! Понятное дело, что не весь функционал там будет работать, но компилироваться оно теперь будет
- исправлена тьма багов, учтены некоторые пожелания клиентов (не все, кое-что будет реализовано в следующем релизе)

Вот полный список изменений:
1.1.0
- no more dlls, plugin now comes with full source code included!
- Yey, Flash Player exporter support is back! :D IntegrityChecker, ObscuredDouble and PlayerPrefsObscured.lockToDevice are not supported there though.
- added increment and decrement operators support to the numeric obscured types (thanks Yuri Saveliev)
- added ObscuredDouble! Not supported in FlashPlayer (use ObscuredFloat instead)! (thanks Andriy Pidvirnyy)
- added correct analogues of toString() methods to some of the Obscured types
- added PlayerPrefsObscured.ForceLockToDeviceInit() method to call device ID obtanation (noticably slow at first call) process at desirable time (at splash screen time for example)
- added initial support for Windows Store (Metro) Apps (needs testing)
- added initial support for Windows Phone 8 (needs testing, thanks friuns3)

- PlayerPrefsObscured.lockToDevice field is now property, so please use PlayerPrefsObscured.LockToDevice instead. Sorry for inconvenience.
- removed unsafe code in ObscuredFloat
- fixed possible placement in memory not obscured float while using ObscuredFloat, oops :P
- fixed possible data loss when using values equal to the crypto keys
- attempt to fix "get_deviceUniqueIdentifier can only be called from the main thread" error (thanks ecc83)
- fixed issue with different line endings on different platforms in IntegrityChecker causing it to think assemblies are not valid
- fixed incorrect line breaks in the xml docs
- assemblies signing now can't be enabled on known unsupported platforms
- assemblies signing will be disabled after switching to the known unsupported platform
- assemblies signing will be disabled if Stripping Level in Player Settings is not set to "Disabled"
- changed PlayerPrefsObscured default encryption key. Use SetNewCryptoKey(e806f69e7aea3ee30fe27a6abfae967f) to read any data saved in previous ACT version with default key.
- docs were fixed a bit
- removed obsolete methods in PlayerPrefsObscured
- minor fixes

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 09:33
Receptor
Я может кого-то убью своим вопросом :) , но тем не менее, позволю себе спросить, а Вы не думали как-то добавить или сделать новый инструмент для защиты конкретно контента игры? Это вообще реально? Мне кажется было бы актуально. А то, мягко говоря, не всегда приятно увидеть, как некто спер у тебя, и юзает нагло :|

П.С. АнтиЧит обязательно возьму. (popcorn1)

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 12:06
Nolex
А от одного из самых основных читов (проход сквозь стены), ваше решение не защищает? А зря, ведь им уязвимы все Юнити-игры (webplayer).

Вот меняет эту сигнатуру (wall hack типа):
0F 28 E3 F3 0F 59 E3 F3 0F 58 C4 F3 0F 51 E0 F3

И можем ходить сквозь стены без проблем. )

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 19:15
focus
Receptor писал(а):Я может кого-то убью своим вопросом :) , но тем не менее, позволю себе спросить, а Вы не думали как-то добавить или сделать новый инструмент для защиты конкретно контента игры? Это вообще реально? Мне кажется было бы актуально. А то, мягко говоря, не всегда приятно увидеть, как некто спер у тебя, и юзает нагло :|

Вцелом я ещё не копался основательно в этом направлении, но некоторый контент не получится защитить от кражи в любом случае, т.к. его можно перехватить на низком уровне. Например: модели можно спереть с помощью 3D Ripper'а, звуки думаю тоже можно перехватить перед их отправкой на звуковую карту (правда рабочих решений не видел, но и не искал).

Возможно, что-то мешающее спереть всё "как есть" и можно придумать, я добавлю изучение этого вопроса в todo.
Receptor писал(а):П.С. АнтиЧит обязательно возьму. (popcorn1)

Спасибо!)


Nolex писал(а):А от одного из самых основных читов (проход сквозь стены), ваше решение не защищает? А зря, ведь им уязвимы все Юнити-игры (webplayer).

Вот меняет эту сигнатуру (wall hack типа):
0F 28 E3 F3 0F 59 E3 F3 0F 58 C4 F3 0F 51 E0 F3

И можем ходить сквозь стены без проблем. )

Запретить такое делать кроссплатформенно я не смогу, только если на PC (Win), возможно добавлю защиту памяти от записи на винде в будущих версиях.
Однако, такое можно отловить.
Если этот байтхак меняет байты в пользовательских сборках (те, что генерит Unity при компиле вашего кода), то это уже сейчас можно отловить с помощью IntegrityChecker в тулките. Должно работать на iOS, Android и PC и Mac (но не web!).
Правда что-то мне подсказывает, что меняются байты во внутренних Unity сборках (UnityEngine напр.), добавлю в TODO исследование вопроса подписи внутренних Unity сборок. Если получится реализовать, то тогда и такие хаки можно будет детектить. Отпишусь в этой теме результаты, когда доберусь до этого.

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 20:08
DbIMok
focus писал(а):меняются байты во внутренних Unity сборках (UnityEngine напр.)

нет, это native код из .exe

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 20:14
seaman
Тут масса таких (для Гноблина на заметку)
Ссылка

Re: Anti-Cheat Toolkit

СообщениеДобавлено: 25 ноя 2013, 21:21
focus
DbIMok писал(а):нет, это native код из .exe

Понятно, в таком случае поможет только защита памяти процесса от записи, иначе просто никак. Это ещё хорошо, если удастся извернуться и обойтись без дополнительных файлов-загрузчиков. Я поизучаю этот вопрос. В любом случае оно будет работать понятное дело только в Standalone сборках, в вебе sandbox не позволит.