1) А почему у вас нет ветки посвящённой хотростями защиты от отладки/реверсирования? 2) Можно просто обмануть ArtMoney - например от защищаемого числа отнять произвольное и хранить разницу и произвольное. А не подскажите что-нибудь более красивое? Может менее заметное под отладчиком? 3) А какие еще хитрости (помимо архитектурных особенностей и хитрых API) можно использовать против реверсирования: -динамически изменять код из рабочего в нерабочий во время выполнения -подставлять в код константы вычисленные заранее (неудобно для многопотока) - ... может ещё что-то подскажите? меня как-то больше интересуют методы как замаскировать независимо от платформ... заранее спасибо!
самый коварный приём пролегает в ложно-успешных проходах. То бишь прога позволяет читу успешно сработать на паре-другой попыток, а потом устраивает жёсткий облом в самый неподходящий момент.. приём, кстати, применяется ещё с лохматых времён для развода лохов в картишки
Я бы несанкц. попытку доступа к памяти обнаруживал, а затем спустя некоторое время изменял логику работы. Это на win очень просто сделать, создаются области-ловушки и периодически проверяются на наличие их в рабочем наборе https://docs.microsoft.com/en-us/windows/win32/memory/working-set Я так в крэкми делал, палит любую попытку доступа к памяти из ядра тоже, так как что бы произвести выборку из памяти её нужно добавить в набор. --- Сообщение объединено, 25 фев 2020 --- Вот пример:
Indy_, обычно читер имеет полный доступ к своей локальной системе, тч организация стелс чтения памяти всегда возможна. реально эффективно на локальной машине античит может лишь попытку отладки детектить. а вот мало-мальски успех в детекте чтения озу на локалке (акь это ни странно) можно проводить чрез сервачную часть античита.
UbIvItS, У вас всегда отрешённые рассуждения. А тут походу реальный софт и реальный детект попытки чтения. А таких областей может быть сколько угодно и в произвольной последовательности. Обсуждение не имеет смысла, это как всегда бесконечно детект-обход война и мир. > тч организация стелс чтения памяти всегда возможна. Вот с этим не согласен. Для такой реализации необходимо использовать ядерный андок, механизмы страничных ловушек. Это область ядерных руткитов, а нуби и всякие читеры такое врядле смогут реализовать.
самый лёгкий способ идёт чрез виртуалки == чит в хосте, гамис под виртой. акь это ни смешно, но дравер от вирты (к примеру, https://www.virtualbox.org/wiki/Windows build instructions) тоже можно переделать на нужды чита + гамис можно запускать под 7кой, что позволит избежать доп трабл с пачгвардом бесятки. также нужно отметить, что если клиент гамиса может и под линем запускаться, то тамо чит совсем в ядро оси можно впихнуть. короче, с локалкой действительно.. Хотя отдельная песня тут всё же есть == прога/гамис могут поставляться акь программно-аппаратный комплекс, жестянка в итоге идёт и в плане акселератора, и акь слой защиты. Короче, могу повториться == наиболее эффективные схемы античитов и сравнительно дешёвые используют развитую серверную часть. а локальный чит в идеале == нейронная сеть + стелс чтение озу. впрочем, вторая часть мб исключена совсем, но она может сильно облегчать нейронку. Ну а в итоге мы имеем ситуацию идеальный чит (нейронка) против идеального античита == побеждает античит и при том победа получается за пару копеек, если сравнивать с затратами на чит. античиту всего-то навсего нужно сверить статистику игры против эталонов (обычно статистику эталонов легко собрать по соревнованиям самых сильных ОФИЦИАЛЬНЫХ игроков + ОФИЦИАЛЬНЫХ ботов).
как-то неудачно назвал тему... меня больше интересуют платформ-независимые приёмы (API можно перехватить и некоторые функции CPU неработают на ARM скажем) вобщем-то хотелось не зависеть от буржуйских технологий как-то ArtMoney зря упомянул...
UbIvItS, > чит в идеале == нейронная сеть У аверов с их огромными базами сигнатур не получилось. А ведь датасет же годный!? VaVa, > как-то ArtMoney зря упомянул... У этого инструмента задача искать изменения в памяти. Значение можно разложить на сколь угодно компонент, абстрактно если говорить то значение может быть любой размерности и не линейным в памяти(те в разных местах находится). Ну а защита от реверса - лучший способ это виртуализация. Если просто морф, то это чистится/сворачивается автоматикой. Но если новая архитектура(интерпретация или вирт), то придётся реверсить саму вирт машину. Антидебаг это вообще детская затея. Может мешать замеры по таймингу, но это всё очень быстро и просто обнаруживается и обходится.
а при чём тут аверы??? у них задача не столько решать задачу, сколько делать вид её решения если антидебаг просто обнаруживает сам факт отладки и тихо записывает его в локальный файлик (иль ещё лучше стучит на сервач), а потом обрушивает прогу в самый неподходящий момент == хммм.. такую п@длянку не так уж и просто обойти
UbIvItS, Прямо причём, база их это огромный датасет. Вот только учитывая что ии это лишь полином и механизм поиска подобий он не применим для логических задач. Ответь это тут.. была рядом тема, но видимо уже нет.)
если быть точней, это унылая мусорка и аверы уЖО не могут пользовать толком всё это ХЪ@внище, пч ОНО просаживает далеко не самые слабые компы + абсолютно бесполезно супротив зеродеев. теперь в основном пользуют поведенческий анализ.
а можно поподробнее??? изучить новый набор инструкций по программе интерпретатора не так уж и сложно (может даже угробив пару дней и инструменты на каленке под них напишут)
неужели никто хитрых приёмов не подскажет... кстати ещё один прикол - запихивать в стек код(или в кусок из кучи) и пыгнуть туда (для многопотока хорошо если константы вставлять...)
нет либо в параметрах линковки либо какой-то аналог VirtualProtect ... возможно и на Android можно что-то пофиксить