Начинающий
- Статус
- Оффлайн
- Регистрация
- 28 Июл 2020
- Сообщения
- 265
- Реакции
- 12
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Посмотрев в тему от атомова где он плотно навалил говна готорое ломается за 10 минут нейронкой решил написать свое, где адекватно расскажу что в текущий момент используют для защиты. В данной статье предоставленная актуальная информация по защите (под пример взял Kotopushka, который является чуть ли не единственным протером кто сейчас ставит)
JVM
В текущих реалиях по большей части защита строиться вокруг нативки, так что JVM некий контрольный пункт который просто усложняет дальнейший реверс, что в большенстве случаев делается для защиты на этом этапе:
Добавляется кастомный бутстраппер - необходимо для усложнения запуска вашей JVM в обход лаунчера, вариантов реализации до жути много, от банального ключа в агрументах до кастомных методов для создания JVM
Изменение таблицы вызовов JNI - дает возможность усложнить реверс вашей нативки, становится не так легко поставить хуки на все что можно чтобы протрейсить вашу нативку.
Шифрование - под этот пункт выделю побольше места. Вариантов реализации очень много, засунуть можно как в ClassFileParser(кфп) \ ClassFileStream(кфс), так и просто в ConstantPool.
Так же в подпункт шифрования можно внести изменение структуры InstanceKlass, делается эта операция по большей части от так называемых IK-Дамперов, из-за этой процедуры становится очень сложно собрать ваш класс по кусочкам чтобы получить стоковый(который сможет прочитать стандартная джава)
Так же рекомендуется порезать JVMTI на пару с реконструктором, это отрежет -javaagent и прочую хуйню, жить станет чутка безопастней)
NATIVE
Тут необходимо пояснить что такое вообще натив и как оно работает, у нашей джавы есть JNI (Java Native Interface), это позволяет при помощи такой конструкции
Для облегчения данного говна используют J2C(Java to CPP) данное говно помогает хитровыебанным механизмом превратить код из джавы в плюсы, самый ярый пример что сейчас юзается среди пастеров -
Подробного пояснения ее работы не будет, но подчеркну самый частоиспользуемый в ней метод на текущий момент.
Нативные референсы - собирается адрес какого нить env->FindClass("jopa"), шифруется посредству rtdsc (такты процессора) и cpuid, после чего шифрованные адреса отправляются на сервер, где проходят дополнительный механизм обработки и возвращаются клиенту и уже исходя от этого выполняется ваша нативка, данный прикол используется сейчас везде (У вендокса, котопушки, кекофа и прочих), не так давно кекофф слил нативку где представлен пример такого(эту же нативку но ее сильно улучшенную версию использует котопух). (Линк не дам ищите сами)
Так же дам по мелочи советы которые помогут сделать так чтобы вашу хуйню не расхукали за 15 минут - по максимуму не обертывайте код во всякую хуйню аля такого:
В данном случае от шифрования по тикам не будет никакого смысла, ибо найдя паттерн данной функции в дизассемблере - можно будет возвращать статик значение и вы будете сосать хуй со свой протой.
Писать тут можно еще много, но добавив уже все что описано тут - всякие пастеры отвалятся
SERVER
Данный пункт особо многого в себе не хранит, но он очень важен, ибо именно засчет этого пункта мною были крякнуты многие читы (Все читы на защите сержа (дельта арбуз и т.п), Котопушка (Meow, Toffi), Crashdami (Atom, и еще какая то паста)).
Тут в статье атомова все было +- по факту, используйте максимально задроченные системы для шифрования запросов \ ответов, сервер НИКОГДА не должен отправлять статичный ответ, все должно быть на динамике, хоть тот же RDTSC блять используйте, JWT токены, и шифрование на приватных \ публичных ключах наше все.
Именно на данный пункт я первым делом смотрю когда крякаю что либо, ибо куда проще спуфнуть сервер чем проебать жизнь на подробный анализ твоей защиты в дизассемблере)
Итоги
В текущий момент в статье описана информация которая необходима для самой базовой проты, понятное дело что я опустил очень многие моменты, в той же нативке с вм-кой очень много приколов, про лоадер в статье ничего не было написано поскольку почти у всех он используется только для загрузки файлов и запуска джавы, что вполне легко делается ручками)
Ну а если не хочешь писать свою защиту - скоро релизнется (надеюсь) XTZProtect с автоматизированной постановкой на защиту по принципу ежемесечной подписки.
UPD: Ну а в следующем посте я сделаю туториал как крякается то что я описал выше :)
JVM
В текущих реалиях по большей части защита строиться вокруг нативки, так что JVM некий контрольный пункт который просто усложняет дальнейший реверс, что в большенстве случаев делается для защиты на этом этапе:
Добавляется кастомный бутстраппер - необходимо для усложнения запуска вашей JVM в обход лаунчера, вариантов реализации до жути много, от банального ключа в агрументах до кастомных методов для создания JVM
Изменение таблицы вызовов JNI - дает возможность усложнить реверс вашей нативки, становится не так легко поставить хуки на все что можно чтобы протрейсить вашу нативку.
Шифрование - под этот пункт выделю побольше места. Вариантов реализации очень много, засунуть можно как в ClassFileParser(кфп) \ ClassFileStream(кфс), так и просто в ConstantPool.
Так же в подпункт шифрования можно внести изменение структуры InstanceKlass, делается эта операция по большей части от так называемых IK-Дамперов, из-за этой процедуры становится очень сложно собрать ваш класс по кусочкам чтобы получить стоковый(который сможет прочитать стандартная джава)
Так же рекомендуется порезать JVMTI на пару с реконструктором, это отрежет -javaagent и прочую хуйню, жить станет чутка безопастней)
NATIVE
Тут необходимо пояснить что такое вообще натив и как оно работает, у нашей джавы есть JNI (Java Native Interface), это позволяет при помощи такой конструкции
public static native void pizdec();
выполнить код из под C++, т.е код пишется на плюсах а выполняется на джаве.Для облегчения данного говна используют J2C(Java to CPP) данное говно помогает хитровыебанным механизмом превратить код из джавы в плюсы, самый ярый пример что сейчас юзается среди пастеров -
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad), данная нативка обьективно достаточно хуевая, очень хуевая оптимизация и легкий разбор ее (из текущих протеров ее юзают все бездари аля InternalGuard и прочего).Подробного пояснения ее работы не будет, но подчеркну самый частоиспользуемый в ней метод на текущий момент.
Нативные референсы - собирается адрес какого нить env->FindClass("jopa"), шифруется посредству rtdsc (такты процессора) и cpuid, после чего шифрованные адреса отправляются на сервер, где проходят дополнительный механизм обработки и возвращаются клиенту и уже исходя от этого выполняется ваша нативка, данный прикол используется сейчас везде (У вендокса, котопушки, кекофа и прочих), не так давно кекофф слил нативку где представлен пример такого(эту же нативку но ее сильно улучшенную версию использует котопух). (Линк не дам ищите сами)
Так же дам по мелочи советы которые помогут сделать так чтобы вашу хуйню не расхукали за 15 минут - по максимуму не обертывайте код во всякую хуйню аля такого:
by:
uint64_t getRDSTC() {
return __rdtsc;
}
Писать тут можно еще много, но добавив уже все что описано тут - всякие пастеры отвалятся
SERVER
Данный пункт особо многого в себе не хранит, но он очень важен, ибо именно засчет этого пункта мною были крякнуты многие читы (Все читы на защите сержа (дельта арбуз и т.п), Котопушка (Meow, Toffi), Crashdami (Atom, и еще какая то паста)).
Тут в статье атомова все было +- по факту, используйте максимально задроченные системы для шифрования запросов \ ответов, сервер НИКОГДА не должен отправлять статичный ответ, все должно быть на динамике, хоть тот же RDTSC блять используйте, JWT токены, и шифрование на приватных \ публичных ключах наше все.
Именно на данный пункт я первым делом смотрю когда крякаю что либо, ибо куда проще спуфнуть сервер чем проебать жизнь на подробный анализ твоей защиты в дизассемблере)
Итоги
В текущий момент в статье описана информация которая необходима для самой базовой проты, понятное дело что я опустил очень многие моменты, в той же нативке с вм-кой очень много приколов, про лоадер в статье ничего не было написано поскольку почти у всех он используется только для загрузки файлов и запуска джавы, что вполне легко делается ручками)
Ну а если не хочешь писать свою защиту - скоро релизнется (надеюсь) XTZProtect с автоматизированной постановкой на защиту по принципу ежемесечной подписки.
UPD: Ну а в следующем посте я сделаю туториал как крякается то что я описал выше :)
Последнее редактирование: