Сейчас на форуме: Magister Yoda, site-pro, Rio, johnniewalker (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Java. Jasmin + IDA Pro.
Посл.ответ Сообщение

Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 июня 2012 23:22
· Личное сообщение · #1

Появилась необходимость модифицировать небольшой участок кода. Проект большой, что-то около 700 классов, исходники закрыты, Jad и подобные декомпиляторы выдают море ошибок, времени на исправление которых уйдёт море, а модификация нужна только одна.
JavaBite нужный класс не берёт, так-как в нём есть несколько одноимённых методов. Если применять лоадер, исправляющий этот недостаток программы, то происходит ошибка на стадии возврата старых названий, и класс так и остаётся запорченным.
Jbe0.1 не может сохранить класс, выскакивает бесполезное сообщение об ошибке при верификации.
В общем, я решил попытаться дизассемблировать нужный файл, а затем собрать его обратно при помощи Jasmin. Использовал IDA Pro 5 с настройками по умолчанию. В полученном листинге было несколько однотипных синтаксических ошибок, которые я довольно-таки быстро исправил. Класс после этого скомпилировался без каких-либо сообщений. Но программа при замене оригинального файла падает.
Никаких модификаций кода я не делал, компилировал то, что получил при помощи Иды.
Компилировал просто при помощи команды java -jar C:\jasmin.jar C:\NetServerHandler.j . Ничего после этого не делал.
Вопроы: что я делаю не так? Можно ли вообще перекомпилировать только один из множества классов? Как всё-таки мне изменить код? Верный ли набор программ я выбрал?
Файы приложил к сообщению, оригинальный (на самом деле, 10 раз модифицированный до меня) класс и "исходник" лежат в корне, результат компиляции - в папке net.

b9b5_27.06.2012_EXELAB.rU.tgz - classes.7z



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 28 июня 2012 00:02
· Личное сообщение · #2

Для правки файлов классов попробуйте
rewolf dirtyjoe
CCK/BCEL
ASM

| Сообщение посчитали полезным: IDOL 1234

Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 28 июня 2012 00:32
· Личное сообщение · #3

Спасибо! CCK корректно работает с этим классом.
Можно ли как-то увеличить ширину списка операций, не прибегая к редактированию кода ССК? Некоторые параметры не удаётся прочитать из-за слишком узкой ячейки таблицы.
Всё же, возможна ли перекомпиляция отдельного класса?



Ранг: 5.9 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 28 июня 2012 01:09 · Поправил: t0ShA
· Личное сообщение · #4

Проверьте у полученного класса Major Version, должна совпадать с версией исходного класса, JavaBite править умеет это.



Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 28 июня 2012 04:27
· Личное сообщение · #5

Да, версии совпвдвют.
Возможно, проблема возникла из-за того, что IDA 5 не может корректно дизассемблировать код, сгенерированный JDK 1.7?



Ранг: 5.9 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 28 июня 2012 11:36
· Личное сообщение · #6

а в манифесте подписи контрольных сумм не прописаны?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 28 июня 2012 12:09
· Личное сообщение · #7

IDOL 1234 пишет:
IDA 5 не может корректно дизассемблировать код, сгенерированный JDK 1.7?


прикиньте когда писали Ида 5 а когда яву седьмую



Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 июля 2012 23:20
· Личное сообщение · #8

Нет, контрольных сумм нет.
Пойду обновляться..


 eXeL@B —› Крэки, обсуждения —› Java. Jasmin + IDA Pro.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати