Я видел много приложений, которые берут классы инструментов и принимают -javaagent в качестве параметра при загрузке тоже поставил -noverify в командной строке.
Java doc говорит, что -noverify отключает проверку класса.
однако почему кто-то хочет отключить проверку, даже если они инструментируют классы?
автор: Drew Noakes
6 ответов
время запуска, я бы сказал. Проверка правильности классов занимает некоторое время при загрузке класса. Поскольку классы могут загружаться лениво (не при запуске приложения, а при первом использовании), это может привести к неожиданным и нежелательным задержкам выполнения.
на самом деле класс не нужно проверять вообще. Компилятор не будет выдавать недопустимый байт-код или конструкцию класса. Причина проверки заключается в том, что класс может быть построен на одной системе, получить размещен в интернете и передается вам через незащищенный интернет.
На этом пути злоумышленник может изменить байт-код и создать то, что компилятор может никогда не создать; что-то, что может привести к сбою JVM или, возможно, обойти ограничения безопасности. Таким образом, класс проверяется перед использованием. Если это локальное приложение, обычно нет необходимости снова проверять байт-код.
Что Скрывает Луна? (Майнкрафт ARG)
автор: Mecki
, когда он используется в сочетании с -javaagent , Это, скорее всего,не по соображениям производительности, но потому, что агент намеренно создает «недопустимый» байт-код.
следует отметить, что недопустимый байт-код может по-прежнему выполняться нормально, потому что некоторые правила проверки довольно строги. Например, this не должен быть доступен в конструкторе до вызова супер-конструктора, потому что переменные не инициализируются в этот момент. Но все равно может быть другие вещи, которые вы хотите сделать (см. Пример JRebel). Затем вы используете -noverify чтобы обойти это правило.
автор: Cephalopod
отладка! В том, что я делаю сейчас, и как я наткнулся на этот вопрос. В Terracotta мы делаем много инструментов байт-кода, и иногда это помогает отключить верификатор при отладке наших адаптеров классов, чтобы мы могли видеть, где именно они терпят неудачу во время выполнения.
вы правы, мы хотим, чтобы верификатор оставался в производстве.
автор: Scott Bale
использование JRebel без -noverify даст это предупреждение при запуске:
JRebel: ‘-noverify’ отсутствует, изменение/добавление/удаление конструкторов не будет включен!
Так выходит, что -noverify позволяет bytecode re-instrumentation делать некоторые вещи, которые в противном случае были бы невозможны.
автор: Esko Luontola
время запуска раньше было немного проблемой. Однако верификаторы теперь быстрее, как и процессоры. Код, скомпилированный с jdk6 javac, по умолчанию будет включать дополнительную информацию, чтобы сделать шаг верификатора быстрее. Apache Harmony просто использует гораздо более быстрый алгоритм проверки.
ЧТО ЭТО ТАКОЕ? ПРОКЛЯТЫЙ МАЙНКРАФТ
некоторые очень старые версии javac произвели неправильный байт-код. Действительно, плагин Sun по-прежнему включает в себя код исправления, чтобы сделать некоторые сломанные файлы классов проверить.
автор: Tom Hawtin — tackline
новый верификатор, который представлен в JAVA 6, очень сложен для обработки для манипуляций с кодом.
Источник: askdev.ru
Чит ToperClient для Minecraft [RAGE] бесплатно 2022
Читы на Майнкрафт
Последнее обновление: 23.01.2022 Разработчик: Toper Зарепортить чит
Представляю вашему вниманию бесплатный чит-клиент для Майнкрафт, с названием ToperClient. Его особенностью является обширный функционал, с помощью него вы сможете сделать абсолютно всё. Он идеально обходит все защиты популярных серверов SunRise, WellMore, MST, DexLand. Включив режим Rage у игроков не останется шансов убить вас.
Особенность и функционал чит клиента для Майнкрафт
- FOV.
- Автоатака.
- Быстрый бег.
- XRay.
- Смена времени и погоды.
- А так же многое другое.
Весь функционал разбит на категории, их всего 6: Combat, Movement, Render, Player, Misc и Hud.
Что делать если крашит:
- Прописать в аргумены -noverify.
- Скачать Legacy лаунчер.
- Удалить папку .minecraft.
Источник: onlycheats.ru
Использование -noverify при запуске Java-приложений
Я видел множество приложений, которые берут классы инструментов и берут -javaagent в качестве параметра при загрузке, также помещая -noverify в командную строку. В документе Java указано, что -noverify отключает проверку класса. Однако почему кто-то хочет отключить проверку, даже если они являются инструментальными классами?
pdeva 19 нояб. 2008, в 02:05
Поделиться
Поделиться:
command-line-arguments
6 ответов
Лучший ответ
Время запуска, я бы сказал. Проверка правильности классов занимает некоторое время, когда класс загружается. Поскольку классы могут загружаться ленивым способом (не при запуске приложения, а при первом использовании), это может вызвать непредвиденные и нежелательные задержки во время выполнения. На самом деле класс вообще не нужно проверять.
Компилятор не выдаст какой-либо недопустимый байт-код или конструкцию класса. Причина проверки заключается в том, что класс может быть построен на одной системе, размещаться в Интернете и передаваться вам через незащищенный интернет. На этом пути злоумышленник может изменить байт-код и создать то, что компилятор никогда не сможет создать; что может привести к сбою JVM или, возможно, обойти ограничения безопасности. Таким образом, класс проверяется до его использования. Если это локальное приложение, обычно нет необходимости снова проверять байт-код.
Mecki 19 нояб. 2008, в 00:41
Поделиться
В случае, если кто-то задается вопросом на этот ответ в 2013+, проверьте ответ Ариана, так как этот ответ неверен. github.com/spring-projects/spring-loaded#readme
Pavel Horal 12 окт. 2013, в 00:39
Mecki 08 нояб. 2013, в 20:33
Не поймите меня неправильно — вы хорошо объяснили, как работает noverify и почему он может ускорить загрузку классов. Однако вопрос довольно специфичен в отношении его связи с javaagent . Вы хотите сказать, что, например, JRebel использует этот аргумент JVM в каждом руководстве по интеграции просто ради производительности?
Pavel Horal 08 нояб. 2013, в 21:07
Вопрос также не о JRebel или SpringLoad, так какое отношение это имеет к тому, почему JRebel или SpringLoad его используют?
Источник: overcoder.net