Первый крекми от ProTeuS'а

Discussion in 'Реверсинг' started by ProTeuS, 16 Aug 2006.

  1. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    Мой первый не слишком сложный крякми.

    Нужно узнать правильный пас и сказать какое сообщение выводится при вводе правильного серийника. Написание статьи только приветствуется!

    Ка4аем:
    http://securityprobe.net/other/ProTeuS/crackme.rar (172Кб)
     
  2. DarkIce

    DarkIce New Member

    Joined:
    27 Jul 2006
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Я ввел как на мой почти уверенный взгляд правильный код и программа закрылась сразу без сообщений. это значит правильно я ввел ?
     
  3. [hidden]

    [hidden] Elder - Старейшина

    Joined:
    5 Nov 2005
    Messages:
    70
    Likes Received:
    19
    Reputations:
    7
    Ё-мое, да что же это за крякмис весом в 172К в архиве?
     
  4. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    >>Я ввел как на мой почти уверенный взгляд правильный код и программа закрылась >>сразу без сообщений. это значит правильно я ввел ?
    когда введешь правильный - прога даст знать об этом валидным сообщением
     
  5. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    >>Ё-мое, да что же это за крякмис весом в 172К в архиве?
    ну просто лу4шего обфускатора кода и метаморфа в виде компилера делфы я не видел ;))))
     
  6. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Serial: 204

    ---------------------------
    Information
    ---------------------------
    Preved! Registration sucess!
    ---------------------------
    OK
    ---------------------------
     
    #6 BUG(O)R, 16 Aug 2006
    Last edited: 16 Aug 2006
    1 person likes this.
  7. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    Bug(o)r, респект - ждем рассказа о системе генерации серийников(защите) ;) и солюшна
     
  8. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    00457980 E8A3F9FFFF call 00457328 ; На выходе в eax StrToInt(SpinEdit1.Text)
    00457985 B9FF000000 mov ecx, $000000FF
    0045798A 99 cdq
    0045798B F7F9 idiv ecx
    0045798D 3013 xor [ebx], dl

    Всё)
     
    #8 BUG(O)R, 16 Aug 2006
    Last edited: 16 Aug 2006
  9. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    по листингу сдается 4то пас ты тупо пробрутил ;)
    я ждал логики, рассказа о том как сабж находился...
     
  10. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Какой логики? Процедура которая выдает сообщение о правильном ключе зашифрована, каждый байт поксорен на остаток от деления числа введенного в спинедит на 255, если ввести неверный ключ то после передачи управления на эту процедуру возникнет исключение и управление перейдет на установленный тобою сех, в котором и вылетает сообщение о неверном ключе.
     
  11. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Пароли в таких алгоритмах можно найти только брутом
     
  12. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Пароли в таких алгоритмах можно найти только брутом
    Враки. Я ломанул сей кракми без перебора, мало того сразу после обнаружения, что модифицирует код. Во многих случаях есть уязвимости. В данном кракми была одна вещь, которая и позволила без проблем его крякнуть. Правда это было основано тольео на предположениях и могло не сработать. Но сработало. А делается всё так. Будем считать, что расшифровывается целиком функция. Это первое. И она начинается со стандратных прологов и заканичается на ret. В нашём случае хватит пролога. Видим, что первый байт 99. В дельфи начало процедуры стандартно: push ebp; mov ebp, esp;
    push ebp - опкод 55. Теперь Из-за симметричности XOR берём и ксорим 0x55 на 0x99 и получаем 0xCC. Это и есть нужное значения для ксора. Теперь надо получить пасс, который даст это число. Зная что FF > CC просто пишем в поле пароля CC. Остаток будет CC. Вот и всё.
     
  13. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Да по-моему всё равно, перебрать 255 значений не было сложной задачей, опирался я конечно на то, что первый байт это 55h.
     
  14. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Ну дык а нах тогда перебирал???
     
  15. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Захотелось ёпт
     
  16. tclover

    tclover nobody

    Joined:
    13 Dec 2005
    Messages:
    741
    Likes Received:
    682
    Reputations:
    287
    Дискуссия пошла в неправильном ключе =) Предлагаю тов. Протеусу написать прохождение =)
     
  17. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    >>Да по-моему всё равно, перебрать 255 значений не было сложной задачей, >>опирался я конечно на то, что первый байт это 55h.

    дык эт не брутфорс называется(попробуй пробрути сабж с непосимвольным шифрованием, 4асти4ным хэшифрованием ДЛИННОГО клю4а), а использование намерено оставленной для простоты априорной информации
     
  18. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    >>Дискуссия пошла в неправильном ключе =)
    то4но так, форум-то у нас белый и пуШистый ;)

    >>Предлагаю тов. Протеусу написать прохождение =)
    дык как-то даж не знаю, писать без использования либ php ;) и полного брута как-то неинтеренсно(ибо просто) =) хотя можно будет какой-то сиквелл состряпать
     
  19. BUG(O)R

    BUG(O)R Elder - Старейшина

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    По-моему проведениe N действий над множеством значений A, в результате которых мы имеем второе множество N(a), в поиске значения B всегда называлось брутфорсом, а то о чём ты говоришь всего-лишь условности.
     
    #19 BUG(O)R, 16 Aug 2006
    Last edited: 16 Aug 2006
  20. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    541
    Reputations:
    445
    незнаю как там множества, а шнаер говорит, 4то брут - перебор каждой комбинаций со всего клю4евого простанства (у4ет 55h в таком слу4ае брутом не назовешь)

    а то, 4то нужно было у4итывать пролог никак условностью не назовешь, ибо какой смысл в крякми, основаном ТОЛЬКО на бруте, эт имхо в 99% просто неуважение к крякеру

    2кловер: дык ra$cal же солюшн запостил, 4итай выше ;)
     
    #20 ProTeuS, 16 Aug 2006
    Last edited: 16 Aug 2006