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

 eXeL@B —› Вопросы новичков —› fant-cm5 обходим защиту 4 Protection. Password, Nag, CD Check, Name/Serial
Посл.ответ Сообщение

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 мая 2011 23:36 · Поправил: BiosMen
· Личное сообщение · #1

Стаття создана суто для новачков таких как я, это нароботка умений за 7 дней, ну и что научилса то и пишу, может кому то пригодится таким как я).
Вот файл --> Link <--
Использовал:
1) Ollydbg
2) IDA Pro Advanced

Заходим в Protection (в окне FaNt0m's, пока что не запускаем под Ollydbg) там первая защита Password, просит ввести пароль. Эсли вводиш не верный пароль выводит "Nope, try again!".
Первое что делаем запускаем Ollydbg, и Open executable file... или F3, загрузилса CRACKME5, и ми стаим на входе в программу
CPU Disasm
Address Hex dump Command Comments
00401000 /. 6A 00 PUSH 0 ; /ModuleName = NULL
что мы делаем дале, сначала нам нужно поставить бряк, но куда?, использую вариант поиска ANCII строки с нашым ответом на наш неверный пароль "Nope, try again!". В проге Olledbg в окне CPU нажымаем правой клавишей мышы открываем меню и выбираем Go to -> Expression... и в окне вводим 00401397
Откуда мы узнали что надо вводить 00401397, для поиска каких то ANSII удобно использовать IDA Pro Advanced. Загружаем туда наш CRACKME5, дале нажымаем ОК, видим наш дезесемблированый ехе жмем праву кномку мыше и выберем Text view, видем адреса, и дезесемблрованый код, дале жмем поиск текста, иконка вид бинокля с литерой А, или Alt+T, в поле String вводим Nope, try again!, и мы попадаем в это
.text:00401397 push offset Text ; "Nope, try again!"
от это .text:00401397 адрес куда пишетца наш "Nope, try again!", мы копируем наш адрес 00401397 и вставлям в Olly так как я выше описал.
Нас кидает
CPU Disasm
Address Hex dump Command Comments
00401397 |. 68 E9304000 PUSH OFFSET 004030E9 ; |Text = "Nope, try again!"
на эту строку, смотрим дале,
CPU Disasm
Address Hex dump Command Comments
00401390 |. 6A 30 PUSH 30 ; /Type = MB_OK|MB_ICONEXCLAMATION|MB_DEFBUTTON1|MB_APPLMODAL
00401392 |. 68 B2304000 PUSH OFFSET 004030B2 ; |Caption = "Password Check"
00401397 |. 68 E9304000 PUSH OFFSET 004030E9 ; |Text = "Nope, try again!"
0040139C |. 6A 00 PUSH 0 ; |hOwner = NULL
0040139E |. E8 C7030000 CALL <JMP.&USER32.MessageBoxA> ; \USER32.MessageBoxA
что у нас здесь эсть, ми видем передачу параметров в MessageBoxA, немного внизу у нас эсть ищо кусок
CPU Disasm
Address Hex dump Command Comments
004013A5 |> \6A 40 PUSH 40 ; /Type = MB_OK|MB_ICONASTERISK|MB_DEFBUTTON1|MB_APPLMODAL
004013A7 |. 68 B2304000 PUSH OFFSET 004030B2 ; |Caption = "Password Check"
004013AC |. 68 C1304000 PUSH OFFSET 004030C1 ; |Text = "Good job, you got the correct password!"
004013B1 |. 6A 00 PUSH 0 ; |hOwner = NULL
004013B3 |. E8 B2030000 CALL <JMP.&USER32.MessageBoxA> ; \USER32.MessageBoxA
Это тот кусок который нам нужно чтоб он нам вывелса на екран. Ищем как ми переходим сюда, и тыкаем по строках от низу MessageBoxA к верху и смотрим что когда мы попалы на
CPU Disasm
Address Hex dump Command Comments
004013A5 |> \6A 40 PUSH 40 ; /Type = MB_OK|MB_ICONASTERISK|MB_DEFBUTTON1|MB_APPLMODAL
то у нас появилася стрелка сверху вныз в 2-гом столбце.
CPU Disasm
Address Hex dump Command Comments
0040138E |. /74 15 JE SHORT 004013A5
В справочнику по Асму смотрим что JNE срабатывает лиш тогда когда в JZ/JE нуль или равно ZF=1, крутим вгору смотрим что же устанавливает флаг ZF=1
Вот кусок проверки пароля
CPU Disasm
Address Hex dump Command Comments
0040133E |> \68 00010000 PUSH 100 ; /MaxCount = 256.
00401343 |. 68 B8334000 PUSH OFFSET 004033B8 ; |String = "1234"
00401348 |. 68 E8030000 PUSH 3E8 ; |ItemID = 1000.
0040134D |. FF35 B8344000 PUSH DWORD PTR DS:[4034B8] ; |hDialog = 0039048A, class = #32770, text = Password Protection
00401353 |. E8 F4030000 CALL <JMP.&USER32.GetDlgItemTextA> ; \USER32.GetDlgItemTextA
00401358 |. 68 B8334000 PUSH OFFSET 004033B8 ; /String2 = "1234"
0040135D |. 68 A2304000 PUSH OFFSET 004030A2 ; |String1 = "JD39-CK4-5QV345"
00401362 |. E8 51040000 CALL <JMP.&KERNEL32.lstrcmpA> ; \KERNEL32.lstrcmpA
00401367 |. 50 PUSH EAX
00401368 |. 6A 00 PUSH 0
0040136A |. 83F0 40 XOR EAX,00000040
0040136D |. 66:83E0 10 AND AX,0010
00401371 |. C1E8 0D SHR EAX,0D
00401374 |. C1E0 03 SHL EAX,3
00401377 |. 58 POP EAX
00401378 |. 83F8 00 CMP EAX,0
0040137B |. 75 28 JNE SHORT 004013A5
0040137D |. 83F0 40 XOR EAX,00000040
00401380 |. C1E8 0D SHR EAX,0D
00401383 |. 66:83E0 10 AND AX,0010
00401387 |. C1E0 03 SHL EAX,3
0040138A |. 58 POP EAX
0040138B |. 83F8 00 CMP EAX,0
0040138E |. 74 15 JE SHORT 004013A5

С этого куска сразу видно какой пароль, мы вводили и с каким он сравниваеца,
00401358 |. 68 B8334000 PUSH OFFSET 004033B8 ; /String2 = "1234" ; вводили
0040135D |. 68 A2304000 PUSH OFFSET 004030A2 ; |String1 = "JD39-CK4-5QV345" ; с каким сравниваеца.
Дале идьот функцыя сравнение строк strcmpA, котороя помещает даные в
00401367 |. 50 PUSH EAX
0040136A |. 83F0 40 XOR EAX,00000040 - XOR работает так эсли ХОР JD39-CK4-5QV345,JD39-CK4-5QV345 било б так тогда получилось б 0, можете провереть в калькуляторе введите 10 ХОР 10 получите 0, два разных дадут 1, вот табличка посмотрите на --> Link <--

00401378 |. 83F8 00 CMP EAX,0
CMP сравнивает EAX с 0 эсли не равно тогда 0 а эсли равно тогда 1

Поетому когда
ХОР даст Z= 0, а СМР даст Z = 1, ми перейдем с
CPU Disasm
Address Hex dump Command Comments
0040138E |. /74 15 JE SHORT 004013A5
на
CPU Disasm
Address Hex dump Command Comments
004013A5 |> \6A 40 PUSH 40 ; /Type = MB_OK|MB_ICONASTERISK|MB_DEFBUTTON1|MB_APPLMODAL
004013A7 |. 68 B2304000 PUSH OFFSET 004030B2 ; |Caption = "Password Check"
004013AC |. 68 C1304000 PUSH OFFSET 004030C1 ; |Text = "Good job, you got the correct password!"
004013B1 |. 6A 00 PUSH 0 ; |hOwner = NULL
004013B3 |. E8 B2030000 CALL <JMP.&USER32.MessageBoxA> ; \USER32.MessageBoxA

Пароль как видили выше
0040135D |. 68 A2304000 PUSH OFFSET 004030A2 ; |String1 = "JD39-CK4-5QV345" ;
Продолжение следует....
РS: ошыпки поправте, с рускским у меня плохо, не грамотной... =(
Это первая стаття, сильно не ругайте.

Как и обещал продолжение...
Обход Nag nag.
В статтях которых вы прочлы описывалось как обойти Nag nag, но я попытаюсь обяснить как то посвойом что там и как.
В меню Protection -> Nag, нажали и чотко видем
Nag Nag Nag
Remove this message box!
Nag nag nag
Тепер будем искать Remove this message box!, забиваем в IDA Pro Advanced, или "Search for" и там "All referenced text strings" как нам подсказал L0ST, и видим в IDA Pro Advanced
.text:00401424 ; =============== S U B R O U T I N E =======================================
.text:00401424
.text:00401424
.text:00401424 sub_401424 proc near ; CODE XREF: sub_401110:loc_4011C8p
.text:00401424 push 30h ; uType
.text:00401426 push offset aRemoveMe ; "Remove me!"
.text:0040142B push offset aNagNagNagRemov ; "Nag Nag Nag\n\rRemove this message box!\n\r"...
.text:00401430 push 0 ; hWnd
.text:00401432 call MessageBoxA
.text:00401437 retn
.text:00401437 sub_401424 endp
.text:00401437
.text:00401438
так выглядит в Ollydbg
Address = 0040142B
Command = PUSH OFFSET 00403155
Comments = ASCII "Nag Nag Nag Remove this message box! Nag Nag Nag"
Переходим на этот адрес и ставим бряк на
CPU Disasm
Address Hex dump Command Comments
00401424 /$ 6A 30 PUSH 30 ; /Type = MB_OK|MB_ICONEXCLAMATION|MB_DEFBUTTON1|MB_APPLMODAL
Почему на PUSH, потомушто окно основное посылает сюда даные Type = MB_OK|MB_ICONEXCLAMATION|MB_DEFBUTTON1| типа была нажата кнопка, смотрим дале какая процедура ссылается сюда.
Просто узнавать без трасировки можно с помощу IDA Pro Advanced, в этой строки
.text:00401424 sub_401424 proc near ; CODE XREF: sub_401110:loc_4011C8p
мы видем сылку на процедуру loc_4011C8p, кликаем 2 разы и переходим немного выше, опускаем чуть глаза и видем САLL
.text:004011C8 loc_4011C8: ; CODE XREF: sub_401110+57j
.text:004011C8 call sub_401424
смотрим деле что нас на этот call sub_401424 бросает, заходим в Олли переходим в Олли на этот call sub_401424, подсвечиваем мышей, тобеж надо раз нажать на нево, видим что в втором столбце видно откуда идьот линия от джампа поднимаемса по ней и попадаем на --> Link



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

Создано: 31 мая 2011 23:41
· Личное сообщение · #2

BiosMen пишет:
ошыпки поправте, с рускским у меня плохо, не грамотной...

пиши исчо



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

Создано: 01 июня 2011 00:16
· Личное сообщение · #3

Пока ничего интересного,
почти тоже самое, но нормальным языком можно прочитать в "Введение в крэкинг с нуля, используя OllyDbg" Ricardo Narvaja
"Глава 13 - Поиск жестко заданного серийного номера. Часть 1."
Кстати, для поиска текстовой строки вовсе не обязательно использовать IDA, потому что в OllyDbg такое есть, называется "Text strings referenced in", вызывается так:
правая кнопка мыши, потом "Search for" и там "All referenced text strings"

Ценность твоей "статьи" очень сомнительна, таких статей для новичков полно, тем более твой текст тяжело читать. Ты написал о том, как за неделю научился искать серийник в открытом виде, но это никому не интересно. Многие учились с нуля, когда я впервые увидел дизасм код, пришёл в сильное волнение, но не стал кричать об этом, потому что всем понятно, что разжёвывать и пережёвывать такие простейшие вещи это не серьёзно.

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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 01 июня 2011 09:53
· Личное сообщение · #4

L0ST

Та чого ви, хай хлопець пише. Тим паче, у нас усiх тут погано з росiйською. Шпрехен зе дойч??

-----
Stuck to the plan, always think that we would stand up, never ran.


| Сообщение посчитали полезным: ClockMan, Natik, BoRoV


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 01 июня 2011 11:18 · Поправил: Gideon Vi
· Личное сообщение · #5

L0ST, ТС открыл для себя что-то интересное. Хочет - пусть пишет, просто мимо пройди.

ошыпки поправте, с рускским у меня плохо, не грамотной...

word спасет отца русской демократии

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

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

Создано: 01 июня 2011 13:49
· Личное сообщение · #6

у меня вытекли глаза
ТС молодец, продолжай изучение, достигай новых высот и старайся писать с меньшим количеством ошибок)))

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


Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 01 июня 2011 21:34
· Личное сообщение · #7

