powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
18 сообщений из 18, страница 1 из 1
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865781
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса внести правки в бинарный файл.
Собственно есть условие, например:
Код: java
1.
if (Thread.activeCount() > i)


мне нужно поменять больше на меньше.

Возможно такое сделать?


Всё, что мы видим - это лишь иллюзия ...
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865786
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
C:\2>type x.java
public class x
{
    public static void main(String args[])
    {
        int a = 1, b = 2;
        if (a > b)
        System.out.println("Hello World!");
    }
}

... компилируем варианты с > и < ...

C:\2>fc /b x_gt.class x_lt.class
Сравнение файлов x_gt.class и X_LT.CLASS
00000187: A4 A2

C:\2>
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865788
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWolf
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
C:\2>type x.java
public class x
{
    public static void main(String args[])
    {
        int a = 1, b = 2;
        if (a > b)
        System.out.println("Hello World!");
    }
}

... компилируем варианты с > и < ...

C:\2>fc /b x_gt.class x_lt.class
Сравнение файлов x_gt.class и X_LT.CLASS
00000187: A4 A2

C:\2>


Эхх, если бы все так просто....
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865793
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов АндрейЭхх, если бы все так просто....Вам объяснили что на что заменить любым шестнадцатиричным редактором.
Поиск смещения оставили в качестве домашнего упражнения.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865827
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов Андрей,

ASM http://asm.ow2.org/index.html , там в примеры есть что-то похожее
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38865885
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов АндрейJava Decompiler восстанавливает код класса и мне нужно без компиляции класса внести правки в бинарный файл.
Тут... как-то по смыслу странно. Лучше-бы поискать свойстко или константу где i инициализировалось.

Да и практика какая-то порочная. Байты менять. Это даже не реверс-инжинеринг а просто "стрельба
себе в ногу".
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866052
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМаслов АндрейJava Decompiler восстанавливает код класса и мне нужно без компиляции класса внести правки в бинарный файл.
Тут... как-то по смыслу странно. Лучше-бы поискать свойстко или константу где i инициализировалось.

Да и практика какая-то порочная. Байты менять. Это даже не реверс-инжинеринг а просто "стрельба
себе в ногу".

Это был первый шаг, я нашел, но там всего один байт. Мне удалось установить число 0x79, если больше, то он рассматривает значение, как отрицательное число. Поэтому пришла мысль поискать другой способ. Например поменять условие...
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866053
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovМаслов АндрейЭхх, если бы все так просто....Вам объяснили что на что заменить любым шестнадцатиричным редактором.
Поиск смещения оставили в качестве домашнего упражнения.

Если таких байтов больше 1000?! Долгое домашнее задание.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866149
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов Андрейmaytonпропущено...

Тут... как-то по смыслу странно. Лучше-бы поискать свойстко или константу где i инициализировалось.

Да и практика какая-то порочная. Байты менять. Это даже не реверс-инжинеринг а просто "стрельба
себе в ногу".

Это был первый шаг, я нашел, но там всего один байт. Мне удалось установить число 0x79, если больше, то он рассматривает значение, как отрицательное число. Поэтому пришла мысль поискать другой способ. Например поменять условие...
Был кастинг в byte (с диапазоном от -128 до 127) на каком-то этапе.

Слушай. Игры с константами до добра не доведут.
Во первых компиллятор их расшаривает для других целей. Тоесть (теоретически) ты правил константу не для этого кода
а для множеста логик где она использовалась. Во вторых в JVM есть магические константы (-1,0,1,2....8)
которые нигде не декларируются но имеют краткие опкоды прогрузки констант на стек. И ты нифига
никогда не догадаешся какую константу они грузят ибо опкод не содержит в себе ее саму.

По этой теме можешь курить JVM instruction set в разделе iconst_<i>

Тоесть подмена байтов в Java-байткоде с целью достижения какого-либо эффекта имеет
еще меньше надежд на успех чем в бинарнике собраном ассемблером для x86.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866285
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМаслов Андрейпропущено...


