Защита приложения от измнения

Тема в разделе "WASM.WIN32", создана пользователем umberto, 26 дек 2011.

  1. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Booster
    не обязательно стрелять через стену, достаточно просто знать что там ктото есть, чтобы быть "на готове", а вообще да, многое решаться через код на сервере ( если есть возможность его менять)
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    spa
    Клиент даже не должен получать позиции таких игроков.
     
  3. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Booster
    приходиться отправлять координаты немного "заранее" иначе будут лаги. А так да, это решает многие проблемы.
     
  4. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Кстати автор, вы имеете доступ к сорцам сервера?
     
  5. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    Спасибо всем откликнувшимся, за критику и просто так :)

    spa, да, исходники к серверу есть, в полном объеме. По поводу проверки на изменение... Я так и думал делать, тем более места изменений вобщем-то известны. Как вы думаете, это довольно надежный метод? Хотя тут многое зависит от реализации..
     
  6. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    umberto
    Вам вобщето дело говорят. Вас спасёт только виртуализация, хотя это тоже вопрос времени. Клоуны с клаба отобьют вашу вм. Но на время это поможет. А системной защиты уже давно нет. Права доступа и имперсонация это какието сферические понятия.
     
  7. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    И проект "глупые вопросы по созданию античита" снова с вами!

    Спасибо всем за советы - решил использовать вмпрот для мутирования дллок.

    И новый вопрос: Как узнать адреса и размеры исполняемого кода (ехе и подгруженных дллок), чтобы можно было удостоверяться время от времени, что их никто не поменял?
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    MapFileAndChecksum ?
     
  9. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    Дежавю, либо эту тему я видел. Только там был мой кошерный код..
     
  10. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    z0mailbox, нет. Надо прям с ОЗУ читать, ибо поменять могли с помощью WriteProcessMemory..
     
  11. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    а если вражина вызовет WriteProcessMemory после твоей проверки? али зациклишь? :)

    помню была одна защитка с подсчетом чексуммы на лету
    рабятки нафигарили сложный руками код эквивалентный как раз MapFileAndChecksum но на входе не path HMODULE
    люблю трудоголиков ;')
    только там они после всего вызывали настоящий MapFileAndChecksum сравнивали числа
    хехе
    я похучил MapFileAndChecksum и через Sleep(1000) делал спокойно свой WriteProcessMemory
    работает пока уже год почти
     
  12. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    Да, зациклить) Допустим раз в 30 сек пересчитывать все чексуммы. Вобщем то я понял как можно получить все модули, а как выяснить где у них сам исполняемый код и какой у него размер?
     
  13. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    z0mailbox
    Могли не менять кодовый сегмент по 0:Ip, а сместить его на X:Ip. Читать вы будите оригинальный код, но на чамом деле он будет изменённый. Или раграничить исполняемый код от читаемого изменив кодовый селектор.

    Это в пе хидере описано.
     
  14. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Хороший вопрос)
    В большинстве случаев можно сделать так: получить PE заголовок модуля и сделать расчет crc для каждой секции с флагом IMAGE_SCN_MEM_EXECUTE
     
  15. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Malfoy
    В ринг 3 это возможно ?
     
  16. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    XshStasX
    Разумеется. На x86.
     
  17. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Если известны переменные, которые чит перетирает - напишите простенький античит, который дублирует содержимое переменных и с заданной периодичностью проверяет их. Если переменная изменена не по правилам (например резко увеличилась), то пусть античит отправляет сообщение на сервер.
     
  18. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    Magnum, в том то и дело, что меняют не переменные, а исполняемый код в запущенном процессе. То есть стирают некоторые проверки, что ли. А так как клиент получает даже те данные, что ему не видны (например, включен туман войны, но игрок все равно получает информацию о юнитах противника). И затирая проверки он начинает видеть соперника.
     
  19. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    umberto
    WarCraft чтоле?
     
  20. umberto

    umberto New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2011
    Сообщения:
    22
    spa, он самый.