Gideon Vi пишет:
word спасет отца русской демократии

Сомниваюсь, что русской )

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 июня 2011 00:30
· Личное сообщение · #8

CPU Disasm
Address Hex dump Command Comments
00401167 /74 5F JE SHORT 004011C8
Тепер просто берьом и пишем NOP, вместо этого JE SHORT 004011C8.
Больше нет Nag Nag окна.
Когда писал эту статтю то подумал прикольно было б вместо Nag Nag вывести пароль "JD39-CK4-5QV345" с первой статти,
Тут все просто, отменяем наш Nop рестартом проги забираем все бряки, дале ищем стороку пароля
0040135D |. 68 A2304000 PUSH OFFSET 004030A2 ; |String1 = "JD39-CK4-5QV345" ;
копируем PUSH OFFSET 004030A2 и вставляем вместо offsetа от сюда.
.text:0040142B push offset aNagNagNagRemov ; "Nag Nag Nag\n\rRemove this message box!\n
Хе =) и тепер видим пароль.
Продолжение следует...



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 июня 2011 00:31
· Личное сообщение · #9

Не влазит, что делать то? как этат кусок прикрутить, хелпаните пожалуста




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 02 июня 2011 09:33
· Личное сообщение · #10

какой код ты собрался крутить?
есди кода много-то есть спец утилита, где-то тут валялась.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 июня 2011 13:47
· Личное сообщение · #11

Нужно низ статти --> Link <-- прикрутить к статте что вверху


 eXeL@B —› Вопросы новичков —› fant-cm5 обходим защиту 4 Protection. Password, Nag, CD Check, Name/Serial
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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