eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: ==DJ==[ZLO] (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Крэки, обсуждения —› Помошь в нахождении ключа
Посл.ответ Сообщение

Ранг: 14.1 (новичок)
Статус: Участник

Создано: 15 апреля 2017 20:05 · Поправил: RoKZaR New!
Цитата · Личное сообщение · #1

Всем привет) Предисловие: я знаю как вы не любите ленивых которые ничего не попробывали. Я пробовал и у меня не получилось. Патч не предлагать! Испробовано - вылетает в infinity loop. Я новичок так что не судите строго.
Вообщем так: решил порешать крекми. Скачал с crackme.de. Проверил его был закриптован exe crypt. Он был благополучно вручную снят. Дальше возник вопрос. Привожу вырезки кода
Проверка длины имени
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 004063F7  |.  E8 7CB0FFFF   CALL <JMP.&user32.GetDlgItemTextA>       ; \USER32.GetDlgItemTextA
  4. 004063FC  |.  8945 EC       MOV DWORD PTR SS:[LOCAL.5],EAX
  5. 004063FF  |.  83F8 04       CMP EAX,4
  6. 00406402  |.  73 13         JAE SHORT 00406417
  7. 00406404  |.  68 D9924000   PUSH OFFSET 004092D9                     ; /Text = "Enter 4 or more chars..."
  8. 00406409  |.  6A 0B         PUSH 0B                                  ; |ControlID = 11.
  9. 0040640B  |.  FF75 08       PUSH DWORD PTR SS:[ARG.1]                ; |hDialog => [ARG.1]
  10. 0040640E  |.  E8 9BB0FFFF   CALL <JMP.&user32.SetDlgItemTextA>       ; \USER32.SetDlgItemTextA
  11. 00406413  |.  C9            LEAVE
  12. 00406414  |.  C2 1000       RETN 10
  13. 00406417  |>  83F8 7F       CMP EAX,7F
  14. 0040641A  |.  76 13         JBE SHORT 0040642F
  15. 0040641C  |.  68 F2924000   PUSH OFFSET 004092F2                     ; /Text = "Name too long!"
  16. 00406421  |.  6A 0B         PUSH 0B                                  ; |ControlID = 11.
  17. 00406423  |.  FF75 08       PUSH DWORD PTR SS:[ARG.1]                ; |hDialog => [ARG.1]
  18. 00406426  |.  E8 83B0FFFF   CALL <JMP.&user32.SetDlgItemTextA>       ; \USER32.SetDlgItemTextA
  19. 0040642B  |.  C9            LEAVE
  20. 0040642C  |.  C2 1000       RETN 10

Очень странный для меня код где по имени генерируется критичное для сравнения слово.
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 0040642F  |> \BB 6F934000   MOV EBX,OFFSET 0040936F                  ; ASCII "C3F7CA4B2871BE19F7877325BBAD130DF7CF52BDDB4961A11FF059EEA3EAFFFB250FD475AA16967EEFC36CE9B860E7C440DD0A5A8D5FE58A7D603DB6E284CC9494FDDEB5584706AD7CDB8CEBFFDCDB84E30E870CC29FB5A0BD98526CD6396BF1A8ADDB3F44965D8B05EEFBB5EFCA71D0288F7EE43B463"...
  4. 00406434  |.  8B03          MOV EAX,DWORD PTR DS:[EBX]
  5. 00406436  |.  3D 43334637   CMP EAX,37463343
  6. 0040643B  |.  0F85 28010000 JNE 00406569
  7. 00406441  |.  33DB          XOR EBX,EBX
  8. 00406443  |.  68 F0974000   PUSH OFFSET 004097F0                     ; /String
  9. 00406448  |.  E8 CDB0FFFF   CALL <JMP.&kernel32.lstrlen>             ; \KERNEL32.lstrlen
  10. 0040644D  |.  68 F2994000   PUSH OFFSET 004099F2                     ; /Arg3 = Dumped1_.4099F2
  11. 00406452  |.  50            PUSH EAX                                 ; |Arg2
  12. 00406453  |.  68 F0974000   PUSH OFFSET 004097F0                     ; |Arg1 = Dumped1_.4097F0
  13. 00406458  |.  E8 CE010000   CALL 0040662B                            ; \Dumped1_.0040662B

