Сейчас на форуме: asfa (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Кто сможет мой крякми поломать? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 11 мая 2010 14:11 · Поправил: ZLOvar · Личное сообщение · #1 Попробуйте мой крякми на вкус! Написан на Delphi 7. Упакован UPX с сюрпризом! ![]() Кто взломал, прошу отписаться в личку! ![]() <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Вышел второй крекми: http://exelab.ru/f/files/12d1_14.06.2010_CRACKLAB.rU.tgz Enjoy! ![]() |
|
Создано: 11 мая 2010 14:41 · Личное сообщение · #2 |
|
Создано: 11 мая 2010 15:45 · Личное сообщение · #3 |
|
Создано: 11 мая 2010 16:01 · Личное сообщение · #4 |
|
Создано: 11 мая 2010 16:03 · Поправил: BoRoV · Личное сообщение · #5 |
|
Создано: 11 мая 2010 16:04 · Поправил: ZLOvar · Личное сообщение · #6 |
|
Создано: 11 мая 2010 16:11 · Личное сообщение · #7 |
|
Создано: 11 мая 2010 23:40 · Поправил: Oott · Личное сообщение · #8 Так тут много ключей подходит. Вот там в крекми написано, что применино много различных техник + упх ещё с сюрпризом. Скачал для интереса этот крякми и ни чего кромк сех'а и спрятоного сообщения в виде посимвольных мувов я тут не заметил (я даже специально попытался найти, чтонить интересное в упх, но не нашёл ни каких сюрпризов). Может я не правильно ломал или ещё чего, но от ожидаемых 6-7 баллов осталось максимум 2. Вот ты говоришь, крекми лёгки из-за того, что адрес для вычислений найти было легко, а если спрятать подальше то ок. Но это спрятанное сообщение в 3 километра даже слепой калека найдёт без особых усилий, где бы оно не находилось. Возможно если крекми будет весить метров 10 это и усложнит задачу, всёравно этот метод не нов и требует много потраченого времени, чтоб твою защиту не раскрутили за пару минут. Для новичков быть может и пригодится, но тогда и нужно было писать, что вот крекми, демонстрирует пару фишек, если вы новичёк, то возможно найдёте для себя что-то новое. А не, то что мол, защита новая, если взломаете, то вы чуть ли не профик и уж точно не новичёк. ![]() |
|
Создано: 12 мая 2010 02:21 · Личное сообщение · #9 |
|
Создано: 12 мая 2010 10:05 · Личное сообщение · #10 |
|
Создано: 12 мая 2010 15:53 · Личное сообщение · #11 |
|
Создано: 12 мая 2010 19:40 · Поправил: Coderess · Личное сообщение · #12 |
|
Создано: 21 мая 2010 14:36 · Поправил: Denver2711 · Личное сообщение · #13 А мне так и не удалось его одолеть, никак не удается отследить во время свой неверный серийник и соответственно алгоритм его генерации. А точнее я его отследил но уже поздно когда генерация уже произошла, а раньше выйти на него никак не удается может что то не так делаю. Ставил бряк на TranslateMessage на нажатие кнопки, после искал в дампе его и ставил бряк на неверный серийник, после он копировался в другое место и далее капут появлялось исключение, что навело на мысль что генерация была осуществлена еще раньше прежде чем я успел обнаружить свой серийник. В общем затык у меня ![]() ![]() |
|
Создано: 21 мая 2010 16:18 · Личное сообщение · #14 считаем суму всех символов: /*4594C3*/ LEA EDX, [LOCAL.4] /*4594C6*/ MOV EAX, DWORD PTR [EBX+2F8] /*4594CC*/ CALL <@Controls@TControl@GetText$qqrv> /*4594D1*/ MOV EAX, [LOCAL.4] /*4594D4*/ MOVZX EAX, BYTE PTR [EAX+EDI-1] /*4594D9*/ ADD [LOCAL.2], EAX /*4594DC*/ INC EDI /*4594DD*/ DEC ESI /*4594DE*/ JNZ SHORT 004594C3 /*4594E0*/ MOV EAX, [LOCAL.2] eax = Sum /*4594E3*/ XOR EAX, 0ACE eax = Sum xor 0ACE /*4594E8*/ IMUL EAX, EAX, 4D2 eax = eax * 4D2 /*4594EE*/ ADD EAX, 1E3F58 Result = eax + 1E3F58 /*4594F3*/ MOV [LOCAL.1], EAX /*4594F6*/ PUSH [LOCAL.1] push Result /*4594F9*/ RET после ret переходим к адресу который у нас получился в Result при правильном пароле мы должны перейти сюда (найдено по опыту): /*4594FA*/ LEA ECX, DWORD PTR [EBP-18] /*4594FD*/ MOV DL, 0CF /*4594FF*/ MOV EAX, EBX /*459501*/ CALL <cr> /*459506*/ PUSH DWORD PTR [EBP-18] /*459509*/ LEA ECX, DWORD PTR [EBP-1C] /*45950C*/ MOV DL, 0EE /*45950E*/ MOV EAX, EBX следовательно Result должен равнятся 4594FA, отсюда ищем нужное значение Sum: Sum = ((4594FA - 1E3F58) div 4D2) xor 0ACE; а теперь подбираешь такой пароль в котором сума всех символов будет равнятся Sum Вот и всё. ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 21 мая 2010 16:51 · Поправил: Denver2711 · Личное сообщение · #15 BoRoV спасибо за помощь все очень доходчиво и понятно что касается алгоритма, но мне вот больше интересно ни сам алгоритм генерации, а то как на него выйти вот у меня в чем проблема была, каким образом к нему можно подкрасться. Ведь я понимаю так, чтобы на него выйти нужно отследить обращение к моему серийнику когда он (алгоритм генерации) будет считывать его, а у меня этого не происходит и я вот не пойму почему. Я думал что может мой серийник считывается по мере его ввода и я ставил бряк на нажатие клавиш, но мне это тоже не помогло. ![]() ![]() |
|
Создано: 21 мая 2010 17:28 · Поправил: Coderess · Личное сообщение · #16 А я брут использовал ![]() Нашел сумму символов Code:
А ключ сформировал вот такой из полученной суммы 0x2E7 14 символов - '1' (0x31) 15 последний - '9' (0x39) 111111111111119 ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 22 мая 2010 15:44 · Поправил: BoRoV · Личное сообщение · #17 |
|
Создано: 23 мая 2010 00:14 · Личное сообщение · #18 |
|
Создано: 24 мая 2010 15:52 · Поправил: ZLOvar · Личное сообщение · #19 Denver2711 пишет: о мне вот больше интересно ни сам алгоритм генерации, а то как на него выйти вот у меня в чем проблема была, каким образом к нему можно подкрасться. IDR тебе в помощь. Поможет узнать адрес Button1Click и пому подобное... ![]() |
|
Создано: 27 мая 2010 10:11 · Личное сообщение · #20 Уф, все таки получилось мне вывалиться на нужное место, я конечно же не ставил тупо бряк на адрес 4594C3, а пытался самостоятельно на него выйти пробуя разные методы, получилось правда не много выше нужного адреса, но немного отрассировав попадаешь в нужное место. Генерация оказалась простая главное в решении чтобы сумма символов составляла 743 d., а по сему комбинация ключей может быть разнообразна, но единственное что не совсем понятно - это как писал BoRoV "при правильном пароле мы должны перейти сюда (найдено по опыту)" т.е. если не опираться на интуицию и опыт которого у меня мало, то можно как то узнать куда действительно должно переходить выполнение программы после команды ret при правильно введенном серийнике, ведь этот переход не обязательно должен находится, как в конкретном случае где то поблизости, он может быть запрятан в тернистых дебрях листинга ой как далеко, а отсюда следует чтобы узнать правильный серийник, нужно знать точный адрес прыжка, без которого не возможно и вычислить сам серийник. Замкнутый круг какой то получается, может все таки есть какие то приемы позволяющие это сделать. Но все равно свою долю драгоценного опыта, пускай небольшого но я получил, за что отдельное спасибо ZLOvarу и BoRoVу. ![]() |
|
Создано: 29 мая 2010 15:56 · Личное сообщение · #21 |
|
Создано: 05 июня 2010 00:13 · Личное сообщение · #22 |
|
Создано: 05 июня 2010 15:50 · Поправил: ZLOvar · Личное сообщение · #23 |
|
Создано: 05 июня 2010 16:54 · Личное сообщение · #24 |
|
Создано: 05 июня 2010 19:56 · Личное сообщение · #25 |
|
Создано: 07 июня 2010 10:03 · Личное сообщение · #26 Oott пишет: DenverНасчёт определения адреса для вычисления серийника обращайся к Ootty`y. Он вроде писал, что этот адрес даже слепой с закрытыми глазами найти сможет! Спасиб я уже сам разобрался что к чему, я просто про проги написанные на делфи мало что знал, покурил статьи стало намного понятнее что к чему. ZLOvar Crackme #2 будет интересно самому разобрать без подсказки, все таки для новичков их клепаешь ![]() ![]() |
|
Создано: 07 июня 2010 12:07 · Личное сообщение · #27 NikolayD пишет: А исходник к пeрвому выклaдывaть будeшь? основное выглядит примерно так: Code:
----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 09 июня 2010 17:10 · Личное сообщение · #28 |
|
Создано: 09 июня 2010 17:13 · Личное сообщение · #29 |
|
Создано: 09 июня 2010 17:40 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Кто сможет мой крякми поломать? |