Сейчас на форуме: NIKOLA, r0lka, johnniewalker, vsv1 (+4 невидимых) |
eXeL@B —› Крэки, обсуждения —› CrackMe 3 |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 04 декабря 2006 04:52 · Поправил: Hellspawn · Личное сообщение · #1 наконец-то нашёл время и дописал... Значит так: цель - найти валидную пару под своё имя или пропатчить (первое лучше) не паковано, написано на дельфи 7 (не пинать сам всё знаю ) для среднего уровня. что интересного? реализовал в этом крекми потчи всё что знаю единственное антиотладку не стал делать... (т.к. сообщения, типа "деббагер детектед" тока раздражают) Ну вот вроде бы и всё, оставил несколько лазеек, да и строки там не пошифрованы удачи! dffb_04.12.2006_CRACKLAB.rU.tgz - CrackMe3.zip ----- [nice coder and reverser] |
|
Создано: 04 декабря 2006 09:28 · Личное сообщение · #2 Открываем сорцы DeDe, находим модуль DeDe Classes в нем ищем код: 15C, $160 : if GlobCBuilder then Result:='BCB6?' else Result:='D6'; Меняем BCB6? на D7 и перекомпиляем. Теперь крякмис декомпиляется и можно смотреть код ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 04 декабря 2006 10:00 · Личное сообщение · #3 |
|
Создано: 04 декабря 2006 10:09 · Личное сообщение · #4 Кому охота это исследовать в аттаче events.txt для IDA и код после dede 7acb_04.12.2006_CRACKLAB.rU.tgz - CrackMe3.exe.rar ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 04 декабря 2006 11:17 · Поправил: Hellspawn · Личное сообщение · #5 |
|
Создано: 04 декабря 2006 11:47 · Поправил: Balthasar_magus · Личное сообщение · #6 Hellspawn короче рег коде не меньше 11 char 1) дальше контрольная сумма по нейму 2) два "-" 3) последние 3 char от нэйма и сравнивается с регкодом все проверки прошел, застрял на мессаге о регистрации name:Balthasar_ma regcode: 7A29EB85-2764-63B "2764 " отвечает за рег мессагу дальше "2764" имулятся,хорятся и должно быть valid address где мессага зашифрована или функция которая эму мессагу расшифровывает |
|
Создано: 04 декабря 2006 11:54 · Поправил: Hellspawn · Личное сообщение · #7 Balthasar_magus молодец мессага от 0450000 до 0460000 ну последний рывок остался, очень близко... в принципе дальше будет самое интересное.. если ты понял принцип как выводились плохие мессаги, то дальше разберёшься... (там массивчик есть не обычный) з.ы. если добъёшь скинь мне в пм поздравительную мессагу тут не пости ----- [nice coder and reverser] |
|
Создано: 04 декабря 2006 13:10 · Личное сообщение · #8 |
|
Создано: 04 декабря 2006 13:13 · Личное сообщение · #9 |
|
Создано: 05 декабря 2006 04:38 · Личное сообщение · #10 Hellspawn Короч вот что я нарыл по этому крэкми: Серийный номер имеет вид: XXXXXXXX-XXXX-XXX A B C 1) По адресу 00454F88 начинается первая функция проверки 2) Часть А проверяется по адресу 00455238 ( она равна xor Dword ptr ss:[ebp-8],1357912h ) у меня = 008C2177 3) Часть С проверяется по адресу 004552E0 ( она равна значению в [EBP-38]) у меня = 3E0 4) Часть B разбивается на 2 части младшую и старшую Старшая часть должна быть от 01 до FF, она возводится в куб и пишется в [458C70], Младшая часть должна быть от 01 до 0F, она без изменений записывается в [458C74] 5) Если все что выше совпало, то переходим ко 2 проверке - более сложной Начинается по адресу 455955: по адресу 00458С30 находится массив из 0F чисел ( назовем его mas) Затем mov EAX,mas[458С74] -> в 458С74 - наша младшая часть B const_1 = xor EAX,[458C70] -> ксорим eax со старшей частью B в кубе const_2 = xor [458c70],57A9357h -> ключ для расшифровки в EAX - должен получится адрес какой-то функции (в перделах от 00450000 до 00460000), которую мы должны расшифровать и туда перейти, но вот вопрос какой адрес??? Вот алгоритм расшифровки: MOV DWORD PTR SS:[EBP-18],1 MOV EAX, const_1 MOV EAX,DWORD PTR DS:[EAX] -> читаем 4 байта из [const_1] XOR EAX, const_2 -> ксорим с const_2 MOV EDX, const_1 MOV DWORD PTR DS:[EDX],EAX -> пишем 4 байта в [const_1] ADD const_1, 4 -> наращиваем const_1 на 4 INC DWORD PTR SS:[EBP-18] CMP DWORD PTR SS:[EBP-18],1A JNZ SHORT CrackMe3.00454A17 После такого цикла должно быть расшифровано 4*1А = 68h байт функции, после этого мы переходим в расшифрованную функцию и там наверное должны нас поздравить..... Но вот проблема я никак не могу подобрать правильную часть B кода(чтобы расшифровать процедуру) name: RSI serial: 008C2177-XX0X-3E0 P.S. Похожую замуту применил bad_guy в своем crackme1 |
|
Создано: 05 декабря 2006 06:38 · Поправил: Hellspawn · Личное сообщение · #11 мда всё самое сложное раскопал осталось то... RSI пишет: по адресу 00458С30 находится массив из 0F чисел ( назовем его mas) вот к этому присмотрись, почти все dword'ы в этом массиве не случайны... и там есть поксоренный адресс заветной процедуры, которую можно найти без брута... ----- [nice coder and reverser] |
|
Создано: 05 декабря 2006 06:57 · Личное сообщение · #12 |
|
Создано: 05 декабря 2006 07:32 · Поправил: Hellspawn · Личное сообщение · #13 |
|
Создано: 05 декабря 2006 07:50 · Личное сообщение · #14 |
|
Создано: 05 декабря 2006 07:53 · Личное сообщение · #15 |
|
Создано: 05 декабря 2006 08:05 · Поправил: Hellspawn · Личное сообщение · #16 |
|
Создано: 05 декабря 2006 08:05 · Личное сообщение · #17 |
|
Создано: 05 декабря 2006 08:42 · Личное сообщение · #18 |
|
Создано: 05 декабря 2006 08:47 · Личное сообщение · #19 |
|
Создано: 05 декабря 2006 09:15 · Личное сообщение · #20 RSI пишет: Ты на ret не сморти, я думаю что там хитрее сделано Я не стал брать частный случай, а скопировал дамп на диск в файл с 450000 по 460000 , далее по алгоритму программы Hellspawn хорю все возможные места по очереди, и ищу похожее на код инструкции Например xor eax,eax в 5 местах у Hellspawn случайность. Ввожу пароли вручную ,мог и ошибиться. |
|
Создано: 05 декабря 2006 23:13 · Личное сообщение · #21 Xserg Во во! я почти тож самое делаю... тока ничего не получается, ручками дошел уже до 30 (Там константа на должна быть большой походу иначе вылазит за границы 450000-460000) Hellspawn Зря ты его в начале недели выложил... мля и посмотреть охота и времени все мало!!! Кста насчет Status: Reg data checking... у меня такая штука при 5 вариантах вылазит, но енто не то что надо. Можно былобы брутануть, но надо знать какое должно быть расшфрованное начало этой функции, а так мне кажется ничего не получится - тока ручками... По коду с 450000 по 460000 я нашел ну наверное 8 - 10 место где может бть эта шняга, но где именно начнется функция эт ВОПРОС!!! Так что Hellspawn ты конечно молодес, но ты садист!!! |
|
Создано: 06 декабря 2006 02:32 · Личное сообщение · #22 RSI пишет: Кста насчет Status: Reg data checking... у меня такая штука при 5 вариантах вылазит, но енто не то что надо. вместе с антиотладкой потёр 1 процедуру))) ну лан вот это очень сильно должно помочь... главное индекс массива узнать If (dwXorKey <> 0) and (bNumber <> 0) and (n = REG_VALID) then
----- [nice coder and reverser] |
|
Создано: 06 декабря 2006 03:17 · Личное сообщение · #23 |
|
Создано: 07 декабря 2006 11:00 · Личное сообщение · #24 |
|
Создано: 07 декабря 2006 11:05 · Поправил: Hellspawn · Личное сообщение · #25 |
|
Создано: 07 декабря 2006 11:13 · Личное сообщение · #26 |
|
Создано: 07 декабря 2006 11:17 · Личное сообщение · #27 |
|
Создано: 07 декабря 2006 11:38 · Личное сообщение · #28 |
|
Создано: 07 декабря 2006 12:27 · Личное сообщение · #29 sniperZ пишет: А научно? Алгоритм моей программы которая нашла нужный ключ. Входные данные: Дамп памяти программы CrackMe3.exe c $450000 по $460000 после пустого нажатия [RegMe =)] var buf:array[0..$10000] of byte; bufw:array[0..$10000 div 4] of dword absolute buf; fbuf:file; i,j,x,y,d,l,Z,k:dword; pb:^byte; pd:^dword; for i:=1 to 15 do begin for j:=1 to $fff do begin y:=j*j*j; x:=bufw[($8C30 div 4) + i]; x:= x xor y; y:=y xor 91919191; if y<>91919191 then if (x>=$450000) and (x<=$460000) then begin for L:=0 to $1a-1 do begin dword(pd):=dword(addr(buf[L*4]))+(x-$450000); pd^:=pd^ xor y; end; тут я искал в полученном коде прямое обращение к сегменту $0045xxxх из нужного участка кода их было 4- 0045487B,00454886,00454890,0045489B считайте это подсказкой. Но это мне повезло в идеале такое шифрование взломать не возможно. end; |
|
Создано: 09 апреля 2020 16:06 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Крэки, обсуждения —› CrackMe 3 |