Категория > Новости > Беззащитная Java. Ломаем Java bytecode encryption - «Новости»
Беззащитная Java. Ломаем Java bytecode encryption - «Новости»29-04-2022, 00:00. Автор: Stephen |
|
Мы уже обнаружили в рабочем каталоге динамическую библиотеку с оригинальным названием Снова покурим спецификацию JVM Tool Interface, ссылку на которую я привел выше. Общий принцип работы агента — установка собственных пользовательских callback-обработчиков на определенные события. В данном случае нас интересует событие JNIEXPORT jint JNICALL Agent_onload(JavaVM *vm, char *options, void *reserved) { jvmtiEventCallbacks callbacks; jvmtiEnv *jvmtienv = jvmti(agent); jvmtiErrorjvmtierror; memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = &eventHandlerClassFileLoadHook; // Новый обработчик JVMTI_EVENT_CLASS_FILE_LOAD_HOOK jvmtierror = (*jvmtienv)->SetEventCallbacks( jvmtienv, &callbacks, sizeof(callbacks)); // Установка обработчиковjvmtierror = (*jvmtienv)->SetEventNotificationMode(jvmtienv, JVMTI_ENABLE,JVMTI_EVENT_CLASS_FILE_LOAD_HOOK,(jthread)NULL); // Разрешаем обработку события JVMTI_EVENT_CLASS_FILE_LOAD_HOOKПокопавшись при помощи IDA в коде процедуры Установка обработчика события JVMTI_EVENT_CLASS_FILE_LOAD_HOOK в агенте JavaLoader Перейти обратно к новости |