• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

C++ [2/2] Mini SecureLoader v2 + Encryptor — комплект для шифрования и загрузки Java‑классов через C++/JNI

ну банально потому что писать статьи, где в основном за тебя всё сделала ИИ это заведомо плохая идея, поскольку сам ты не можешь проверить код на работоспособность

например, зачем тут ollvm сдался в симейке, когда ты не упомянул о его надобности самостоятельно

зачем поддержка линукса, зачем снимать протект с записью у своего модуля, когда знаешь (?), что .text секция обязательно будет в .data что-то записывать, а твой код поспособствует лишь выбросу эксепшена после такого
C++:
Expand Collapse Copy
static void protectModuleExeOnly(HMODULE mod) {
    MODULEINFO mi;
    if (GetModuleInformation(GetCurrentProcess(), mod, &mi, sizeof(mi))) {
        DWORD old;
        VirtualProtect(mi.lpBaseOfDll, mi.SizeOfImage, PAGE_EXECUTE_READ, &old);
    }
}


и еще куча моментов к которым можно придраться, так что да, лучше отучивайся абузить ии, иначе ничему не научишься по итогу
 
Код абсолютно нихуя не идеален
вопрос что ты долбил? люди которые пишут что тут нет защиты не правы, если я не понимаю что в коде то в мутации уж подавно нихуя не ясно будет, это пиздец братан удали нахуй аккаунт, сделайте уже форум платным или проверку на iq сука
 
holy chatgpt что за антология иишной шизы бро
 
как я уже говорил, я влепил kill_jfr_hook() и kill_jvmti_hook() до создания жвмки ( JNI_CreateJavaVM()), так что твой “мега кряк” даже не просачивается + прописан RX-only для jvm.dll и своего EXE, теперь никакой virtual protect(.., PAGE_READWRITE) не сработает, живем с кайфом. + еще добавил интегритик-чек, мой watchdog каждые 50 мс сверяет первые 16 байт твоих киллеров и бум бум шакалака – процесс умирает при малейшей попытке или каком либо, даже малюсеньком изменении. обсирай меня дальше, мне же на пользу, спасибо! :seemsgood: :roflanBuldiga:
Так можно прописать veh хук на DefineClassV, и уже так брать классы
 
жвмти аттач я не резал специально, чтобы было легче тестить. в релизе атач выключен, а класс грузится вайт боксом и байты затираются, так что ClassDumper отвалится.
Причем тут jvmti к класс дамперу?
 
может это тайпдеф из джаваклассдампера с гитхаба и ты не понимаешь сам что говоришь?))
_JVM_DefineClass в экспортах jvm.dll о чем-то говорит? Или ты приебался из-за V в конце?
 
как я уже говорил, я влепил kill_jfr_hook() и kill_jvmti_hook() до создания жвмки ( JNI_CreateJavaVM()), так что твой “мега кряк” даже не просачивается + прописан RX-only для jvm.dll и своего EXE, теперь никакой virtual protect(.., PAGE_READWRITE) не сработает, живем с кайфом. + еще добавил интегритик-чек, мой watchdog каждые 50 мс сверяет первые 16 байт твоих киллеров и бум бум шакалака – процесс умирает при малейшей попытке или каком либо, даже малюсеньком изменении. обсирай меня дальше, мне же на пользу, спасибо! :seemsgood: :roflanBuldiga:
хардвейр брейкпоинт убьет твою залупу.
 
Да тут все что можно её убьет, я думаю что лучше всего сначала шифровать классы, а потом в рантайме их расшифровывать
ничего не помешает их уже расшифрованными сдампить.
 
ничего не помешает их уже расшифрованными сдампить.
Имеешь ввиду уже готовый InstaceKlass?
Тогда можно переименовать инструкции байткода для машины и в аттрибуте CODE в классах (вроде так) , и таким образом надо будет ещё глубже заходить
 
Имеешь ввиду уже готовый InstaceKlass?
Тогда можно переименовать инструкции байткода для машины и в аттрибуте CODE в классах (вроде так) , и таким образом надо будет ещё глубже заходить
ничего не мешает отреверсить измененный констант пул.
 
ничего не мешает отреверсить измененный констант пул.
Я имел ввиду инструкции байткода, а не констант пул, типо по простому как IDIV превращается в какой-то ZXC, и так со всеми
Я имел ввиду инструкции байткода, а не констант пул, типо по простому как IDIV превращается в какой-то ZXC, и так со всеми
Хотя я плохо выразился но условно одну инструкцию байткода JVM исполняет совсем по другому, не как в обычной JVM
 
Я имел ввиду инструкции байткода, а не констант пул, типо по простому как IDIV превращается в какой-то ZXC, и так со всеми
опкоды тоже можно восстановить, ничего не защитит от старого доброго сурового реверса
 
опкоды тоже можно восстановить, ничего не защитит от старого доброго сурового реверса
Ну так уже буквально про любое приложение можно сказать, все зависит от твоих навыков и желания
 
Я имел ввиду инструкции байткода, а не констант пул, типо по простому как IDIV превращается в какой-то ZXC, и так со всеми

Хотя я плохо выразился но условно одну инструкцию байткода JVM исполняет совсем по другому, не как в обычной JVM
ты че думаешь инструкции по названиям хранятся? опкод можешь поменять, но его также не тяжело найти
 
ты че думаешь инструкции по названиям хранятся? опкод можешь поменять, но его также не тяжело найти
Я поэтому ниже написал что плохо выразился, тот же IDIV будет 0x6C в нормальной машине, а в усложненной можно вообще все это дело переписать по жёстче
 
Назад
Сверху Снизу