Получившийся код и код для сравнения
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 0040642F  |> \BB 6F934000   MOV EBX,OFFSET 0040936F                  ; ASCII "C3F7CA4B2871BE19F7877325BBAD130DF7CF52BDDB4961A11FF059EEA3EAFFFB250FD475AA16967EEFC36CE9B860E7C440DD0A5A8D5FE58A7D603DB6E284CC9494FDDEB5584706AD7CDB8CEBFFDCDB84E30E870CC29FB5A0BD98526CD6396BF1A8ADDB3F44965D8B05EEFBB5EFCA71D0288F7EE43B463"...
  4. 00406434  |.  8B03          MOV EAX,DWORD PTR DS:[EBX]
  5. 00406436  |.  3D 43334637   CMP EAX,37463343
  6. 0040643B  |.  0F85 28010000 JNE 00406569
  7. 00406441  |.  33DB          XOR EBX,EBX
  8. 00406443  |.  68 F0974000   PUSH OFFSET 004097F0                     ; /String = "4f7672d870c2691b202e775e5a1164b6"
  9. 00406448  |.  E8 CDB0FFFF   CALL <JMP.&kernel32.lstrlen>             ; \KERNEL32.lstrlen
  10. 0040644D  |.  68 F2994000   PUSH OFFSET 004099F2                     ; /Arg3 = Dumped1_.4099F2
  11. 00406452  |.  50            PUSH EAX                                 ; |Arg2
  12. 00406453  |.  68 F0974000   PUSH OFFSET 004097F0                     ; |Arg1 = ASCII "4f7672d870c2691b202e775e5a1164b6"
  13. 00406458  |.  E8 CE010000   CALL 0040662B                            ; \Dumped1_.0040662B
  14. 0040645D  |.  8BC8          MOV ECX,EAX
  15. 0040645F  |.  BB F0974000   MOV EBX,OFFSET 004097F0                  ; ASCII "4f7672d870c2691b202e775e5a1164b6"
  16. 00406464  |.  33C0          XOR EAX,EAX

И дальше процедура которую я не пойму что там происходит. На первый взгляд обычный switch case но что он делает
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 00406466  |> /8A03          /MOV AL,BYTE PTR DS:[EBX]
  4. 00406468  |. |0AC0          |OR AL,AL                                ; Switch (cases 0..7A, 3 exits)
  5. 0040646A  |. |74 0F         |JZ SHORT 0040647B
  6. 0040646C  |. |3C 61         |CMP AL,61
  7. 0040646E  |. |72 08         |JB SHORT 00406478
  8. 00406470  |. |3C 7A         |CMP AL,7A
  9. 00406472  |. |77 04         |JA SHORT 00406478
  10. 00406474  |. |2C 20         |SUB AL,20                               ; Cases 61 ('a'), 62 ('b'), 63 ('c'), 64 ('d'), 65 ('e'), 66 ('f'), 67 ('g'), 68 ('h'), 69 ('i'), 6A ('j'), 6B ('k'), 6C ('l'), 6D ('m'), 6E ('n'), 6F ('o'), 70 ('p'), 71 ('q'), 72 ('r'), 73 ('s'), 74 ('t'), 75 ('u'), 76 ('v'), 77 ('w'), 78 ('x'), 79 ('y...
  11. 00406476  |. |8803          |MOV BYTE PTR DS:[EBX],AL
  12. 00406478  |> |43            |INC EBX                                 ; Default case of switch Dumped1_.406468
  13. 00406479  |.^\EB EB         \JMP SHORT 00406466

Надо найти код помогите расшифровать алго) Файлы оригинал и со снятым криптом прилагаются
http://rgho.st/7cmQnssz7
Я понимаю что возможно взял задачу не по силам но знаю что решить можно так что жду ваших предложений

Ранг: 49.5 (посетитель)
Статус: Участник

Создано: 15 апреля 2017 20:45 New!
Цитата · Личное сообщение · #2

В последнем фрагменте нет никаких switch..case, всего лишь перевод строки в верхний регистр.

Ранг: 14.1 (новичок)
Статус: Участник

Создано: 15 апреля 2017 20:48 · Поправил: RoKZaR New!
Цитата · Личное сообщение · #3

Так понял. Только не понимаю где здесь процедура генерации серийника

