Сейчас на форуме: (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Сравнение строк в AnsiString #2
Посл.ответ Сообщение

Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 июля 2010 19:39
· Личное сообщение · #1

Привет всем! Извините, но из темы http://www.exelab.ru/f/action=vthread&forum=5&topic=16509 я мало что вынес для себя. Вы говорили надо искать пароль найдя все вхождения текстовых строк. Я написал крякмис №2. Там пароль не храниться в теле программы. Он вычисляется из введенного имени и присваивается переменной типа AnsiString (например str1). Затем программа берет введенный пароль и присваивает его переменной, так же типа AnsiString (например str2). Потом программа просто выполняет такой оператор:
if(str2 == str1)
и, соответственно условию, выводит сообщение о правильном или не правильном пароле.

Для меня является проблемой такой вопрос: с чего начинать поиск пароля??? Я не сомневаюсь, что вы взломаете мой крякмис за очень малый промежуток времени и, может потом, поделитесь опытом...
Задача на крякмис: узнать пароль для имени Cracklab.Ru
Жду ваших ответов!

f1c5_30.07.2010_CRACKLAB.rU.tgz - Crackme #2.exe



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 30 июля 2010 20:38
· Личное сообщение · #2

Это классический крякмис для первого раза.
1. открытие в дизассемблере (HDasm)
2. поиск стрингов о верном/неверном серийнике (поиск по строкам)
3. выход на операцию генерации и сравнения.

генерация по адресу 401AF3
сравнение - 401АВВ(но точнее - 424Е6С), после нее обычный условный переход 00401AC2 | JE SHORT 00401AF3
в данном случае можно тупо в стеке спалить после процедуры генерации, посему непонятен смысл топика.
достаточно скормить крякмис ольке и все видно.



Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 июля 2010 20:50 · Поправил: d7d1cd
· Личное сообщение · #3

Gerpes пишет:
Это классический крякмис для первого раза.1. открытие в дизассемблере (HDasm)2. поиск стрингов о верном...


Подскажите, пожалуйста, как в Ольке все это осуществить... Заранее признателен...




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 30 июля 2010 21:31
· Личное сообщение · #4

Настоятельно рекомендую почитать статьи для новичков сперва.



Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 июля 2010 21:35
· Личное сообщение · #5

Прочитал. И не раз... Подскажите, пожалуйста... Я в Ольке выполнив поиск всех текстовых строк не нашел строк о верном\неверно пароле, но нашел их в дампе памяти. Скажите, как я теперь могу это использовать?



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 30 июля 2010 22:04
· Личное сообщение · #6

у меня правой кн- search for- all referenced text string. но т.к. моя оля не кажет кириллицу, все равно смотрю в HDasm'е, там хотя бы читается.



Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 30 июля 2010 22:30
· Личное сообщение · #7

Кто-нибудь, подскажите, как в Ольке начать поиск пароля...



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 июля 2010 00:12
· Личное сообщение · #8

Сомнeвaюсь что ты читaл нe один рaз eсли стопоришься нa элeмeнтaрных дeйствиях. Рикaрдо и лeну поштудируй eщё рaзок.



Ранг: 129.0 (ветеран), 116thx
Активность: 0.060
Статус: Участник

Создано: 31 июля 2010 01:43
· Личное сообщение · #9

d7d1cd пишет:
Кто-нибудь, подскажите, как в Ольке начать поиск пароля...

Ну для начала найдя строчку в твоем крекми "Пароль не правильный", поставь бряк не много выше по коду, например здесь:
Code:
  1. 004019C0  /.  55            PUSH EBP

и далее потрассируй(F8) до этого места:
Code:
  1. 00401ABB  |.  E8 74600600   CALL Crackme_.00467B34

Зайди в этот call(F7)
Дойдя до этого адреса:
Code:
  1. 00467B3C  |.  E8 2BD3FBFF   CALL Crackme_.00424E6C

ты увидеш в:
EAX - не правильный пароль
ECX - введенное имя
EDX - правильный пароль
То есть, для имени Hacked, правильный пароль будет 242829302929

-----
We do what we want because we can.




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 09:57
· Личное сообщение · #10

verdizela пишет:
Ну для начала найдя строчку в твоем крекми "Пароль не правильный", поставь бряк не много выше по коду...


Все дело в том, что я в Ольке в дампе нашел строчку "Пароль не правильный", определил, что начало этой строки находится по адресу 004691DA. Но ведь в коде программы я не знаю, где вызывается эта строка. Как поставить бряк? Это мой самый важный вопрос!!!




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 10:58
· Личное сообщение · #11

Вобще адрес ShowMessage находится здесь
00401B0B call 0044BF00 ; ShowMessage

По нему и ищется, потому что текст на русском сложно искать, что бы найти ShowMessage() нужно устанавливать bp ShowWindow и двигаться от него, была тема где я подробно рассматривал поиск
называется в поисках ShowMessage

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 11:45
· Личное сообщение · #12

Вопрос!!! Правильно ли я сделаю, если начну взлом своей программы с установки в Ольке бряка на функцию GetWindowTextA???




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 12:02
· Личное сообщение · #13

Программа написана с помощью Borland Builder C++ (Delphi тоже) не на чистом WinAPI, а это значит что используются внутренние функции VCL, GetWindowText не сработает, надо ставить бряк на функцию показа окна, а именно bp ShowWindow

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 12:04
· Личное сообщение · #14

Ошибочка! Бряк на GetWindowTextA срабатывает!!! И срабатывает он именно тогда, когда я нажимаю в программе кнопку проверить!




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 12:07 · Поправил: Coderess
· Личное сообщение · #15

GetWindowText -- срабатывает, только после вызова проверки и то для чтения заголовка/класса окна, но никак не для считывания из полей ввода Edit1-2

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 12:17
· Личное сообщение · #16

Упс... Но все равно, трассируя программу, я нашел то место, где вызывается окно о неверном пароле:
Code:
  1. 0044BECC FF92 E8000000 CALL DWORD PTR DS:[EDX+E8]


По сути я нашел то место, где должна сработать функция ShowWindow? Так?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 12:22
· Личное сообщение · #17

Да, только глубже в вызовы зашел

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 12:37 · Поправил: d7d1cd
· Личное сообщение · #18

Понятно. Только что попробовал установить бряк на ShowWindow. По нажатию на кнопку Проверить так же перехожу в Олю. Пароль надо искать выше по коду?

Извините. Знаю, что для вас мои вопросы выглядят совсем "детскими". Сам знаком с подобным, когда отвечаю на вопросы по программированию. Но в крэкинге я 0х00! Ответьте, пожалуйста...




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 15:14
· Личное сообщение · #19

Русский текст не ищется, есть опция в оле, но я не пробовал, да и не помню как она настраивается, если текст выдаваемого сообщения при не правильнном вводе был бы на английском то легко найти, а так незнаю. Не пойму, зачем нужно искать текст сообщения, если полно и других методов

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 15:48
· Личное сообщение · #20

Хорошо. Применительно к моей программе с чего начать взлом?



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 31 июля 2010 18:26
· Личное сообщение · #21

дeкомпилeм пройдись, скaзaли ужe способов уймa и всe описaны в стaтьях. Что ты eщё хочeшь? Читaй стaтьи мотaй нa ус и дeтскиe вопросы отпaдут*сaми собой, для новичкa лучшe Рикaрдо и лeны нe нaйдёшь.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 31 июля 2010 19:36
· Личное сообщение · #22

d7d1cd Я с моего первого поста говорил о твоей программе.

Возможные методы действия:
1. Находишь обрабочик нажатия на кнопку button1 - через какой-нить DEDE
2. Ищешь по bp ShowWindow

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 20:50
· Личное сообщение · #23

Что такое DEDE?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 31 июля 2010 21:01
· Личное сообщение · #24

Тебя тоже в гугле забанили? Как и беднягу из соседнего топика? И понимаю, конечно, что новички, но совсем то утомлять не надо. Мало того, что не читал статьи и сам ничего толком не делал, ещё и в гугл лень сходить.



Ранг: 9.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 июля 2010 21:06
· Личное сообщение · #25

Sorry... Буду читать Дневники чайника. Нормально начало?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 31 июля 2010 21:59
· Личное сообщение · #26

Читай всё подряд и ковыряй сам как минимум до тех пор, пока не отпадут такие явные вопросы. Статей полно, начиная хотя бы с раздела https://cracklab.ru/kid.php



Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 02 августа 2010 09:21
· Личное сообщение · #27

d7d1cd
Вот ещё кое-что интересное:
--> В поисках ShowMessage<--


 eXeL@B —› Вопросы новичков —› Сравнение строк в AnsiString #2
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати