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

 eXeL@B —› Вопросы новичков —› Кто сможет мой крякми поломать?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 11 мая 2010 14:11 · Поправил: ZLOvar
· Личное сообщение · #1

Попробуйте мой крякми на вкус! Написан на Delphi 7. Упакован UPX с сюрпризом!
Кто взломал, прошу отписаться в личку!

3b91_11.05.2010_CRACKLAB.rU.tgz - Crackme #1 by ZLOvar.rar
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Вышел второй крекми:
http://exelab.ru/f/files/12d1_14.06.2010_CRACKLAB.rU.tgz
Enjoy!



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

Создано: 11 мая 2010 14:41
· Личное сообщение · #2

взломано, кей кинул в личку



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

Создано: 11 мая 2010 15:45
· Личное сообщение · #3

Спасибо. Как ты так быстро ломанул?



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

Создано: 11 мая 2010 16:01
· Личное сообщение · #4

> Сложность этого crackme оценевается по шкале от 0 до 10 как: 6-7\10 (может кто со мной и не согласится)
Не соглашусь, максимально 2. Алго простенькое.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 11 мая 2010 16:03 · Поправил: BoRoV
· Личное сообщение · #5

оч простой, пару минут на решение

да, 2 с натяжкой

-----
Лучше быть одиноким, но свободным © $me




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

Создано: 11 мая 2010 16:04 · Поправил: ZLOvar
· Личное сообщение · #6

3ton
Алго-то простенькое, а вот найти нужный адрес для вычислений - сложно! Я ведь его мог в любое место проги кинуть и вот тогда, без полного анализа программы не обошлось бы
BoRoV
Я его для новичков писал, поэтому так сложность завысил))) А так, crackme очень простой




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 11 мая 2010 16:11
· Личное сообщение · #7

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

-----
Лучше быть одиноким, но свободным © $me





Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 11 мая 2010 23:40 · Поправил: Oott
· Личное сообщение · #8

Так тут много ключей подходит. Вот там в крекми написано, что применино много различных техник + упх ещё с сюрпризом. Скачал для интереса этот крякми и ни чего кромк сех'а и спрятоного сообщения в виде посимвольных мувов я тут не заметил (я даже специально попытался найти, чтонить интересное в упх, но не нашёл ни каких сюрпризов). Может я не правильно ломал или ещё чего, но от ожидаемых 6-7 баллов осталось максимум 2. Вот ты говоришь, крекми лёгки из-за того, что адрес для вычислений найти было легко, а если спрятать подальше то ок. Но это спрятанное сообщение в 3 километра даже слепой калека найдёт без особых усилий, где бы оно не находилось. Возможно если крекми будет весить метров 10 это и усложнит задачу, всёравно этот метод не нов и требует много потраченого времени, чтоб твою защиту не раскрутили за пару минут. Для новичков быть может и пригодится, но тогда и нужно было писать, что вот крекми, демонстрирует пару фишек, если вы новичёк, то возможно найдёте для себя что-то новое. А не, то что мол, защита новая, если взломаете, то вы чуть ли не профик и уж точно не новичёк.



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

Создано: 12 мая 2010 02:21
· Личное сообщение · #9

Зачетный крякмес, для новичков в самый раз. Спасибо.



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

Создано: 12 мая 2010 10:05
· Личное сообщение · #10

Как я и ожидал, на мой крякми сразу же напали и отписались. Но главной моей целью были именно новички. Т.к крекми писался именно для них.
P.S Дня через 3 напишу Crackme #2. Уже скоро!




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

Создано: 12 мая 2010 15:53
· Личное сообщение · #11

Может, не надо писать, а лучше сначала маны почитать?
На эту мессагу можно не отвечать, просто пожелание.




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

Создано: 12 мая 2010 19:40 · Поправил: Coderess
· Личное сообщение · #12

Хорошая идея

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




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

Создано: 21 мая 2010 14:36 · Поправил: Denver2711
· Личное сообщение · #13

А мне так и не удалось его одолеть, никак не удается отследить во время свой неверный серийник и соответственно алгоритм его генерации. А точнее я его отследил но уже поздно когда генерация уже произошла, а раньше выйти на него никак не удается может что то не так делаю. Ставил бряк на TranslateMessage на нажатие кнопки, после искал в дампе его и ставил бряк на неверный серийник, после он копировался в другое место и далее капут появлялось исключение, что навело на мысль что генерация была осуществлена еще раньше прежде чем я успел обнаружить свой серийник. В общем затык у меня Может кто подскажет так сказать пнет меня в нужном направление где я ложанулся.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 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




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

Создано: 21 мая 2010 16:51 · Поправил: Denver2711
· Личное сообщение · #15

BoRoV спасибо за помощь все очень доходчиво и понятно что касается алгоритма, но мне вот больше интересно ни сам алгоритм генерации, а то как на него выйти вот у меня в чем проблема была, каким образом к нему можно подкрасться. Ведь я понимаю так, чтобы на него выйти нужно отследить обращение к моему серийнику когда он (алгоритм генерации) будет считывать его, а у меня этого не происходит и я вот не пойму почему. Я думал что может мой серийник считывается по мере его ввода и я ставил бряк на нажатие клавиш, но мне это тоже не помогло. Где и на что нужно ставить бряк чтобы выйти на этот алгоритм?




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

Создано: 21 мая 2010 17:28 · Поправил: Coderess
· Личное сообщение · #16

А я брут использовал


Нашел сумму символов
Code:
  1. .data
  2. sum      dd 0 ; сумма символов
  3. e_offset dd 004594FAh
  4. lpbuf db 0,0,0,0,0,0,0,0,0,0,0,0,0,0
  5. db "%x",0
  6. .code
  7.  
  8. start:
  9.    call brut
  10.    ret
  11.  
  12. brut:
  13. jmp      ittera_
  14. sum_inc:
  15.          inc sum
  16. ittera_:
  17.          ;1. 20D
  18.          ;mov eax, dword ptr ss:[ebp-8] ;Eax=Сумма символов
  19.          mov ebx, sum
  20.          mov eax, ebx               ;Eax=Сумма символов
  21.          xor eax, 0ACEh                   ;Eax=Eax XOR SUM 000008C3
  22.          imul eax, eax, 4D2h                      ;Eax=Eax * 0x4D2
  23.          add eax, 1E3F58h                         ;Eax=Eax + 0x1E3F58
  24.          
  25.          cmp eax, e_offset
  26.          jnz     sum_inc
  27.          
  28.          invoke wsprintf, addr lpbuf, addr x, sum
  29.          invoke MessageBox,0,addr lpbuf,0,0
  30.          
  31.          ;2e7


А ключ сформировал вот такой из полученной суммы 0x2E7
14 символов - '1' (0x31)
15 последний - '9' (0x39)
111111111111119

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





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 22 мая 2010 15:44 · Поправил: BoRoV
· Личное сообщение · #17

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

почитай про реверсинг делфи прог

Coderess пишет:
А ключ сформировал вот такой из полученной суммы 0x2E7

у мну круче
пасс: "яяй"

-----
Лучше быть одиноким, но свободным © $me





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

Создано: 23 мая 2010 00:14
· Личное сообщение · #18

BoRoV
у мну круче
пасс: "яяй"


Согласен "яяй" выглядит круче

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




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

Создано: 24 мая 2010 15:52 · Поправил: ZLOvar
· Личное сообщение · #19

Denver2711 пишет:
о мне вот больше интересно ни сам алгоритм генерации, а то как на него выйти вот у меня в чем проблема была, каким образом к нему можно подкрасться.

IDR тебе в помощь. Поможет узнать адрес Button1Click и пому подобное...



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

Создано: 27 мая 2010 10:11
· Личное сообщение · #20

Уф, все таки получилось мне вывалиться на нужное место, я конечно же не ставил тупо бряк на адрес 4594C3, а пытался самостоятельно на него выйти пробуя разные методы, получилось правда не много выше нужного адреса, но немного отрассировав попадаешь в нужное место. Генерация оказалась простая главное в решении чтобы сумма символов составляла 743 d., а по сему комбинация ключей может быть разнообразна, но единственное что не совсем понятно - это как писал BoRoV "при правильном пароле мы должны перейти сюда (найдено по опыту)" т.е. если не опираться на интуицию и опыт которого у меня мало, то можно как то узнать куда действительно должно переходить выполнение программы после команды ret при правильно введенном серийнике, ведь этот переход не обязательно должен находится, как в конкретном случае где то поблизости, он может быть запрятан в тернистых дебрях листинга ой как далеко, а отсюда следует чтобы узнать правильный серийник, нужно знать точный адрес прыжка, без которого не возможно и вычислить сам серийник. Замкнутый круг какой то получается, может все таки есть какие то приемы позволяющие это сделать. Но все равно свою долю драгоценного опыта, пускай небольшого но я получил, за что отдельное спасибо ZLOvarу и BoRoVу.



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

Создано: 29 мая 2010 15:56
· Личное сообщение · #21

приём eсть опыт это нaзывaeтся. Borov ужe скaзaл почитaй большe.



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

Создано: 05 июня 2010 00:13
· Личное сообщение · #22

3 дня прошло . Или продолжeния бaнкeтa нe будeт?



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

Создано: 05 июня 2010 15:50 · Поправил: ZLOvar
· Личное сообщение · #23

NikolayD
Будет! Crackme #2 уже создан! Завтра выложу!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Denver
Насчёт определения адреса для вычисления серийника обращайся к Ootty`y. Он вроде писал, что этот адрес даже слепой с закрытыми глазами найти сможет!




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 05 июня 2010 16:54
· Личное сообщение · #24

Какбэ слепому незачем глаза закрывать))) mov[adr],reg палитсо жоско)



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

Создано: 05 июня 2010 19:56
· Личное сообщение · #25

А исходник к пeрвому выклaдывaть будeшь?



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

Создано: 07 июня 2010 10:03
· Личное сообщение · #26

Oott пишет:
DenverНасчёт определения адреса для вычисления серийника обращайся к Ootty`y. Он вроде писал, что этот адрес даже слепой с закрытыми глазами найти сможет!


Спасиб я уже сам разобрался что к чему, я просто про проги написанные на делфи мало что знал, покурил статьи стало намного понятнее что к чему. ZLOvar Crackme #2 будет интересно самому разобрать без подсказки, все таки для новичков их клепаешь




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 07 июня 2010 12:07
· Личное сообщение · #27

NikolayD пишет:
А исходник к пeрвому выклaдывaть будeшь?

основное выглядит примерно так:
Code:
  1.   n := 0;
  2.   for i := 1 to Length(Edit1.Text) do
  3.     n := n + ord(Edit1.Text[i]);
  4.   n := 1234 * (xor 2766) + 1982296;
  5.   asm
  6.     push n
  7.     ret
  8.   end;
  9.   // дальше делаем строку для месаги


-----
Лучше быть одиноким, но свободным © $me




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

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

NikolayD
Можно. Но зачем? Там вся фишка в одной процедуре. BoRoV уже всё написал



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

Создано: 09 июня 2010 17:13
· Личное сообщение · #29

Думал если крякми решён можно и исходник выложить. Дело твоё.



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 09 июня 2010 17:40
· Личное сообщение · #30

ZLOvar
Не смотрел ваш модуль, мне интересна только теоретическая часть. Итак опишите тру способы обхода отладчиков и пр. которые использовали.


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


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