Это был первый шаг, я нашел, но там всего один байт. Мне удалось установить число 0x79, если больше, то он рассматривает значение, как отрицательное число. Поэтому пришла мысль поискать другой способ. Например поменять условие...
Был кастинг в byte (с диапазоном от -128 до 127) на каком-то этапе.

Слушай. Игры с константами до добра не доведут.
Во первых компиллятор их расшаривает для других целей. Тоесть (теоретически) ты правил константу не для этого кода
а для множеста логик где она использовалась. Во вторых в JVM есть магические константы (-1,0,1,2....8)
которые нигде не декларируются но имеют краткие опкоды прогрузки констант на стек. И ты нифига
никогда не догадаешся какую константу они грузят ибо опкод не содержит в себе ее саму.

По этой теме можешь курить JVM instruction set в разделе iconst_<i>

Тоесть подмена байтов в Java-байткоде с целью достижения какого-либо эффекта имеет
еще меньше надежд на успех чем в бинарнике собраном ассемблером для x86.

не все так плохо 8). Подмена прекрасно работает, во всяком случае, для моей ситуации. А за совет спасибо 8).
Тут другая проблема, куда более трудная. Я никогда с таким не сталкивался и понятия не имею, как такое сделать. См. ссылку
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лечение битого zip-архива это практически не программистская задача.
Есть масса утилит (в свободном доступе) которые это делают.

Какая здесь точка приложения для Java разработки - непонятно.
Если стандартный java.util.zip обругался на формат файлов то
видимо так и надо. А владельцы торрент-раздач как будто
издеваются над нами. Специально фабрикуют битые архивы.
Хуже того это длинное имя чаще замаскировано под вирус.
Поэтому луче его вообще не открывать.

Так оно жить спокойнее будет.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38866938
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЛечение битого zip-архива это практически не программистская задача.
Есть масса утилит (в свободном доступе) которые это делают.

Какая здесь точка приложения для Java разработки - непонятно.
Если стандартный java.util.zip обругался на формат файлов то
видимо так и надо. А владельцы торрент-раздач как будто
издеваются над нами. Специально фабрикуют битые архивы.
Хуже того это длинное имя чаще замаскировано под вирус.
Поэтому луче его вообще не открывать.

Так оно жить спокойнее будет.
Железная логика 8)
Но все-таки мне нужно каким-то образом это имя заменить, либо текст в этом файле
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38867449
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов Андрей,
Надо взять пару ассемблер-дизассемблер, например, из https://wiki.openjdk.java.net/display/CodeTools/Chapter 2 .
Дизассемблируете, правите текст, и обратно компилируете в байткод.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38867454
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rfqМаслов Андрей,
Надо взять пару ассемблер-дизассемблер, например, из https://wiki.openjdk.java.net/display/CodeTools/Chapter 2.
Дизассемблируете, правите текст, и обратно компилируете в байткод.
Спасибо, но это не так просто сделать после обфускатора.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38867459
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов Андрей,

Так Вы декомпилировали файл нашли место, т.е. метод, далее с помощью AspectJ замените(модифицируете) этот метод в классе на свой переписанный и сразу можете записать в jar. И не надо беспокоится о длинных именах, AspectJ может загрузить класс из архива, модифицировать и снова записать в архив.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38867670
Фотография Маслов Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FDМаслов Андрей,

Так Вы декомпилировали файл нашли место, т.е. метод, далее с помощью AspectJ замените(модифицируете) этот метод в классе на свой переписанный и сразу можете записать в jar. И не надо беспокоится о длинных именах, AspectJ может загрузить класс из архива, модифицировать и снова записать в архив.
а если имя файла класс 262 симовла?
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38867691
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов Андрей,

Какая разница, ведь на диске не создается такой файл? а в архиве. есть там параметр outjar, как-то так, если использовать ajc.
...
Рейтинг: 0 / 0
Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
    #38868034
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маслов АндрейСпасибо, но это не так просто сделать после обфускатора.
А в чем проблема? Вы пробовали и у вас возникли трудности? Какие? Не буквенно-цифровые идентификаторы? Но jasm вроде должен с этим справляться, а jcoder и подавно.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java Decompiler восстанавливает код класса и мне нужно без компиляции класса ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]