Добавлено спустя 1 час 34 минуты
Code:
  1. 0040648C | E8 E7 AF FF FF           | call <dumped_.GetDlgItemTextA>          |
  2. 00406491 | 3D 00 01 00 00           | cmp eax,100                             |
  3. 00406496 | 0F 85 CD 00 00 00        | jne dumped_.406569                      |
  4. 0040649C | 60                       | pushal                                  |
  5. 0040649D | 68 F1 98 40 00           | push dumped_.4098F1                     |
  6. 004064A2 | E8 73 B0 FF FF           | call <dumped_.lstrlen>                  |
  7. 004064A7 | 8B C8                    | mov ecx,eax                             |
  8. 004064A9 | BB F1 98 40 00           | mov ebx,dumped_.4098F1                  |
  9. 004064AE | 33 C0                    | xor eax,eax                             |
  10. 004064B0 | 33 D2                    | xor edx,edx                             |
  11. 004064B2 | 8A 03                    | mov al,byte ptr ds:[ebx]                |
  12. 004064B4 | 0A C0                    | or al,al                                |
  13. 004064B6 | 74 17                    | je dumped_.4064CF                       |
  14. 004064B8 | 3C 30                    | cmp al,30                               |
  15. 004064BA | 72 07                    | jb dumped_.4064C3                       |
  16. 004064BC | 3C 39                    | cmp al,39                               |
  17. 004064BE | 77 03                    | ja dumped_.4064C3                       |
  18. 004064C0 | 42                       | inc edx                                 |
  19. 004064C1 | EB 09                    | jmp dumped_.4064CC                      |
  20. 004064C3 | 3C 41                    | cmp al,41                               |
  21. 004064C5 | 72 05                    | jb dumped_.4064CC                       |
  22. 004064C7 | 3C 46                    | cmp al,46                               |
  23. 004064C9 | 77 01                    | ja dumped_.4064CC                       |
  24. 004064CB | 42                       | inc edx                                 |
  25. 004064CC | 43                       | inc ebx                                 |
  26. 004064CD | EB E3                    | jmp dumped_.4064B2                      |
  27. 004064CF | 81 FA 00 01 00 00        | cmp edx,100                             |
  28. 004064D5 | 0F 85 8E 00 00 00        | jne dumped_.406569                      |
  29. 004064DB | 61                       | popal                                   |
  30. 004064DC | 6A 00                    | push 0                                  |
  31. 004064DE | E8 CD DE FF FF           | call dumped_.4043B0                     |
  32. 004064E3 | 89 45 F4                 | mov dword ptr ss:[ebp-C],eax            |
  33. 004064E6 | 6A 00                    | push 0                                  |
  34. 004064E8 | E8 C3 DE FF FF           | call dumped_.4043B0                     |
  35. 004064ED | 89 45 FC                 | mov dword ptr ss:[ebp-4],eax            |
  36. 004064F0 | 6A 00                    | push 0                                  |
  37. 004064F2 | E8 B9 DE FF FF           | call dumped_.4043B0                     |
  38. 004064F7 | 89 45 F8                 | mov dword ptr ss:[ebp-8],eax            |
  39. 004064FA | 6A 00                    | push 0                                  |
  40. 004064FC | E8 AF DE FF FF           | call dumped_.4043B0                     |
  41. 00406501 | 89 45 F0                 | mov dword ptr ss:[ebp-10],eax           |
  42. 00406504 | FF 75 F4                 | push dword ptr ss:[ebp-C]               |
  43. 00406507 | 68 F1 98 40 00           | push dumped_.4098F1                     |
  44. 0040650C | E8 17 E0 FF FF           | call dumped_.404528                     |
  45. 00406511 | FF 75 FC                 | push dword ptr ss:[ebp-4]               |
  46. 00406514 | 68 6F 93 40 00           | push dumped_.40936F                     | ;40936F:"C3F7CA4B2871BE19F7877325BBAD130DF7CF52BDDB4961A11FF059EEA3EAFFFB250FD475AA16967EEFC36CE9B860E7C440DD0A5A8D5FE58A7D603DB6E284CC9494FDDEB5584706AD7CDB8CEBFFDCDB84E30E870CC29FB5A0BD98526CD6396BF1A8ADDB3F44965D8B05EEFBB5EFCA71D0288F7EE43B4639DED8A91E35164CD019"
  47. 00406519 | E8 0A E0 FF FF           | call dumped_.404528                     |
  48. 0040651E | FF 75 F8                 | push dword ptr ss:[ebp-8]               |
  49. 00406521 | 68 70 94 40 00           | push dumped_.409470                     | ;409470:"10001"
  50. 00406526 | E8 FD DF FF FF           | call dumped_.404528                     |
  51. 0040652B | FF 75 F0                 | push dword ptr ss:[ebp-10]              |
  52. 0040652E | 68 F0 97 40 00           | push dumped_.4097F0                     |
  53. 00406533 | E8 F0 DF FF FF           | call dumped_.404528                     |
  54. 00406538 | FF 75 F4                 | push dword ptr ss:[ebp-C]               |
  55. 0040653B | FF 75 FC                 | push dword ptr ss:[ebp-4]               |
  56. 0040653E | FF 75 F8                 | push dword ptr ss:[ebp-8]               |
  57. 00406541 | FF 75 F4                 | push dword ptr ss:[ebp-C]               |
  58. 00406544 | E8 E5 E6 FF FF           | call dumped_.404C2E                     |
  59. 00406549 | FF 75 F0                 | push dword ptr ss:[ebp-10]              |
  60. 0040654C | FF 75 F4                 | push dword ptr ss:[ebp-C]               |
  61. 0040654F | E8 01 DF FF FF           | call dumped_.404455                     |

Ранг: 69.7 (постоянный)
Статус: Участник

Создано: 15 апреля 2017 22:51 New!
Цитата · Личное сообщение · #4

Смотрите выше по адресам, все на виду..

Ранг: 14.1 (новичок)
Статус: Участник

Создано: 15 апреля 2017 23:21 New!
Цитата · Личное сообщение · #5

Обьясните пожалуйста) Как пропатчить уже нашел. Теперь при любом серийнике выдает нужное сообщение. Интересен ключ

Добавлено спустя 1 час 9 минут
Все проблема решена. Путем проб и ошибок было выяснено что дело в самом Crackme при вводе правильного серийника он крашился. Серийник найден крэкми пропатчен) Тему можно закрывать
 eXeL@B —› Крэки, обсуждения —› Помошь в нахождении ключа
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS