Сейчас на форуме: site-pro, Rio, johnniewalker, vsv1 (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› крякми для детей / Конкупс по информатике
Посл.ответ Сообщение


Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 23 октября 2012 16:24 · Поправил: KingSise
· Личное сообщение · #1

Кому интересно, можете поофтопить - --> тут <-- конкурс для деток по информатике.

Сам по себе тест можете рассматривать как крякми ибо напичкан он всякими интересностями Ну а вкачестве бонуса - тест для деток



-----
-=истина где-то рядом=-





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 24 октября 2012 15:31 · Поправил: KingSise
· Личное сообщение · #2

Хаюшки ☺

Программко все таки оказалась интересная и сходу я ее пока не осилил, хорошо украинцы постарались... А посему предлагаю все же перенести тему из оффтопа в соответствующий раздел.
[moder]перенёс[/moder]От меня: спасиб0 ☺


До чего дошел мну:

сама база пожата гзипом и лежит в data.bin

Программа при запуске требует ввести пароль...

Насколько я понял, начало проверки тут:

Code:
  1.  
  2. 004023D0  /$  A1 94B64000   MOV EAX,DWORD PTR DS:[40B694]                 ; Chk_Psw
  3. 004023D5  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
  4. 004023D7  |.  8B51 18       MOV EDX,DWORD PTR DS:[ECX+18]
  5. 004023DA  |.  56            PUSH ESI
  6. 004023DB  |.  50            PUSH EAX
  7. 004023DC  |.  FFD2          CALL NEAR EDX
  8. 004023DE  |.  8BF0          MOV ESI,EAX
  9. 004023E0  |.  8B06          MOV EAX,DWORD PTR DS:[ESI]
  10. 004023E2  |.  8B48 1C       MOV ECX,DWORD PTR DS:[EAX+1C]
  11. 004023E5  |.  68 9C8B4000   PUSH Bebras_D.00408B9C                        ; UNICODE "data.bin"
  12. 004023EA  |.  56            PUSH ESI
  13. 004023EB  |.  FFD1          CALL NEAR ECX                                 ; считываем данные с data.bin *Platform.dll
  14. 004023ED  |.  8B16          MOV EDX,DWORD PTR DS:[ESI]                    ; Platform.1004ABE0
  15. 004023EF  |.  8B42 10       MOV EAX,DWORD PTR DS:[EDX+10]
  16. 004023F2  |.  68 54B64000   PUSH Bebras_D.0040B654
  17. 004023F7  |.  56            PUSH ESI
  18. 004023F8  |.  FFD0          CALL NEAR EAX                                   ; что то подсчитываем, не разобрался
  19. 004023FA  |.  8B0E          MOV ECX,DWORD PTR DS:[ESI]
  20. 004023FC  |.  8B51 24       MOV EDX,DWORD PTR DS:[ECX+24]
  21. 004023FF  |.  56            PUSH ESI
  22. 00402400  |.  FFD2          CALL NEAR EDX                                ;считаем црц от введенного пасса, не crc32
  23. 00402402  |.  56            PUSH ESI
  24. 00402403  |.  3D 2D6928E2   CMP EAX,E228692D                              ;
  25. 00402408  |.  74 11         JE SHORT Bebras_D.0040241B                     ; если правильно, прыгаем
  26. 0040240A  |.  A1 94B64000   MOV EAX,DWORD PTR DS:[40B694]
  27. 0040240F  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
  28. 00402411  |.  8B51 1C       MOV EDX,DWORD PTR DS:[ECX+1C]
  29. 00402414  |.  50            PUSH EAX
  30. 00402415  |.  FFD2          CALL NEAR EDX
  31. 00402417  |.  32C0          XOR AL,AL
  32. 00402419  |.  5E            POP ESI
  33. 0040241A  |.  C3            RETN
  34. 0040241B  |>  8B06          MOV EAX,DWORD PTR DS:[ESI]
  35. 0040241D  |.  8B48 18       MOV ECX,DWORD PTR DS:[EAX+18]
  36. 00402420  |.  FFD1          CALL NEAR ECX                       ; еще одна проверка в Platform.dll, в al должно быть 1
  37. 00402422  |.  84C0          TEST AL,AL
  38. 00402424  |.  75 12         JNZ SHORT Bebras_D.00402438
  39. 00402426      A1 94B64000   MOV EAX,DWORD PTR DS:[40B694]
  40. 0040242B      8B10          MOV EDX,DWORD PTR DS:[EAX]
  41. 0040242D      56            PUSH ESI
  42. 0040242E      50            PUSH EAX
  43. 0040242F      8B42 1C       MOV EAX,DWORD PTR DS:[EDX+1C]
  44. 00402432      FFD0          CALL NEAR EAX
  45. 00402434      32C0          XOR AL,AL
  46. 00402436      5E            POP ESI
  47. 00402437      C3            RETN
  48. 00402438  |>  8B16          MOV EDX,DWORD PTR DS:[ESI]
  49. 0040243A  |.  8B0D 50B64000 MOV ECX,DWORD PTR DS:[40B650]
  50. 00402440  |.  8B42 04       MOV EAX,DWORD PTR DS:[EDX+4]
  51. 00402443  |.  57            PUSH EDI
  52. 00402444  |.  8B39          MOV EDI,DWORD PTR DS:[ECX]
  53. 00402446  |.  56            PUSH ESI
  54. 00402447  |.  FFD0          CALL NEAR EAX
  55. 00402449  |.  8B0E          MOV ECX,DWORD PTR DS:[ESI]
  56. 0040244B  |.  8B51 08       MOV EDX,DWORD PTR DS:[ECX+8]
  57. 0040244E  |.  50            PUSH EAX
  58. 0040244F  |.  56            PUSH ESI
  59. 00402450  |.  FFD2          CALL NEAR EDX
  60. 00402452  |.  8B4F 14       MOV ECX,DWORD PTR DS:[EDI+14]
  61. 00402455  |.  50            PUSH EAX
  62. 00402456  |.  A1 50B64000   MOV EAX,DWORD PTR DS:[40B650]
  63. 0040245B  |.  50            PUSH EAX
  64. 0040245C  |.  FFD1          CALL NEAR ECX
  65. 0040245E  |.  5F            POP EDI
  66. 0040245F  |.  B0 01         MOV AL,1                ; оно то и нужно, и при выходе из процедуры
  67. 00402461  |.  5E            POP ESI                   ; мы прыгнуть не должны.
  68. 00402462  \.  C3            RETN
  69.  



И так, кто подскажет что это за странная црц: 00402400: CALL Platform.100051C0

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

[add]
Тут походу бурут?

[add]

Походу это и есть вроде как начало генерации црц в Platform.dll:
Code:
  1. 1000B8D0   $  56            PUSH ESI


-----
-=истина где-то рядом=-





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 24 октября 2012 22:53
· Личное сообщение · #3

Расшифровывает data.bin DES'ом и считает крк от того что получилось.
00404320 - тут преобразует пароль в ключ для DES.
После этой функции сохраняет ключ вот так.
004012CB |. 890D 58B64000 MOV DWORD PTR DS:[40B658],ECX
004012D7 |. A3 54B64000 MOV DWORD PTR DS:[40B654],EAX
Дальше с этим ключом DES (ECB) Decrypt
Проверил в CrypTool всё сошлось у меня. только что то жалуется на длину блока. немного подрезал хвост фаила и ок.

-----
zzz


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


Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 24 октября 2012 23:21
· Личное сообщение · #4

Где-то тут уже был топик про этот тест.

-----
Nulla aetas ad discendum sera





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 25 октября 2012 12:08 · Поправил: KingSise
· Личное сообщение · #5

zeppe1in пишет:
Проверил в CrypTool всё сошлось у меня. только что то жалуется на длину блока. немного подрезал хвост фаила и ок.
--> это оно? <--


zeppe1in пишет:
После этой функции сохраняет ключ вот так.004012CB |. 890D 58B64000 MOV DWORD PTR DS:[40B658],ECX004012D7 |. A3 54B64000 MOV DWORD PTR DS:[40B654],EAX


Ну это как бы мой введенный ключ, правильно понимаю, которым чуть дальше идет раскриптовка data.bin?

CMP EAX,E228692D - а это CRC32 от того, что раскриптовали но со смещением от начала блока 31 байт и до нулей?

[ADD]

посути получается тогда так:

тут читаем файл:

Code:
  1. 004023E5  |.  68 9C8B4000   PUSH Bebras_D.00408B9C                   ; UNICODE "data.bin"
  2. 004023EA  |.  56            PUSH ESI
  3. 004023EB  |.  FFD1          CALL NEAR ECX


тут декриптим

Code:
  1. 004023F2  |.  68 54B64000   PUSH Bebras_D.0040B654
  2. 004023F7  |.  56            PUSH ESI
  3. 004023F8  |.  FFD0          CALL NEAR EAX                            ; ;; Platform.10004DD0


а тут считаем CRC от раскриптованного участка

Code:
  1. 004023FA  |.  8B0E          MOV ECX,DWORD PTR DS:[ESI]               ; Platform.1004ABE0
  2. 004023FC  |.  8B51 24       MOV EDX,DWORD PTR DS:[ECX+24]
  3. 004023FF  |.  56            PUSH ESI
  4. 00402400  |.  FFD2          CALL NEAR EDX                            ; Platform.100051C0


-----
-=истина где-то рядом=-





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 25 октября 2012 18:31 · Поправил: KingSise
· Личное сообщение · #6

По идеии программа должна брутить сама себя так:
Code:
  1. <$Bebras_D.12CB>
  2.  
  3.          MOV DWORD PTR DS:[$$0B658],0 ; Забивайм нули, бо эти 2 дворда используюся в рсшифровке
  4.          XOR ECX,ESP
  5.          MOV DWORD PTR DS:[$$0B654],0 ; Забивайм нули
  6.  
  7.  
  8.  
  9. <$Bebras_D.2408>
  10.  
  11.          POP EAX
  12.          ;POP ESI
  13.          JNZ SHORT @L00000001   ;сверяемся с хэшем
  14.          JMP SHORT @L00000003
  15.          NOP
  16.          NOP
  17.          NOP
  18.          NOP
  19.          NOP
  20.          NOP
  21.          NOP
  22.          NOP
  23.          NOP
  24.          NOP
  25.          NOP
  26.          NOP
  27.          NOP
  28. ; тут увкличиваеи хэш, который 0B658 + 0B658
  29. @L00000001:
  30.          CMP DWORD PTR DS:[$$0B658],-1 ; inc Pass DWORD PTR DS:[40B658+54]
  31.          JE SHORT @L00000002
  32.          INC DWORD PTR DS:[$$0B658]
  33.          JMP SHORT $$23D0
  34.  
  35. @L00000002:
  36.          INC DWORD PTR DS:[$$0B654]
  37.          INC DWORD PTR DS:[$$0B658]
  38.          JMP SHORT $$23D0
  39.  
  40. ; а это типа msgBox(), если раскривтовали верно.
  41. @L00000003:
  42.          PUSH 1
  43.          PUSH $$8990
  44.          PUSH $$8990
  45.          PUSH 0
  46.          CALL 7E3A07EA
  47.          NOP
  48.          NOP
  49.          NOP
  50.          NOP
  51.          NOP




Вопрос 1: как память освободить? после каждого прохода + 4 Мб
Вопрос 2: как вывести значение этого DWORD PTR DS:[$$0B654] как строку в MessageBoxA ?


З.Ы. Про кнопку "павка" помню, но какгбэ....

-----
-=истина где-то рядом=-





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 25 октября 2012 18:38
· Личное сообщение · #7

KingSise пишет:
Вопрос N

dll свою подцепить и нужные функи записать на место nop

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 25 октября 2012 19:59 · Поправил: KingSise
· Личное сообщение · #8

ajax, и все таки хотелось бы получить более расширенный ответ на вопрос 2, если не затруднит конечно ☺

мдя, протупил, сори, все элементарно....

Code:
  1. push DWORD PTR DS:[$$0B658]   ;Dword 2 convert
  2. push @str                                     ;Format "%08X\0"
  3. push eax                                 ;Buffer
  4. call 78552E73              ; call MSVCR90.sprintf_s
  5.  
  6. ;messageBoxA
  7. pop eax     ;recover EAX
  8. push 0       ;wType
  9. push eax    ;Caption
  10. push eax ;lpText
  11. push 0      ;Handle
  12. call MessageBoxA
  13. ret


-----
-=истина где-то рядом=-





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

Создано: 25 октября 2012 20:30
· Личное сообщение · #9

А в чём сложность вывода? sprintf с параметром %08X в буфер, буфер уже в MessageBox.

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


Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 25 октября 2012 23:51
· Личное сообщение · #10

вот типо брутер. сырки в комплекте.
http://www.sendspace.com/file/kxuadb
Ещо бы надо разобрать генерацию ключа из паса, может поможет увеличить скорость брута.

-----
zzz


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


Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 26 октября 2012 11:41 · Поправил: KingSise
· Личное сообщение · #11

zeppe1in пишет:
Ещо бы надо разобрать генерацию ключа из паса


ключ похож на какой то хэш от пасса, который всегда равен 2 дВордам...


zeppe1in пишет:
вот типо брутер. сырки в комплекте.



Хм, сама программа проверяет црц от пасшифрованного куска начиная с $offset+1F а у тебя всего куска целиком вроде....

-----
-=истина где-то рядом=-




Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 26 октября 2012 12:14
· Личное сообщение · #12

при обработке введенного ключа, сначала массив из 12 байт заливается символами 'a', первые символы массивы копируются из ключа. Дальше идет большой switch.
А с учетом что из 12 байт получают 8, можно предположить что там base64 или похожий алго может быть.
Подробно посмотреть switch времени не было


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


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