Русский / Russian English / Английский

Сейчас на форуме: Adler, sss123 (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Вопросы новичков —› Обсуждение Crackme
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 8.7 (гость)
Статус: Участник

Создано: 18 марта 2012 01:17 New!
Цитата · Личное сообщение · #1

Как бы не нашел общий раздел для обсуждения Crackme, предлогаю тут обсуждать

После просмотра видеоуроков от Bad_guy по крекинду, и скачав вредварительно крэкми --> ОТСЮДА <--, возник вопрос насчет fant-cm4.zip.
Задача:
- Find a valid serial for your nick/name
- Patch the crackme to accept any input as valid serial


В ollydbg как бы вроде понял логику, но вот не хватает знания насчет "генераций" логин и пароля..
Вот мне кажется тут что -то мутится:
CPU Disasm
Code:
  1. Address   Hex dump          Command                                Comments
  2. 0040120A  |.  68 84304000   PUSH OFFSET 00403084                   ; |String
  3. 0040120F  |.  68 E8030000   PUSH 3E8                               ; |ItemID = 1000.
  4. 00401214  |.  FF75 08       PUSH DWORD PTR SS:[ARG.1]              ; |hDialog => [ARG.1]
  5. 00401217  |.  E8 62010000   CALL <JMP.&USER32.GetDlgItemTextA>     ; \USER32.GetDlgItemTextA
  6. 0040121C  |.  68 00010000   PUSH 100                               ; /MaxCount = 256.
  7. 00401221  |.  68 84314000   PUSH OFFSET 00403184                   ; |String
  8. 00401226  |.  68 E9030000   PUSH 3E9                               ; |ItemID = 1001.
  9. 0040122B  |.  FF75 08       PUSH DWORD PTR SS:[ARG.1]              ; |hDialog => [ARG.1]
  10. 0040122E  |.  E8 4B010000   CALL <JMP.&USER32.GetDlgItemTextA>     ; \USER32.GetDlgItemTextA
  11. 00401233  |.  FF75 08       PUSH DWORD PTR SS:[ARG.1]              ; /Arg1 => [ARG.1]
  12. 00401236  |.  E8 BE000000   CALL 004012F9                          ; \CRACKME4.004012F9
  13. 0040123B  |.  83F8 00       CMP EAX,0

А после этого выполняется JE (если равно) переход на
Code:
  1. Address   Hex dump          Command                                Comments
  2. 00401255  |> \6A 30         PUSH 30                                ; /Type = MB_OK|MB_ICONEXCLAMATION|MB_DEFBUTTON1|MB_APPLMODAL
  3. 00401257  |.  68 29304000   PUSH OFFSET 00403029                   ; |Caption = "Check Serial"
  4. 0040125C  |.  68 36304000   PUSH OFFSET 00403036                   ; |Text = "Wrong Serial! Keep trying, you'll get it!"

а если условие не выполняется, то выполняется дальше:
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                Comments
  3. 00401240  |.  6A 40         PUSH 40                                ; /Type = MB_OK|MB_ICONASTERISK|MB_DEFBUTTON1|MB_APPLMODAL
  4. 00401242  |.  68 29304000   PUSH OFFSET 00403029                   ; |Caption = "Check Serial"
  5. 00401247  |.  68 60304000   PUSH OFFSET 00403060                   ; |Text = "You got it! Congrats! <img src="http://exelab.ru/f/img/smilies/s1.gif" border="0" align="" alt="">"
  6. 0040124C  |.  6A 00         PUSH 0                                 ; |hOwner = NULL
  7. 0040124E  |.  E8 49010000   CALL <JMP.&USER32.MessageBoxA>         ; \USER32.MessageBoxA

т.е. если ZF=0, то логин и пароль подошли.
Но это второй часть, я думаю место JE написать JMP и написать переход на 00401240.
А вот с первой частью не понимаю - откуда найти логин и пароль? В видеокурсе на первом Crackme пароль была написань в самом коде, а тут уже "серьезная защита"

Подкажите пожалуйста как решать задачу? ненадо сказать логин и пароль, а скажите только на каком направлений копать. Мне явно не хватает знаний команд и не понимаю где зашифрован логин и пароль.


Ранг: 669.3 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 18 июня 2013 12:10 New!
Цитата · Личное сообщение · #2

Hellspawn
Так с обфусцированными / криптованными экзешниками не всегда работает. А так - конечно, и DEDE, и декомпиль от crypto.

Ранг: 306.6 (мудрец)
Статус: Модератор
CrackLab

Создано: 18 июня 2013 12:31 New!
Цитата · Личное сообщение · #3

в аттаче скрипт, ставит бряки на все переходы на обработчики


{ Атач доступен только для участников форума } - _Call Magicas Delphi.rar

Ранг: 10.4 (новичок)
Статус: Участник

Создано: 18 июня 2013 12:54 · Поправил: dfnsff New!
Цитата · Личное сообщение · #4

ARCHANGEL пишет:
Показываю на примере и прикладываю в аттаче.


Превосходно! - давно смотрел на эти хэндлы в API Monitor и AutoIt Window Information Tool думал как их применить к отладке. только 1 вопрос как поставить этот брейкпоинт на хэндл??(((в какой библиотеке эти адреса, в данном случае 003F0FD5). Про кривость метода: я и не надеялся получить от этого крякми методы, просто изучаю как это делается - наверное проще было бы сделать Loader(хотя я ещё до этого не дошел) а не распаковывать какими-то ужасными скриптами.

Hellspawn пишет:
если уж на то пошло, то натравить EMS Source Rescuer хотя бы на дамп, нэ?


не работает для этого крякми(или может для всех программ нераспакованных). для дампа показала какие-то коды, пока не понял как это применить)). спасибо, мб пригодится))

