ZloY CrackmE $1

Discussion in 'Реверсинг' started by zl0y, 30 Jan 2007.

  1. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Цель: найти ключ =)
    Написан на делфи.
    Упакован FSG.
    http://slil.ru/23819287
    Ломало пока что человек ...5 - никто не сломал :rolleyes: :eek:

    http://slil.ru/23819287
     
    2 people like this.
  2. taha

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

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Первый опыт антиотладки?? весьма насыщено!!
    Все эти DebugBreak, вшитые IsDebuggerPresent фитчи со стеком.
    Сильно вобщем!
     
  3. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Снял FSG за несколько секунд. Скрыл IsDebuggerPresent.
    Заставил ольку плевать на INT3.
    Крякмис ставит хук на SuspendThread? Чето олька не хочет останавливать поток ))

    В целом - неплохо :) Мне уже нравится.
     
    #3 _Great_, 30 Jan 2007
    Last edited: 30 Jan 2007
  4. Dude03

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

    Joined:
    5 Oct 2006
    Messages:
    49
    Likes Received:
    9
    Reputations:
    7
    Перезалейте, пожалуйста
     
  5. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Вот http://ifolder.ru/1003816
     
  6. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Как ребенок повелся на CreateProcessA =) лол
     
  7. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    4есснгря, не вижу ни4его интересного. кол-вермишель и засраный код, снимается только исходя из нали4ия у крякиръя терпения и пары 4асов свободного времени - не концептуально имхо
     
    1 person likes this.
  8. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Итак, как я понял алго такой. Пароль читается из окошка. По таблице составляется строка. Эта строка пишется в поле пароля. Дальше опять читается пароль, который прога составила из прошлого, обрабатывает по таблице и получает ещё один новый пароль. И так n-число раз. После видимо в поле должно появиться наше имя, ибо там видно strcmp. Обратно считать алго влом. Нету времени. Может позже сделаю киген.
    ЗЫ: если что не так поправь

    [ADDED]
    хм, значит пасс должен быть кратен четырём. причём после каждой итерации. если хоть после одного преобразования там не кратное четырём число - в поле пишется пустота. основное условие для проверки - чтобы после всех преобразований там был текст. копаю дальше.
    ЗЫ: это больше напоминает брутфорс. для крякми достаточно было и штук 3 итераций, а не 10. от этого суть защиты не меняется
    [ADDED]
    Вобщем это очень сильно напоминает хэширование по таблице. Причём хэшируем результат предыдущего хэширования. Вобщем мне совсем не хочется разбираться с этим гавналго. Есть подозрение что вообще есть только одна комбинация имя-пароль. Если что неправильно понял поправь.

    Code:
    00451932  |.  8A5411 FF        |MOV DL,BYTE PTR DS:[ECX+EDX-1]
    00451936  |.  E8 5D28FBFF      |CALL <dmp_.@System@@LStrFromChar$qqrr17System@AnsiStringc (REF 0>
    байт из ключа приводим к строке.

    Code:
    0045193E  |.  50               |PUSH EAX                                                         ; |dest
    0045193F  |.  8D45 F4          |LEA EAX,DWORD PTR SS:[EBP-C]                                     ; |
    00451942  |.  8B15 D44D4500    |MOV EDX,DWORD PTR DS:[454DD4]                                    ; |dmp_.004518B8
    00451948  |.  E8 5B28FBFF      |CALL <dmp_._strcpy>                                              ; \_strcpy
    копируем таблицу

    Code:
    00451950  |.  58               |POP EAX                                                          ;  адрес символа
    00451951  |.  E8 5E2CFBFF      |CALL <dmp_.@System@@LStrPos$qqrv>   
    ; ищем этот символ в таблицеъ
    ищем байт имени
    Code:
    00451956  |.  85C0             |TEST EAX,EAX
    00451958  |.  74 46            |JE SHORT dmp_.004519A0
    есть такой символ или нет
    если нет то пропускаем хэширование как таковое

    поскипано, ибо то же что и было выше
    Code:
    00451988  |.  48               |DEC EAX
    00451989  |.  0FB7C0           |MOVZX EAX,AX
    0045198C  |.  33D2             |XOR EDX,EDX
    0045198E  |.  8AD3             |MOV DL,BL
    00451990  |.  B9 04000000      |MOV ECX,4
    00451995  |.  2BCA             |SUB ECX,EDX
    00451997  |.  03C9             |ADD ECX,ECX
    00451999  |.  8D0C49           |LEA ECX,DWORD PTR DS:[ECX+ECX*2]
    0045199C  |.  D3E0             |SHL EAX,CL
    0045199E  |.  03F8             |ADD EDI,EAX
    004519A0  |>  43               |INC EBX
    004519A1  |.  80FB 05          |CMP BL,5
    вот собсно хэшь. в eax положение байта в таблице. в edx счётчик цикла. вычитаем. получаем 3, 2, 1, 0. Умножаем ecx на 2. потом ещё на 2. и складываем. eax сдвинем на это число. число как можно понять зависит только от edx, то есть от счётчика цикла. eax сдвинули.

    Code:
    004519AA  |.  8AC3             |MOV AL,BL
    004519AC  |.  BA 03000000      |MOV EDX,3
    004519B1  |.  2BD0             |SUB EDX,EAX
    004519B3  |.  8BCA             |MOV ECX,EDX
    004519B5  |.  C1E1 03          |SHL ECX,3
    Опять что то с мутится со счётчкиом.
    Code:
    004519B8  |.  8BD7             |MOV EDX,EDI
    004519BA  |.  D3EA             |SHR EDX,CL
    004519BC  |.  81E2 FF000000    |AND EDX,0FF
    вedi был хэш. значит опять чтото делаем и сохраняем младший байт. он и станет новой буквой в новом пароле.

    Так как число иетраций 3, значит на каждой четвёрке теряем один байт. Чтобы записалось кратное четырём нужно задать первый пасс длиной кратной шестандцати.
    ЗЫ: почти сплю, поэтому вероятны ошибки.
    ЗЫЗЫ: хз, можно ли алго обратить, возможно и можно. Но терять время реально влом.
     
    #8 Ra$cal, 31 Jan 2007
    Last edited: 31 Jan 2007
    1 person likes this.
  9. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Ra$cal,вроде все верно тока существует говноалго где мона генить неорганиченно количество ключей )

    Не суди сторого,с чего и ты начинал =) :rolleyes:
     
    #9 zl0y, 31 Jan 2007
    Last edited: 31 Jan 2007
  10. Xserg

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

    Joined:
    9 Dec 2006
    Messages:
    135
    Likes Received:
    127
    Reputations:
    53
    zl0Y
    Лучше вместо mov al,al много раз
    использовать один раз что то подобное
    Asm
    db $eb,$01,$a1 // так код не похож на издевательский
    end;

    Вопросик :
    Чтобы нормально побрутить я отключил Timer.
    Он вообще в проверке key участвует?
    Если участвует, то искать key, я пас.

    А так по любому +.
     
  11. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Xserg,да участвует это часть задумки =)

    Ну отпишитесь кто нить нашел кто то ключ верный или нет =) ?
     
    1 person likes this.
  12. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Посоветовался с протеусом =)) После найденого валидноко ключа не кидать меня помидорами :) :(

    Вечером выложу кейген ;) :D
     
    #12 zl0y, 31 Jan 2007
    Last edited: 31 Jan 2007
  13. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    гм, ждём кому не жалко времени своего =)
     
    #13 Ra$cal, 31 Jan 2007
    Last edited: 31 Jan 2007
  14. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Меня заломало смотреть :)
     
  15. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    Кароч, если б это была программа которая нужна, её конечно доломать не проблема. Надо разобрать, какой элемент таблицы будет давать 0 при какой итерации хеша. И дальше смотреть что получится после десятого преобразования. Мне влом чёта кодить для крякми. Так что так. Крякми неломался не из-за сложности, это как в анеке про неуловимиого Джо ;)
    ЗЫ: тут всё открыто и ясно. соглашусь с протеусом, что ничё выдающегося, то есть изюминки =)
    ЗЫЗЫ: злой, поломай мой перывй крякми ;) Его никто не сломал ни здесь ни на кряклабе. по той же причине что и твой. ничё нового, делать много, а результат лишь моральное удовлетворение.
     
    #15 Ra$cal, 31 Jan 2007
    Last edited: 31 Jan 2007
  16. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Ссылочку кинь =)
     
  17. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    тема здесь была, ща не найду. толи стёрли то ли хз.
    http://ifolder.ru/1010324 - вот крякми
    Найди валидный ключ ;)
     
  18. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Все как ты сказал =) [​IMG] :eek:
     
  19. Ra$cal

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

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    чё? Если ты про колы, то это CRT, я тут не при чём. Не в ту сторону ты смотришь. Алго совсем другой. Так что дерзай ;)
     
    #19 Ra$cal, 31 Jan 2007
    Last edited: 31 Jan 2007