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);
}