Есть программа написана на java в котором находится строка System.exit(1) ее надо отключить или подменить с помощью перехвата если надо могу кинуть полный исходник кода немного погуглил и нашол JBoss AOP вот беда в одном я полный 0 в программировании кто может помочь ?
Я б с радость но этот код находится в компилированном файле. Объясню что именно хочу сделать есть игра на java minecraft новая система защити сделана так что когда ты меняешь какие то файлы в главной директории она это отслеживает и выкидывает с игры, я хочу сделать так чтоб вот эта функция которая закрывает игру просто ничего не делала или выполняла другую функцию но не закраивало игру. Исходник с публичного места где выставили исходный код лаунчера Minecraft Launcher Сылка на исходник Minecraft Launcher HTML: http://www.rubukkit.org/threads/xlauncher-от-xeroxp.37871/
Попробуй удалить соответствующие байткоды в соответствующем .class файле(например с помощью dirtyJOE).
Нету доступа. Архиватором можно все извлечь из лаунчера но назать засунуть невозможно лаунчер ка-кто защищен могу сказать тока одно он бил запакован программой Launc4j
Ну так извлеки jar файлы, внеси изменения и запуская с помощью java.exe jar файл, или запакуй опять с помощью launch4j если тебе нужна иконка на файле(боль ничего он не даст). launch4j - это тупо хак с заголовками файлов, не более.
Вообще ты несколько веткой форума ошибся - тебе в реверсинг. А по сути - дизасемблируй и смотри где функция вызывается и ставь там просто jmp .
Ели извлеч то будут сами папки как тогда запустить ? А в папках .class а Launch4j хочет jar. Да извини тока теперь погуглил что означает { реверсинг} а вот насчёт ...смотри где функция вызывается и ставь там просто jmp я так понимаю это в исходник надо ставить ? У меня есть одна мысль код N.class имеет функцию System.exit(1) но при функция проверки в файле M.class можно просто открыть блокнотом N.class и поменять M.class на О.class при этом проверка не будет работать но есть одно но лаунчер открывается через архиватор и видны все файлы но сохранять или заменять не хочет пишет архив поврежден как обойти или всё-таки писать программу перехвата в чем я сомневаюсь что сделаю.
Выложи .exe файл я достану тебе .jar. Нет, он говорит про байткод java. Все что тебе надо - это найти вызов System.exit(1) и удалить ее вызов(скорей всего там будет getstatic, invokevirtual байт код инструкции), что бы это сделать можно воспользоваться dirtyJOE(хотя можно и в хекс редакторе такое сделать).
Сылка на exe Есть вопрос этот файл открывается через архив можно вытащить все файлы но назад засунуть или изменить в нем нельзя пишет архив поврежден это защита или надо работать с другим упаковщиком ?
Launch4j - делает небольшой фокус покус с заголовками zip и exe файла. Объясняю супер секретный способ преобразования .exe файла запакованного с помощью Launch4j назад в .jar: 1) Извлекаем ВСЕ файлы с помощью архиватора в одну папку. 2) Выделяем все файлы и папки. 3) Добавляем их в ZIP архив. 4) Указываем для архива расширения .jar. 5) Собственно это все. Вот результат.
Я думаю пора переходить к поискам кода перехвата твой способ тоже не подходит мне надо не просто редактировать но и запустить а тот jar выдает ошибку при запуске!
У меня запустилось без проблем, может проблема в версии JRE(какая хоть ошибка то)? Насчет патчинга в памяти - если ты не ищешь простых путей(мало ли из Челябинска) то да, перехват это твой путь.