Перехват функций java возможен ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by tomasdog, 24 Jul 2013.

  1. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Есть программа написана на java в котором находится строка System.exit(1) ее надо отключить или подменить с помощью перехвата если надо могу кинуть полный исходник кода немного погуглил и нашол JBoss AOP вот беда в одном я полный 0 в программировании кто может помочь ?
     
  2. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    ну так если есть исходники то просто удали эту строку...
     
  3. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Я б с радость но этот код находится в компилированном файле.
    Объясню что именно хочу сделать есть игра на java minecraft новая система защити сделана так что когда ты меняешь какие то файлы в главной директории она это отслеживает и выкидывает с игры, я хочу сделать так чтоб вот эта функция которая закрывает игру просто ничего не делала или выполняла другую функцию но не закраивало игру. Исходник с публичного места где выставили исходный код лаунчера
    Minecraft Launcher
    Сылка на исходник Minecraft Launcher
    HTML:
    http://www.rubukkit.org/threads/xlauncher-от-xeroxp.37871/
     
  4. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Попробуй удалить соответствующие байткоды в соответствующем .class файле(например с помощью dirtyJOE).
     
  5. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Нету доступа.
    Архиватором можно все извлечь из лаунчера но назать засунуть невозможно лаунчер ка-кто защищен могу сказать тока одно он бил запакован программой Launc4j
     
  6. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Ну так извлеки jar файлы, внеси изменения и запуская с помощью java.exe jar файл, или запакуй опять с помощью launch4j если тебе нужна иконка на файле:)(боль ничего он не даст). launch4j - это тупо хак с заголовками файлов, не более.
     
  7. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Вообще ты несколько веткой форума ошибся - тебе в реверсинг. А по сути - дизасемблируй и смотри где функция вызывается и ставь там просто jmp .
     
  8. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Ели извлеч то будут сами папки как тогда запустить ? А в папках .class а Launch4j хочет jar.
    Да извини тока теперь погуглил что означает { реверсинг} а вот насчёт ...смотри где функция вызывается и ставь там просто jmp
    я так понимаю это в исходник надо ставить ?
    У меня есть одна мысль код N.class имеет функцию System.exit(1) но при функция проверки в файле M.class можно просто открыть блокнотом N.class и поменять M.class на О.class при этом проверка не будет работать но есть одно но лаунчер открывается через архиватор и видны все файлы но сохранять или заменять не хочет пишет архив поврежден как обойти или всё-таки писать программу перехвата в чем я сомневаюсь что сделаю.
     
  9. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Выложи .exe файл я достану тебе .jar.
    Нет, он говорит про байткод java. Все что тебе надо - это найти вызов System.exit(1) и удалить ее вызов(скорей всего там будет getstatic, invokevirtual байт код инструкции), что бы это сделать можно воспользоваться dirtyJOE(хотя можно и в хекс редакторе такое сделать).
     
  10. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Сылка на exe
    Есть вопрос этот файл открывается через архив можно вытащить все файлы но назад засунуть или изменить в нем нельзя пишет архив поврежден это защита или надо работать с другим упаковщиком ?
     
  11. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Launch4j - делает небольшой фокус покус с заголовками zip и exe файла. Объясняю супер секретный способ преобразования .exe файла запакованного с помощью Launch4j назад в .jar:
    1) Извлекаем ВСЕ файлы с помощью архиватора в одну папку.
    2) Выделяем все файлы и папки.
    3) Добавляем их в ZIP архив.
    4) Указываем для архива расширения .jar.
    5) Собственно это все.
    Вот результат.
     
  12. tomasdog

    tomasdog New Member

    Joined:
    27 Sep 2011
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Я думаю пора переходить к поискам кода перехвата твой способ тоже не подходит мне надо не просто редактировать но и запустить а тот jar выдает ошибку при запуске!
     
  13. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    У меня запустилось без проблем, может проблема в версии JRE(какая хоть ошибка то)? Насчет патчинга в памяти - если ты не ищешь простых путей(мало ли из Челябинска) то да, перехват это твой путь.
     
Loading...
Similar Threads - Перехват функций java
  1. b3
    Replies:
    4
    Views:
    3,396