Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос [rustme] дампер

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
14 Май 2025
Сообщения
459
Реакции
4
чота я попытался написать дампер класов для jni , но крашит чё то сильно чё делать как достать классы и тд для аима и крутой вхшки
 
это не основная проблема твоя будет,дружище. Ты сначало вообще разберись в JNI. jvm настоящий откопай,потом функции нужные достань(таблица сломаная) и только потом берись за классы
 
это не основная проблема твоя будет,дружище. Ты сначало вообще разберись в JNI. jvm настоящий откопай,потом функции нужные достань(таблица сломаная) и только потом берись за классы
зачем копатся вообще в jni, если можно грузить свои классы
 
нет, мы их грузим, jni для этого не обязателен :)
а в чем смысл этого, не понимаю. Как ты,грузя свои классы,будешь взаимодействать с другими? Я просто не понимаю немного
 
зачем копатся вообще в jni, если можно грузить свои классы
и смысл загрузки своих классов? у тя их загрузить не получится только из за того что там дефайнклассов не вызовится
и смысл загрузки своих классов? у тя их загрузить не получится только из за того что там дефайнклассов не вызовится
а даже если ты их и загрузишь смысла нету тебе нужны указатели, названия полей и тд чтоб написать хак а их ты уже без декрипнутых классов не получишь
 
а в чем смысл этого, не понимаю. Как ты,грузя свои классы,будешь взаимодействать с другими? Я просто не понимаю немного
смысл того что-бы избежать использования jni

через рефликсию броу:pepe2:
рефлексия то здесь причём броу, она даже не запустится если ничего не будет ссылатся на твой класс
 
смысл того что-бы избежать использования jni


рефлексия то здесь причём броу, она даже не запустится если ничего не будет ссылатся на твой класс
Класс инстализации потоком делаешь и усе
 
покажи инжектор
Я удалил исходный код сегодня остались лишь куски кода
C++:
Expand Collapse Copy
 jclass byteArrayClass = env->FindClass("[B");
    jobjectArray classesArray = env->NewObjectArray(CLASS_COUNT, byteArrayClass, nullptr);

    for (int i = 0; i < CLASS_COUNT; i++) {
        jbyteArray byteArray = env->NewByteArray(CLASS_SIZES[i]);
        env->SetByteArrayRegion(byteArray, 0, CLASS_SIZES[i],
            (const jbyte*)CLASSES_BYTES[i]);
        env->SetObjectArrayElement(classesArray, i, byteArray);
    }

    // Через этот метод загружаются классы
    jmethodID startCP = env->GetStaticMethodID(loaderClass, "startByteLoader", "([[B)I");
    if (startCP) {
        env->CallStaticIntMethod(loaderClass, startCP, classesArray);
    }

    if (env->ExceptionCheck()) {
        env->ExceptionDescribe();
        env->ExceptionClear();
        MessageBoxA(0, "Java Exception occurred!", "Error", MB_OK);
    }
    else {
        MessageBoxA(0, "Injected!", "Success", MB_OK);
    }
Если че startByteLoader это класс в клиенте
 
Я удалил исходный код сегодня остались лишь куски кода
C++:
Expand Collapse Copy
 jclass byteArrayClass = env->FindClass("[B");
    jobjectArray classesArray = env->NewObjectArray(CLASS_COUNT, byteArrayClass, nullptr);

    for (int i = 0; i < CLASS_COUNT; i++) {
        jbyteArray byteArray = env->NewByteArray(CLASS_SIZES[i]);
        env->SetByteArrayRegion(byteArray, 0, CLASS_SIZES[i],
            (const jbyte*)CLASSES_BYTES[i]);
        env->SetObjectArrayElement(classesArray, i, byteArray);
    }

    // Через этот метод загружаются классы
    jmethodID startCP = env->GetStaticMethodID(loaderClass, "startByteLoader", "([[B)I");
    if (startCP) {
        env->CallStaticIntMethod(loaderClass, startCP, classesArray);
    }

    if (env->ExceptionCheck()) {
        env->ExceptionDescribe();
        env->ExceptionClear();
        MessageBoxA(0, "Java Exception occurred!", "Error", MB_OK);
    }
    else {
        MessageBoxA(0, "Injected!", "Success", MB_OK);
    }
Если че startByteLoader это класс в клиенте
Ты на приколе? env это jni
 
Назад
Сверху Снизу