Сотовый фрикинг Избавляемся от Trial'a или взлом программы EasyJack

Discussion in 'Электроника и Фрикинг' started by ~!DoK_tOR!~, 9 Nov 2007.

  1. ~!DoK_tOR!~

    ~!DoK_tOR!~ Banned

    Joined:
    10 Nov 2006
    Messages:
    673
    Likes Received:
    357
    Reputations:
    44
    Избавляемся от Trial'a или взлом программы EasyJack



    [ INTRO ]

    Насколько мне известно Trial ограничения находятся внутри самого софта. Это рода счетчики/датчики количества дней использования программы. На моём рабочем столе находится программа EasyJack триальность программы заключается в ограничении 10 сообщений. После отправки 10 сообщений высветится окно, предлагающее ввести код программы.

    [ Инструменты ]

    1. EasyJackv2.jar - сама прога.
    2. Эмулятор мобильного телефона (не обязательно, но если вы конечно уверены что всё сделали правильно).
    3. JavaDecompilator (или любой другой декомпилятор).
    4. JavaBite .

    [ Поехали ]

    Распаковываем EasyJackv2.jar WinAce'ом или 7ZIP в папку EasyJackv2 и еще раз распакуем в папку EasyJackv2_original.

    Запускаем Java Decompiler > File -> Open Folder выбираем папку EasyJackv2 > и жмём F9.Покидаем Java Decompiler.
    Далее в папке EasyJackv2 появились исходники что_то_там .java

    При отправке сообщения в приложении EasyJack есть сверху бегущая строка, в которой говорится об ограничении на 10 сообщений. Поищем число в что_то_там.java.

    Код:

    Code:
     
    if( i >= 10){
    System.out.println("Trial Over");
    m_aImage = _get_ExpiredlogovImage();
    m_bZ = true;
    m_aZ = false;
    } else
    
    Так мне и хотелось поставить 1 != 1 вместо i >= 10 :) но нам это не нужно.
    Если изменить данное условие, то мы просто предотвратим вылет окна с формой ввода кода активации.

    Нам надо заставим приложение думать, так что мы вообще не отправляли ни одного сообщения .Этот код который идет сразу над тем кодом что приведен выше:

    Код:

    Code:
    if(ab._aStringZ(s, s1)){
    m_aImage = _get_LogovImage();
    System.out.println("Registered Version");
    m_bZ = false;
    m_aZ = true;
    }
    
    Если условие в выражении if(ab._aStringZ(s, s1)) является (true), то наша программа считается зарегистрированной. Посмотрим в каком методе класса EasyJackv2.java находится интересующий нас фрагмент кода. Т.к. конструктор является инициализатором, то открываем JavaBite и идём далее ...

    Открываем JavaBite > Classes -> Add Java Class и указываем наш класс EasyJackv2midp/EasyJackv2.class только тот, который лежит в папке EasyJackv2_original. Раскрываем колонку(Methods).

    Интересующий нас код находится в конструкторе, который является инициализатором. Значит в методах класса в JavaBite открываем метод <init>. Находим строку Registered Version.
    Кому лень анализировать - строка номер 00CD. Там увидите следующее lcd_w #0116 что в нашем случае означает System.out.println() (lcd - system , _w - вывод (write)).
    Мы поподем в точку нашего условия if (...), а для тех, кто (в танке) переходим на строку 00BF там мы видим ife 000000E0 - здесь ife = IF Equals, а 000000Е0 - № строки. В строке 00Е0 мы видим iload 6, это подгрузка переменной/константы которая нас не интересует. Искомая строка 00BF.

    В строке 00BF происходит сравнение ife (IF Equals), если какая-то переменная равна какому-то значению, то результат выражения ife будет true. Далее, нам нужно чтобы программа считалось зарегистрированной.
    Изменяем условие IFE (IF Equals) на IFNE (IF Not Equals) => на строку 00BF, двойной клик на ife, в открывшемся окне выбираем в секции Instruction значение ifne. В секции Parameters двойной клик на BRANCH_OFFSET и выбираем Branch to line: 00E0 - iload.Дальше JavaBite > Classes > Save Class или <Ctrl+S>.

    Нам только осталось упаковать все файлы обратно в jar-архив. А потом уже закачать на свою мобилу.
    Запускаем WinAce выделяем в папке все файлы и каталоги тоже естественно .
    Тип архива JavaSoft-Jar и нажимаем ок.

    Могут возникнуть проблемы с установкой через и-нет, проверьте чтобы в настройках вашего сервера были прописаны майм типы (MIME Types):

    Код:

    Code:
    application/jar jar
    application/jad jad
    text/vnd.sun.j2me.app-descriptor .jad
    application/java-archive .jar
    
    Всем Удачи !

    //-----------------------------------------//

    Софт упомянутый выше:

    JavaDecompiler
    JavaBite
    WinAce
    Эмулятор мобильного телефона
    EasyJackv2
     
    #1 ~!DoK_tOR!~, 9 Nov 2007
    Last edited: 9 Nov 2007
    5 people like this.