Вопросы по теме 'bytecode-manipulation'
Использует ли JAXB инструментарий байт-кода?
Кто-то, где я работаю, заметил (в трассировке стека), что при запуске jvm с -javaagent:spring-instrumentation.jar в моих аннотированных классах JAXB есть странные новые методы, которые мы не писали: например....
2043 просмотров
schedule
30.08.2022
Предложения библиотеки манипулирования байт-кодом Java
Я ищу хорошо поддерживаемую библиотеку манипулирования байт-кодом Java с интуитивно понятным API. Кажется, их там довольно много. Любые предложения о том, какие из них попробовать?
3886 просмотров
schedule
03.07.2023
Как обнаружить агенты Java, JVMTI и т. д.
Как защитить среду Java при работе на машине, которую вы не контролируете? Что может помешать кому-то создать агент java или собственный агент JVMTI и сбросить байт-код или переписать классы, чтобы обойти лицензирование и/или другие проверки...
2945 просмотров
schedule
07.07.2022
Вставка байтов в середину двоичного файла
Я хочу добавить строку в середине блока метаданных изображения. Под каким-то определенным маркером. Я должен делать это на уровне байтов, поскольку .NET не поддерживает настраиваемые поля метаданных.
Блок построен как 1C 02 XX YY YY ZZ ZZ ZZ ......
5392 просмотров
schedule
26.08.2022
Маркеры размера файла JPEG, вставка байтов, метаданные IPTC
Меня интересует вручную вводить поля IPTC в файл JPG на уровне байтов. Файл JPEG имеет несколько сегментов метаданных с маркерами приличного размера. Сегменты-контейнеры для IPTC:
Приложение13 - начинается с FF ED XX XX ..
8BIM текстовые...
3153 просмотров
schedule
28.06.2023
Выполнение части байт-кода
Подумайте об этом примере кода:
...
try {
stm1
stm2
stm3
} catch(){
...
}
...
Предположим, вы запускаете код, и в блоке try возникает исключение. Поток выполнения переходит в блок catch.
Здесь я хотел бы скопировать...
250 просмотров
schedule
30.11.2022
Как работает Эмма?
Для использования Эммы мы сначала настроим банку с помощью Эммы. В течение этого времени будут сгенерированы файлы метаданных em, и когда вы запустите тестовые примеры JUnit над инструментированными jar-файлами, будут сгенерированы файлы ec. Который...
1278 просмотров
schedule
05.11.2023
Где происходит инъекция байт-кода?
Мотивация
У меня есть файл SomeObject.java :
class SomeObject {
String name;
}
При его компиляции создается файл SomeObject.class , содержащий байт-код.
0xCAFEBABE...
Если мы используем SomeObject на JVM, он загружается...
1960 просмотров
schedule
11.01.2023
Встроить существующий код метода в блок try-finally
Я хочу добавить инструкции в код методов. Эти инструкции должны выполняться после достижения и перед выходом из метода. Чтобы убедиться, что последние инструкции всегда выполняются перед выходом, я хочу поместить их в блок finally. (Я знаю класс...
1039 просмотров
schedule
07.09.2022
Javassist: повторное создание класса - сначала удалить или разморозить () и изменить?
Я использую Javassist для создания класса. И в наборе тестов, когда второй тест пытается создать тот же класс, он терпит неудачу в pool.makeClass( ... ) , потому что класс заморожен (то есть уже создан через toClass() .
Как это преодолеть? В...
4992 просмотров
schedule
05.10.2022
Может ли отражение Scala 2.10 эмулировать эту функциональность Javassist?
Я хотел бы знать, можно ли переписать эту функцию, используя отражение Scala-2.10 вместо Javassist:
def adaptClass(name1: String, name2: String) : Class[_] = {
import javassist._
val cls = ClassPool.getDefault().getAndRename(name1, name2)...
316 просмотров
schedule
26.08.2022
Почему индексы для пула констант занимают разное количество байтов в формате classfile
Я изучал формат класса java, и мне было просто интересно, почему иногда код операции с последующей записью в константном пуле занимает два байта в файле класса, например, с InvokeStatic, но тогда коды операций, такие как ldc с целочисленным индексом,...
40 просмотров
schedule
20.03.2023
Загрузка существующего объекта Java в стек с использованием ASM
Я пытаюсь использовать ASM для своего проекта и столкнулся с проблемой производительности, когда я пытаюсь получить требуемый объект, используя статический метод, и он вызывается примерно 1000 раз.
visitor.visitMethodInsn(Opcodes.INVOKESTATIC,...
473 просмотров
schedule
17.03.2023
Прикрепить прокси к существующему объекту?
Мой план - написать структуру кеширования на основе аннотаций, которая кэширует возвращаемые значения методов. Когда метод вызывается в первый раз с определенным параметром, кеш должен хранить возвращаемое значение метода. Когда тот же метод...
2310 просмотров
schedule
02.03.2024
Изменить значение статического поля во время загрузки класса с помощью агента Java
У нас есть java-процесс, который вызывает некоторый метод класса X. Класс X имеет статическое поле тайм-аута, которое определяет, как долго поток должен ждать в случае какой-либо ошибки. Теперь я хочу изменить это значение, не меняя процесс Java (я...
1331 просмотров
schedule
27.10.2022
java.lang.VerifyError: ожидание фрейма stackmap в ветке JPA + postgresql
Я борюсь с ошибкой, которую постоянно получаю при запуске метода, возвращающего некоторые объекты с сервера в ExtJ. Я совершенно новичок в JavaEE и полагаю, что где-то допустил ошибки.
Вот журнал консоли JBossDevStudio:
11:04:37,217 ERROR...
1132 просмотров
schedule
14.02.2022
Добавление аннотаций во время сборки к геттеру Java, getX(), когда поле x аннотировано
Я хочу создать следующую аннотацию Java и обработать ее во время сборки:
@Target(value = FIELD)
interface @AnnotateGetter {
Annotation[] value();
}
Если поле field снабжено аннотацией @AnnotateGetter , то все Annotations в массиве...
1598 просмотров
schedule
12.03.2023
неожиданные инструкции и параметры для invokevirtual в теле встроенного метода
Я следовал примеру кода в «3.2.6 Встроенный метод» в http://asm.ow2.org/current/asm-transformations.pdf , чтобы встроить MethodNode в сайт вызова.
Моя проблема заключается в том, что в сгенерированном байт-коде после встраивания отображаются...
637 просмотров
schedule
22.02.2023
Инструкция вызова метода замены ASM Java
Фон
Я хочу провести некоторую инструментальную работу над некоторым трудоемким методом, таким как org/json/JSONObject.toString() , с использованием платформы ASM Java.
Оригинальный вызов метода
public class JSONUsage {
public void...
3512 просмотров
schedule
05.02.2023
Возможна оптимизация последовательности байт-кода
Я генерирую последовательность байт-кода после встроенного вызова нескольких методов. В начале встроенного метода я сначала сопоставил существующие индексы переменных с новыми номерами локальных переменных на случай любого исключения во встроенном...
120 просмотров
schedule
30.11.2022