hidden's крякми 2

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

  1. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Итак наступило время для моего нового крякми, просто пришла в на мой взгляд интересная идея, хотел сделать его простеньким, но..., потраченное на него время не позволяет сделать его таким, так-что берите как есть :) .

    Достоинства:
    • Именной ключ ( на каждое имя может быть не один ключ ( это подсказка ;) ) )
    • Новый метод криптовки ( не просто заXORривание)
    • Написан на [thread=22660]fasm'e[/thread]
    • Палюбившийся всем нам способ защиты ( вылетает при вводе неправельного люча :D , а если повезёт, может и циклонутся)

    Недостатки:
    • Ключ не криптуется, т.е. если знаешь один ключ, легко сделать другой

    Для любителей пропатчить, это не стоит того, если можешь пропачить, значит ключь очень близко ;)

    <-[ Мой крякми 2 ]-> - 8.7 Кб ( Какие-то проблемы со старым хостингом, так что переименуйте gif в rar :D )

    Удачи...

    Не выкладывайте здесь ключи, другим будет не интересно.
     
    #1 hidden, 28 Aug 2006
    Last edited: 28 Aug 2006
    1 person likes this.
  2. BUG(O)R

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

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Хоть бы тестили свои крякмисы на паре осей...
    У меня падает по адресу:
    00401113 3232 Xor Dh,byte Ptr Ds:[edx]
     
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    :) Туда вообще управление никогда передаваться не должно.
    Видема неверный ключ ;)
     
    #3 hidden, 28 Aug 2006
    Last edited: 28 Aug 2006
  4. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    вообщем алго таков:
    после 4 циклов симметри4еского шифрования (ну или хэширования, если это так можно назвать)сериала модифицируется EAX и мы прыгаем
    00401155 FFD0 CALL EAX
    если клю4 будет верным (в EAX будет константный опкод), то мы прыгнем на .00401140, на котором с либы вызовется MessageBox с сообщением о правильном серийнике. Влом было брутить и расшифровывать, я просто сделал пат4 тут:

    00401140 -E9 BB00D8FF JMP MYUTILS.00181200
    00401145 90 NOP
    00401146 90 NOP
    00401147 90 NOP
    00401148 90 NOP

    в принципе, тут и есть логи4еское окон4ание защиты...
     
    #4 ProTeuS, 28 Aug 2006
    Last edited: 28 Aug 2006
    1 person likes this.
  5. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Никакого брута, ключь есть его надо найти!
    Какое сообщение ты получил, "Congratulation ProTeuS"?
     
  6. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    при4ем тут сообщение, я имею ввиду 4то в слу4ае ввода правильного серийника вызов будет тут:
    00181200 57 PUSH EDI
    00181201 6A 40 PUSH 40
    00181203 68 13121800 PUSH MYUTILS.00181213 ; ASCII "hidden's CrackMe"
    00181208 50 PUSH EAX
    00181209 6A 00 PUSH 0
    0018120B FF15 B0101800 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; USER32.MessageBoxA
    00181211 5F POP EDI

    а текст сообщения о верном серийнике формируется тут:
    0040114F 66:C740 02 FFE0 MOV WORD PTR DS:[EAX+2],0E0FF
    00401155 FFD0 CALL EAX

    как я понимаю, половину строки будет браться из серийника, половину из зашифрованного буфера на 10 байт выше (после расшифроваки
    00401140 34 12 XOR AL,12
    00401142 FFE0 JMP EAX ; hcm.00401152
    )
     
  7. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Я понимаю что легко воспользоваться зараннее заготовленной функцией для замены стандартной, но ведь в зашифрованном блоку предпологается хнанить саму программу.
    Как ты уже заметил в ключе присутствует 2х байтовая инструкция, неужели так много 2х байтовых очень распространённых инструкций?
    В серийнеке содержится 2х байтовая инструкция и имя пользователя.
     
    1 person likes this.
  8. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    забавный момент, если ввести в ка4естве сериала "feeb свое имя", то прога запишет в следующую после прос4ета серийника команду "ebfe" и зациклится =)

    а вообще, .00401140 именно сюда записываются введенные в серийник первые 2 оппкод-байта
     
    #8 ProTeuS, 28 Aug 2006
    Last edited: 28 Aug 2006
  9. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    а клю4 вида "EBEBProTeuS", где 1 байт нужно подобрать немного "вверх", 2 байт-для прыжка на MessageBox после расшифровки зашифрованного текста, остальные - имя пользователя
     
    1 person likes this.
  10. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    2hidden, я сна4ала думал, 4то после СМК будет инструкция не безусловного перехода, а 4то-то вроде inc eax. тогда бы 2 байта оставались на jmp ****, а остальные (модифицируемые 0040114F 66:C740 02 FFE0 MOV WORD PTR DS:[EAX+2],0E0FF) на jmp eax
     
  11. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Не надо ничего подберать ключь в виде XXXX-64646968-00006E65
    подумай над использованием этих инструкций ;)
    mov,xor
    незабудь 2 bytes
     
  12. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Кстате, есть возможность даже иньекцию через ключ провернуть, но это побочный эффект, который я забыл устранить ;)
    89d8-xxxxxxxx-xxxxxxxx-c3xxxxxxxx
    там где Xxx произвольный код
     
  13. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    >>Не надо ничего подберать ключь в виде XXXX-64646968-00006E65
    >>подумай над использованием этих инструкций
    >>mov,xor
    имхо в этом и заклю4ается подбор, расксорить зашиврованые текст (подобрав перед этим нужный вводимый в сериале оппкод)

    >>Туда вообще управление никогда передаваться не должно.
    >>Видема неверный ключ
    если подобрать достато4но близкий к FFh (либо к 0) оппкод, то в этот адресс можно перепрыгнуть
     
  14. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Я имею введу подбор должен быть мысенный ;)

    Подсказка:
    Code:
    C:/>debug hcm.exe
    -g
     
    #14 hidden, 28 Aug 2006
    Last edited: 28 Aug 2006
  15. BUG(O)R

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

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    Она вообще не запускатеся, падает и всё на ээтом месте.
    ProTeuS, кака я утебя ось? Я подозреваю, что Sp2 если, а крякмис не работает ни на чём ниже sp2 походу.
     
  16. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Откуда перешло управление, ты можешь пошагово трасcеровать?
     
  17. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    2BUG(O)R: SP2, all patches
     
  18. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    2BUG(O)R, я нашел причину, в sp1 есть баг который позже устранили:
    Функция "DialogBoxParamA" не совместима с "*.exe.manifest", просто удали его
     
  19. BUG(O)R

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

    Joined:
    15 Aug 2006
    Messages:
    63
    Likes Received:
    15
    Reputations:
    16
    К программам на асме манифест прикручивается очень просто и работает это везде, причём даже не надо такскать за собой доп. файлов всё делается через ресурсы.
    А ломать уже неинтересно по постам выше и так вся суть понятна)