SReg пишет:
в аттаче скрипт, ставит бряки на все переходы на обработчики


чёт не работает)даже после распаковки программы в памяти. для незапакованных то всё просто) можно и OllySnake(плагин) применить и сразу же найти нужную обработку, да и "офлайн" анализ в IDA мог бы помочь(с дампами IDA понятно плохо работает, хотя тоже можно что-то обнаружить)


Ранг: 669.3 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 18 июня 2013 13:37 · Поправил: ARCHANGEL New!
Цитата · Личное сообщение · #5

dfnsff пишет:
как поставить этот брейкпоинт на хэндл??(((в какой библиотеке эти адреса, в данном случае 003F0FD5)

В олли Ctrl+G и вписывай адрес. Этот адрес принадлежит блоку выделенной памяти, ни в какой он не библиотеке. И не на хэндл, а на хэндлер (Handler - обработчик).

Ранг: 10.4 (новичок)
Статус: Участник

Создано: 18 июня 2013 13:49 · Поправил: dfnsff New!
Цитата · Личное сообщение · #6

Да, да, хэндлер - указатель на обработчик окна в памяти, а не само название окна)) это я примерно понял уже. спасибо. дальше буду "ломать" эти крякми до прозрения

добавлено немного погодя: Всё получилось, полезный гайд как отлавливать обработчики в Delphi

Добавлено вечером: вобщем всё мучаюсь с крякми Hard Protect by Alexey Solodovnikov, сделал лоадер по статье Создание лоадера, но там в комментариях написано "Чтобы работало на всех машинах надо искать место патча по сигнатуре..." - это как я понял последовательность байт того места где нужно патчить. но там в листинге лоадера указываются ещё начало и размер сегмента кода(видимо чтобы сделать эти адреса записываемыми).

И теперь вопрос:Кто нибудь знает как найти в ассемблере адрес начала и резмер сегмента кода?? хочу сделать универсальный шаблон лоадера(а то эти адреса же могут меняться в зависимости от машины и программы)(код asm в аттаче)

{ Атач доступен только для участников форума } - HACKME1Loader.zip


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 18 июня 2013 20:50 New!
Цитата · Личное сообщение · #7

ARCHANGEL ок. тогда ещё способ

используем плагин GODUP. просто запускаем таргет:


выбираем пункт -> прочесть ресурсы


находим в ресурсах форму и палим обработчик -> двойной клк и плагин поставит бряк


удобно. новичкам самое оно.

dfnsff это секция кода, она есть в заголовке - BaseOfCode, SizeOfCode. если ты патчил код программы, то если релоков нету, адреса будут всегда одинаковые

| Сообщение посчитали полезным: dfnsff



Ранг: 669.3 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 18 июня 2013 21:04 New!
Цитата · Личное сообщение · #8

Hellspawn
Ага, тут хорошо работает. А вот если ресурсы пожаты? А в непожатом можно обычным Restorator'ом посмотреть. Новички это должны уметь. В общем, гайдов надавали достаточно. Надеюсь, что новички больше не будут теряться, если им делфишная прога попадётся.

Ранг: 23.1 (новичок)
Статус: Участник

Создано: 18 июня 2013 21:33 · Поправил: ZX-CodeR New!
Цитата · Личное сообщение · #9

dfnsff пишет:
И теперь вопрос:Кто нибудь знает как найти в ассемблере адрес начала и резмер сегмента кода?? хочу сделать универсальный шаблон лоадера(а то эти адреса же могут меняться в зависимости от машины и программы)(код asm в аттаче)

На rsdn.ru есть статья Форматы РЕ и COFF объектных файлов, найди ее и прочти всю. И вообще прежде чем спросить поищи как следует.

| Сообщение посчитали полезным: dfnsff


Ранг: 10.4 (новичок)
Статус: Участник

Создано: 19 июня 2013 00:19 · Поправил: dfnsff New!
Цитата · Личное сообщение · #10

Hellspawn пишет:
используем плагин GODUP

Заодно посмотрел другие аддоны с скриншота которые используют "nice reverser-ы"))

Hellspawn пишет:
это секция кода, она есть в заголовке - BaseOfCode, SizeOfCode. если ты патчил код программы, то если релоков нету, адреса будут всегда одинаковые

Релоки - вот из-за чего меняться всё может, видимо всётаки придётся искать место нужное по последовательности байтов(т.к. видимо и код можно перемещать внутри секции)...понятно спасибо за информацию. Как раз это и интересно было, если ничего не меняется - то адрес секции можно и в программе какой-нибудь посмотреть, хотя теперь то уж лучше считать с заголовка для тренировки))

ZX-CodeR пишет:
На rsdn.ru есть статья Форматы РЕ и COFF объектных файлов, найди ее и прочти всю. И вообще прежде чем спросить поищи как следует.

если честно я слова COFF ни разу не слышал. буду приучаться к чтению...

Ранг: 23.1 (новичок)
Статус: Участник

Создано: 19 июня 2013 00:30 · Поправил: ZX-CodeR New!
Цитата · Личное сообщение · #11

dfnsff пишет:
если честно я слова COFF ни разу не слышал.

Забей на COFF, тебе нужен PE, а там он прекрасно расписан, и про релоки и про импорт с экспортом , все это маст ноу
Для экспериментов сразу скачай PETools, и открывай екзешники через PE Editor, и исследуй те знания про которые узнаешь вновь.
<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› Обсуждение Crackme

Видеокурс ВЗЛОМ