Crackme2 for win

Discussion in 'Реверсинг' started by 0x0c0de, 9 Jun 2007.

  1. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Мой второй по счету крекми. Предыдущий взломали ОЧЕНЬ быстро, поэтому я слегка усложнил задачу.
    Также убрал повсеместный SEH, оставив его лишь в одной процедуре, и VEH (чтобы расширить круг "аудитории"). Написан крекми на ассемблере. Пакеров по-прежнему не применяю, код не замусориваю, чтобы можно было сконцентрироваться непосредственно на защите. Хотя в предыдущем случае было достаточно тривиальное замусоривание, которое обходится на ура.
    Опять же, взломавших прошу отписываться здесь и если можно указывать скорость взлома и его ход (так для интереса).

    Ссылка
    http://slil.ru/24492086

    Сложность невысокая
    Задание найти пароль
     
    #1 0x0c0de, 9 Jun 2007
    Last edited: 9 Jun 2007
    1 person likes this.
  2. dmnt

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

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    мля, не пиши такого больше :))

    код: dХ*ХХ)а
    (Х вместо цифр, чтобы сами ломали)
     
    1 person likes this.
  3. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Как быстро сломал? Где лазейку нашел?
    Также пишите предложения по реализации алгоритма.
     
    #3 0x0c0de, 9 Jun 2007
    Last edited: 9 Jun 2007
  4. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    в защите ничего интересного нету... старо как мир)
    взломать можно чисто логически:
    - походу поксорена вся функа, значит последний байт C3 => в пароле 7-ой символ'a'
    и т.д. я сначала думал, что в пароле 8 символов... =\

    Code:
    00401133  |.  83FB 08            |CMP EBX,8
    00401136  |.  75 05              |JNZ SHORT CRACKME_.0040113D
    несколько байт можно узнать таким образом, остальное отбрутить! :)

    з.ы. достаётся 1 валидный ключ и защиты уже нету...
     
    #4 Hellsp@wn, 9 Jun 2007
    Last edited: 9 Jun 2007
    1 person likes this.
  5. dmnt

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

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    атака на known text, однако :)
    единственное что сбило - так это ret после текста
    а по поводу улучшения - при длине ключа, равной длине шифруемого участка, сломать будет невозможно ;)
     
    1 person likes this.
  6. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Hellsp@wn, тоже +)
    Я на то и рассчитывал. В процедуре известно как минимум 9 байт которые находятся чисто логическим путем) В перспективе удлинение процедуры и пароля)
    ЗЫ А по поводу 8 символов точно подмечено- обман зрения за счет помещения сравнения в конец цикла)
     
    #6 0x0c0de, 9 Jun 2007
    Last edited: 9 Jun 2007
  7. dmnt

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

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    а не получится так, что при удлиннении пароля я паролем смогу сформировать свою собственную процедурку по выводу мессаджбокса с нужным тектом? ;)
     
  8. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    dmnt, сомневаюсь. Почему ты думаешь, что это возможно?
    В любом случае вероятность очень мала.
     
    #8 0x0c0de, 9 Jun 2007
    Last edited: 9 Jun 2007
  9. dmnt

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

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    ну допустим ключ длиной байт 300 и такой же участок зашифрованного кода (который заведомо известно, что будет выполняться)
    подбирая параметры к xor'у можно сформировать свой код, отличный от оригинального ;)
     
  10. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    dmnt, вероятность ничтожно мала. К тому же, удлинять пароль до 300 символов (или хотя бы до 100) - это уж слишком для такого крекми. Но можно попробовать. А вдруг тебе и вправду удастся сделать то, о чем ты говоришь=) А ты не думал сколько по времени займет такой подбор? Имхо в пределах реального времени это как минимум сложнореализуемо. Но попробовать можно) А вообще буду усложнять сам алгоритм шифрования (ксор - это уж очень просто). В общем буду писать модификацию)
     
    #10 0x0c0de, 9 Jun 2007
    Last edited: 9 Jun 2007
  11. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    если прикрутить к такому бруту дизасм... т.е. после каждой итерации дизасмить код
    и смотреть на правдоподобность команд, как то так) всё равно, слишком муторно.
     
    2 people like this.
  12. dmnt

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

    Joined:
    6 Jun 2007
    Messages:
    89
    Likes Received:
    36
    Reputations:
    15
    0x0c0de, сейчас во многих прогах ключи в килобайтах измеряются :)
    жалко только что они там не xor'ом пользуются.
    а так - подобрать строчку, чтоб она после ксора моим кодом стала... ну не на много сложней, чем шеллкод написать ;)
     
  13. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    396
    Reputations:
    297
    Кто еще сломал тоже отписывайтесь. А за конструктивные предложения спасибо, есть над чем поработать)))
     
  14. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    0x0c0de, вместо xor используй rc4 + немного математики с введённым ключем от введённого пароля, и до первой купленной\набрученной валидной инфы его не взломают. При этом при малой длине ключа получится достаточно стойкая защита. Но повторюсь - это боян до первой валидной рег инфы.