Сейчас на форуме: bedop66938, -Sanchez-, barsik (+6 невидимых)

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

Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 05 октября 2008 15:35 · Поправил: FleXik
· Личное сообщение · #1

неДоброе время суток! http://link_deleted_by_forum_engine/files/8492250 http://link_deleted_by_forum_engine/files/8492250 размер 3Мб.
вот уже неделю не могу сломать корпоративную прогу. Прога не запакована. писана на СИшке.
Прога привязывается к CPUID + <&KERNEL32.GlobalMemo>; \GlobalMemoryStatus.
входной и выходной коды имеют вид <74 символа>; после ввода кода в окошко регистраци он его не проверяет на правильность а просто проверяет длину и пишет в файл попутно забивая файл всякой хренью для понта такой как системная директория имя компа итп вначале вообще пишет в файл инфу, которая возвращает getsysteminfo. проверка идет только при запуске. почему прога использует данные из кода? - я отрубил окно регистрации принудительно и сделал активным главное... при вызове жизненно важных функций прога вылетает с ошибкой.
код при каждом запуске видимо дополняется какими то рандомными данными.

Code:
  1. 00425A24  /$  55                         PUSH EBP
  2. 00425A25  |.  8BEC                       MOV EBP,ESP
  3. 00425A27  |.  53                            PUSH EBX
  4. 00425A28  |.  B8 01000000             MOV EAX,1
  5. 00425A2D  |.  0FA2                           CPUID
  6. 00425A2F  |.  8B5D 08                       MOV EBX,DWORD PTR SS:[EBP+8]
  7. 00425A32  |.  8903                            MOV DWORD PTR DS:[EBX],EAX
  8. 00425A34  |.  8B5D 0C                       MOV EBX,DWORD PTR SS:[EBP+C]
  9. 00425A37  |.  8913                            MOV DWORD PTR DS:[EBX],EDX
  10. 00425A39  |.  5B                          POP EBX
  11. 00425A3A  |.  5D                          POP EBP
  12. 00425A3B  \.  C3                         RETN
  13. ; во первых для меня загадка зачем здесь используется timeGetTime ведь она для получения времени работы винды в данный момент
  14. 00425A3C  /$  55                         PUSH EBP
  15. 00425A3D  |.  8BEC                      MOV EBP,ESP
  16. 00425A3F  |.  51                          PUSH ECX
  17. 00425A40  |.  51                          PUSH ECX
  18. 00425A41  |.  8365 F8 00                  AND DWORD PTR SS:[EBP-8],0
  19. 00425A45  |.  8365 FC 00                  AND DWORD PTR SS:[EBP-4],0
  20. 00425A49  |.  53                          PUSH EBX
  21. 00425A4A  |.  56                          PUSH ESI
  22. 00425A4B  |.  8B35 24885100               MOV ESI,DWORD PTR DS:[<&WINMM.timeGetTim>; WINMM.timeGetTime
  23. 00425A51  |.  57                          PUSH EDI
  24. 00425A52  |.  FFD6                       CALL ESI                                 ; <&WINMM.timeGetTime>
  25. 00425A54  |.  8BD8                       MOV EBX,EAX
  26. 00425A56  |>  FFD6                                      CALL ESI
  27. 00425A58  |.  8BF8                                       MOV EDI,EAX
  28. 00425A5A  |.  2BC3                                       SUB EAX,EBX
  29. 00425A5C  |.  83F8 01                                  CMP EAX,1
  30. 00425A5F  |.7E F5                                     JLE SHORT ZRPRT.00425A56
  31. 00425A61  |.  53                          PUSH EBX
  32. 00425A62  |.  33C0                        XOR EAX,EAX
  33. 00425A64  |.  33DB                        XOR EBX,EBX
  34. 00425A66  |.  33C9                        XOR ECX,ECX
  35. 00425A68  |.  33D2                        XOR EDX,EDX
  36. 00425A6A  |.  0FA2                                                    CPUID
  37. 00425A6C  |.  0F31                        RDTSC
  38. 00425A6E  |.  8945 F8                    MOV DWORD PTR SS:[EBP-8],EAX
  39. 00425A71  |.  5B                            POP EBX
  40. 00425A72  |.  FFD6                        CALL ESI
  41. 00425A74  |.  2BC7                        SUB EAX,EDI
  42. 00425A76  |.  BB E8030000           MOV EBX,3E8
  43. 00425A7B  |>  3BC3                                      CMP EAX,EBX
  44. 00425A7D  |.  7F 06                                       JG SHORT ZRPRT.00425A85
  45. 00425A7F  |.  FFD6                                        CALL ESI
  46. 00425A81  |.  2BC7                                       SUB EAX,EDI
  47. 00425A83  |.^ EB F6                                      JMP SHORT ZRPRT.00425A7B
  48. 00425A85  |>  53                          PUSH EBX
  49. 00425A86  |.  33C0                        XOR EAX,EAX
  50. 00425A88  |.  33DB                        XOR EBX,EBX
  51. 00425A8A  |.  33C9                        XOR ECX,ECX
  52. 00425A8C  |.  33D2                        XOR EDX,EDX
  53. 00425A8E  |.  0FA2                                                    CPUID
  54. 00425A90  |.  0F31                      RDTSC
  55. 00425A92  |.  8945 FC                 MOV DWORD PTR SS:[EBP-4],EAX
  56. 00425A95  |.  5B                      POP EBX
  57. 00425A96  |.  8B45 FC                 MOV EAX,DWORD PTR SS:[EBP-4]
  58. 00425A99  |.  5F                      POP EDI
  59. 00425A9A  |.  2B45 F8                 SUB EAX,DWORD PTR SS:[EBP-8]
  60. 00425A9D  |.  5E                      POP ESI
  61. 00425A9E  |.  5B                      POP EBX
  62. 00425A9F  |.  C9            LEAVE
  63. 00425AA0  \.  C3            RETN
  64. ; так же загадка какой параметр памяти он берет ... там возвраащается общая\занятая \ не занятая
  65. ; память // НО если я докину памяти - что прога скажет что ключ не верен ??? О_о... если можете поясните
  66. 00425AA1  /$  55                          PUSH EBP
  67. 00425AA2  |.  8BEC                        MOV EBP,ESP
  68. 00425AA4  |.  83EC 20                     SUB ESP,20
  69. 00425AA7  |.  8D45 E0                     LEA EAX,DWORD PTR SS:[EBP-20]
  70. 00425AAA  |.  50                                        PUSH EAX                                 ; /pMemStat
  71. 00425AAB  |.  FF15 F4835100               CALL DWORD PTR DS:[<&KERNEL32.GlobalMemo>; \GlobalMemoryStatus
  72. 00425AB1  |.  8B45 E8                     MOV EAX,DWORD PTR SS:[EBP-18]
  73. 00425AB4  |.  C9                          LEAVE
  74. 00425AB5  \.  C3                          RETN


после этого производятся манипуляции с введенным мною кодом который пишется в файл и проверяется
при каждом запуске. по адресу 12fd90 вычисляется 25h знаков код из введенного мной по алгоритму
Пусть первый 'B'
if данный символ =31h или 48h или 5Ah то вернуть 0
else if 50h или 32h то вернуть 1.....
else if 58h,4a вернуть 0F

результат в BL ( для В результат =3)

сразу же берется второй символ
те же манипуляции - SHL BL,4
+AL - кароче сделали из 2х - 1 ...
ниже сама функция и выборка

Code:
  1. 00425FE7  /$  57            PUSH EDI
  2. 00425FE8  |.  33FF          XOR EDI,EDI
  3. 00425FEA  |.  397C24 14     CMP DWORD PTR SS:[ESP+14],EDI
  4. 00425FEE  |.  7E 31         JLE SHORT ZRPRT.00426021
  5. 00425FF0  |.  53            PUSH EBX
  6. 00425FF1  |.  56            PUSH ESI
  7. 00425FF2  |.  8B7424 10     MOV ESI,DWORD PTR SS:[ESP+10]
  8. 00425FF6  |>  8A06          /MOV AL,BYTE PTR DS:[ESI]
  9. 00425FF8  |.  46            |INC ESI
  10. 00425FF9  |.  50            |PUSH EAX
  11. 00425FFA  |.  E8 9AFCFFFF   |CALL ZRPRT.00425C99
  12. 00425FFF  |.  8AD8          |MOV BL,AL
  13. 00426001  |.  8A06          |MOV AL,BYTE PTR DS:[ESI]
  14. 00426003  |.  50            |PUSH EAX
  15. 00426004  |.  46            |INC ESI
  16. 00426005  |.  E8 8FFCFFFF   |CALL ZRPRT.00425C99
  17. 0042600A  |.  59            |POP ECX
  18. 0042600B  |.  59            |POP ECX
  19. 0042600C  |.  8B4C24 18     |MOV ECX,DWORD PTR SS:[ESP+18]
  20. 00426010  |.  C0E3 04       |SHL BL,4
  21. 00426013  |.  02C3          |ADD AL,BL
  22. 00426015  |.  88040F        |MOV BYTE PTR DS:[EDI+ECX],AL
  23. 00426018  |.  47            |INC EDI
  24. 00426019  |.  3B7C24 1C     |CMP EDI,DWORD PTR SS:[ESP+1C]
  25. 0042601D  |.7C D7         \JL SHORT ZRPRT.00425FF6
  26. 0042601F  |.  5E            POP ESI
  27. 00426020  |.  5B            POP EBX
  28. 00426021  |>  5F            POP EDI
  29. 00426022  \.  C3            RETN




Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 05 октября 2008 15:39
· Личное сообщение · #2

Code:
  1. 00425C99  /$  8A4424 04     MOV AL,BYTE PTR SS:[ESP+4]
  2. 00425C9D  |.  3C 31         CMP AL,31
  3. 00425C9F  |.  0F84 C5000000 JE ZRPRT.00425D6A
  4. 00425CA5  |.  3C 48         CMP AL,48
  5. 00425CA7  |.  0F84 BD000000 JE ZRPRT.00425D6A
  6. 00425CAD  |.  3C 50         CMP AL,50
  7. 00425CAF  |.  0F84 B2000000 JE ZRPRT.00425D67
  8. 00425CB5  |.  3C 32         CMP AL,32
  9. 00425CB7  |.  0F84 AA000000 JE ZRPRT.00425D67
  10. 00425CBD  |.  3C 33         CMP AL,33
  11. 00425CBF  |.  0F84 9F000000 JE ZRPRT.00425D64
  12. 00425CC5  |.  3C 47         CMP AL,47
  13. 00425CC7  |.  0F84 97000000 JE ZRPRT.00425D64
  14. 00425CCD  |.  3C 42         CMP AL,42
  15. 00425CCF  |.  0F84 8C000000 JE ZRPRT.00425D61
  16. 00425CD5  |.  3C 34         CMP AL,34
  17. 00425CD7  |.  0F84 84000000 JE ZRPRT.00425D61
  18. 00425CDD  |.  3C 35         CMP AL,35
  19. 00425CDF  |.  74 7D         JE SHORT ZRPRT.00425D5E
  20. 00425CE1  |.  3C 46         CMP AL,46
  21. 00425CE3  |.  74 79         JE SHORT ZRPRT.00425D5E
  22. 00425CE5  |.  3C 37         CMP AL,37
  23. 00425CE7  |.  74 72         JE SHORT ZRPRT.00425D5B
  24. 00425CE9  |.  3C 36         CMP AL,36
  25. 00425CEB  |.  74 6E         JE SHORT ZRPRT.00425D5B
  26. 00425CED  |.  3C 55         CMP AL,55
  27. 00425CEF  |.  74 67         JE SHORT ZRPRT.00425D58
  28. 00425CF1  |.  3C 44         CMP AL,44
  29. 00425CF3  |.  74 63         JE SHORT ZRPRT.00425D58
  30. 00425CF5  |.  3C 39         CMP AL,39
  31. 00425CF7  |.  74 5C         JE SHORT ZRPRT.00425D55
  32. 00425CF9  |.  3C 38         CMP AL,38
  33. 00425CFB  |.  74 58         JE SHORT ZRPRT.00425D55
  34. 00425CFD  |.  3C 59         CMP AL,59
  35. 00425CFF  |.  74 51         JE SHORT ZRPRT.00425D52
  36. 00425D01  |.  3C 53         CMP AL,53
  37. 00425D03  |.  74 4D         JE SHORT ZRPRT.00425D52
  38. 00425D05  |.  3C 54         CMP AL,54
  39. 00425D07  |.  74 46         JE SHORT ZRPRT.00425D4F
  40. 00425D09  |.  3C 41         CMP AL,41
  41. 00425D0B  |.  74 42         JE SHORT ZRPRT.00425D4F
  42. 00425D0D  |.  3C 52         CMP AL,52
  43. 00425D0F  |.  74 3B         JE SHORT ZRPRT.00425D4C
  44. 00425D11  |.  3C 4D         CMP AL,4D
  45. 00425D13  |.  74 37         JE SHORT ZRPRT.00425D4C
  46. 00425D15  |.  3C 45         CMP AL,45
  47. 00425D17  |.  74 30         JE SHORT ZRPRT.00425D49
  48. 00425D19  |.  3C 4E         CMP AL,4E
  49. 00425D1B  |.  74 2C         JE SHORT ZRPRT.00425D49
  50. 00425D1D  |.  3C 57         CMP AL,57
  51. 00425D1F  |.  74 25         JE SHORT ZRPRT.00425D46
  52. 00425D21  |.  3C 56         CMP AL,56
  53. 00425D23  |.  74 21         JE SHORT ZRPRT.00425D46
  54. 00425D25  |.  3C 4C         CMP AL,4C
  55. 00425D27  |.  74 1A         JE SHORT ZRPRT.00425D43
  56. 00425D29  |.  3C 43         CMP AL,43
  57. 00425D2B  |.  74 16         JE SHORT ZRPRT.00425D43
  58. 00425D2D  |.  3C 4B         CMP AL,4B
  59. 00425D2F  |.  74 0F         JE SHORT ZRPRT.00425D40
  60. 00425D31  |.  3C 58         CMP AL,58
  61. 00425D33  |.  74 0B         JE SHORT ZRPRT.00425D40
  62. 00425D35  |.  3C 4A         CMP AL,4A
  63. 00425D37  |.  74 04         JE SHORT ZRPRT.00425D3D
  64. 00425D39  |.  3C 5A         CMP AL,5A
  65. 00425D3B  |.  75 2D         JNZ SHORT ZRPRT.00425D6A
  66. 00425D3D  |>  B0 0F         MOV AL,0F
  67. 00425D3F  |.  C3            RETN
  68. 00425D40  |>  B0 0E         MOV AL,0E
  69. 00425D42  |.  C3            RETN
  70. 00425D43  |>  B0 0D         MOV AL,0D
  71. 00425D45  |.  C3            RETN
  72. 00425D46  |>  B0 0C         MOV AL,0C
  73. 00425D48  |.  C3            RETN
  74. 00425D49  |>  B0 0B         MOV AL,0B
  75. 00425D4B  |.  C3            RETN
  76. 00425D4C  |>  B0 0A         MOV AL,0A
  77. 00425D4E  |.  C3            RETN
  78. 00425D4F  |>  B0 09         MOV AL,9
  79. 00425D51  |.  C3            RETN
  80. 00425D52  |>  B0 08         MOV AL,8
  81. 00425D54  |.  C3            RETN
  82. 00425D55  |>  B0 07         MOV AL,7
  83. 00425D57  |.  C3            RETN
  84. 00425D58  |>  B0 06         MOV AL,6
  85. 00425D5A  |.  C3            RETN
  86. 00425D5B  |>  B0 05         MOV AL,5
  87. 00425D5D  |.  C3            RETN
  88. 00425D5E  |>  B0 04         MOV AL,4
  89. 00425D60  |.  C3            RETN
  90. 00425D61  |>  B0 03         MOV AL,3
  91. 00425D63  |.  C3            RETN
  92. 00425D64  |>  B0 02         MOV AL,2
  93. 00425D66  |.  C3            RETN
  94. 00425D67  |>  B0 01         MOV AL,1
  95. 00425D69  |.  C3            RETN
  96. 00425D6A  |>  32C0          XOR AL,AL
  97. 00425D6C  \.  C3            RETN


этот код, на сколько я понимаю, создает дополнительный поток.... на который у меня не получилось перейти так как прога ставит наверх (FS[0]) свой обработчик ошибок и вызывает исключение при вызове и часто вылетала просто

Code:
  1. 00426B4D   .  F7DB          NEG EBX
  2. 00426B4F   .  1BDB          SBB EBX,EBX
  3. 00426B51   .  81E3 88130000 AND EBX,1388
  4. 00426B57   .  81C3 B80B0000 ADD EBX,0BB8
  5. 00426B5D   .  53            PUSH EBX                                 ; /Timeout
  6. 00426B5E   .  8B1D 70825100 MOV EBX,DWORD PTR DS:[<&KERNEL32.WaitFor>; |kernel32.WaitForSingleObject
  7. 00426B64   .  FF70 28       PUSH DWORD PTR DS:[EAX+28]               ; |hObject
  8. 00426B67   .  FFD3          CALL EBX                                 ; \WaitForSingleObject
  9. 00426B69   .  6A 00         PUSH 0                                   ; /Alertable = FALSE
  10. 00426B6B   .  6A 01         PUSH 1                                   ; |Timeout = 1. ms
  11. 00426B6D   .  FF15 D0835100 CALL DWORD PTR DS:[<&KERNEL32.SleepEx>]  ; \SleepEx
  12. 00426B73   .  68 E8030000   PUSH 3E8                                 ; /Timeout = 1000. ms
  13. 00426B78   .  FFB6 88990000 PUSH DWORD PTR DS:[ESI+9988]             ; |hObject
  14. 00426B7E   .  FFD3          CALL EBX                                 ; \WaitForSingleObject
  15. 00426B80   .  3D 02010000   CMP EAX,102


И вот где то здесь должны браться данные ....
где не могу найти!!! помогите люди добре...!
далее идет сравнение после которого считается HardwareId и пишется на место моего неправильного ключа ((( - это место я определил

Code:
  1. 00426C09   .  FF75 E0       PUSH DWORD PTR SS:[EBP-20]
  2. 00426C0C   .  56            PUSH ESI
  3. 00426C0D   .  68 15040000   PUSH 415
  4. 00426C12   .  FF70 1C       PUSH DWORD PTR DS:[EAX+1C]
  5. 00426C15   .  FFD3          CALL EBX
  6. 00426C17   .  85C0          TEST EAX,EAX
  7. 00426C19      0F85 7B010000 JNZ ZRPRT.00426D9A
  8. 00426C1F   .  50            PUSH EAX
  9. 00426C20   .  8D8D 38FFFFFF LEA ECX,DWORD PTR SS:[EBP-C8]
  10. 00426C26   .  E8 08E8FFFF   CALL ZRPRT.00425433
  11. 00426C2B   .  C645 FC 04    MOV BYTE PTR SS:[EBP-4],4
  12. 00426C2F   .  C707 20080000 MOV DWORD PTR DS:[EDI],820
  13. 00426C35   .  FF75 D8       PUSH DWORD PTR SS:[EBP-28]
  14. 00426C38   .  6A 24         PUSH 24
  15. 00426C3A   .  FFB6 7C990000 PUSH DWORD PTR DS:[ESI+997C]
  16. 00426C40   .  E8 DEF3FFFF   CALL ZRPRT.00426023                      ; получаем данные компа и готовим их для
  17. 00426C45   .  6A 4A         PUSH 4A
  18. 00426C47   .  FFB6 78990000 PUSH DWORD PTR DS:[ESI+9978]
  19. 00426C4D   .  6A 25         PUSH 25
  20. 00426C4F   .  FFB6 7C990000 PUSH DWORD PTR DS:[ESI+997C]
  21. 00426C55   .  E8 2CF4FFFF   CALL ZRPRT.00426086                      ; записи для вывода на экран
  22. 00426C5A   .  A1 38525500   MOV EAX,DWORD PTR DS:[555238]
  23. 00426C5F   .  83C4 1C       ADD ESP,1C
  24. 00426C62   .  8945 E4       MOV DWORD PTR SS:[EBP-1C],EAX
  25. 00426C65   .  6A 4C         PUSH 4C


помогите пожалуйста бьюсь уже неделю.. спать не могу.. =)
пароли 1286
юзер 1 пасс 1
на базу пароли не знаю ((
к сожалению файл больше чем 500 кб поетому придется кидать на чужой хост ( там без базы прога ваще не запускается а базу порезать не могу)



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 05 октября 2008 15:48
· Личное сообщение · #3

А есть валидная пара ? Если есть, то заинлайнь и не мучайся



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 05 октября 2008 15:51
· Личное сообщение · #4

Валидная пара есть, весь прикол в том что эта пара хляет только на одном компе, и прога явно данные берет по какому то алгоритму изходя из номера цпу итп



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 05 октября 2008 15:52 · Поправил: FleXik
· Личное сообщение · #5

на всякий кидаю валидную пару

Hardware ID : <UU2A9WA6KK6C9JFX91SXLRC8TUZC7L4Z73VNRRAFB5NMURMS1EVHBUZMWEV4YYN47UFCJ 72H1B>
-этот при каждом запуске новый! =))
Key:
<BU2D5YG2T3GFWEHS5JVNLP4SR9Z2LTGMY3VSLYZX5BFCTY66YWXGEBF8P922TY6F3J223 LH67Y>

самое смешное что была попытка на компе котором он стоял переименовать .key в .ke_
а потом дать ему захавать Ключ на новый сгенерированный номер на этом компе
... неповерите - непошел =)) хотя вернув на место .key все опять заработало....

мне здесь подойдет любой вариант отвязки ... сначала я хотел кормить проге HardwareId с чужого компа - ну что б функция всегда возвращала одно и то же , но к сожалению (как мне показалось) этот HDid после его генерации нигде больше не используется...
был вариант найти место проверки основного и сгенерированного и переправить так что бы оба входных параметра для функции указывали на один адрес ( ну то б проверял сам с собой) ... видимо это тоже не подходит ((( так как помимо обычной сверки используются данные зашитые?\Зашифрованные? в ключе (иначе не вылетала б)... защита класса неявных (
посоветуйте что да как или я может чего не вижу



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 05 октября 2008 20:29 · Поправил: tempread
· Личное сообщение · #6

FleXik
Есть интересное преобразование по адресу 4260b2.
Там статический HWID(предположительно) преобразовывается в то,что показывается на экране.
По идее,если посмотреть какой статический HWID у машины,с которой взята валидная пара(либо вычислить его из того,что показывается на экране), и подставить в программу на другом компе, то достинем цели.В общем,покопай в эту сторону, возможно там еще какие-нибудь преобразования есть.



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 октября 2008 01:00
· Личное сообщение · #7

tempread Спасибо что посмотрели, но к сожалению я статика там не обнаружил ибо при перезапуске по адресу 3d39f0 каждый раз новые данные ( я правильно понял про какой стактик идет речь?

первый запуск
003D39F0 E5 B0 A4 54 07 B7 B8 B5 C2 37 C9 FF 39 F8 82 16 е°¤T·ёµВ7Йя9ш‚
003D3A00 EB D2 1F 65 B5 16 BE 0E C4 E6 B4 E0 A1 7D 41 8F лТeµѕДжґаЎ}AЏ
003D3A10 06 22 22 31 AC F0 AD BA 0D F0 AD BA 0D F0 AD BA ""1¬р­є.р­є.р­є
;;; второй запуск
003D39F0 AD F8 A4 9C BF 27 70 7D 32 EF 11 5F E1 80 D2 DE ­ш¤њї'p}2п_бЂТЮ
003D3A00 73 82 37 9D 15 4E 66 7E EC 5E 64 C8 99 BD 89 97 s‚7ќNf~м^dИ™Ѕ‰—
003D3A10 C6 6A 3A 61 E4 F0 AD BA 0D F0 AD BA 0D F0 AD BA Жj:aдр­є.р­є.р­є
003D3A20 AB AB AB AB AB AB AB AB ««««««««


Code:
  1. 00426086  /$  55            PUSH EBP
  2. 00426087  |.  8BEC          MOV EBP,ESP
  3. 00426089  |.  83EC 24       SUB ESP,24
  4. 0042608C  |.  56            PUSH ESI
  5. 0042608D  |.  57            PUSH EDI
  6. 0042608E  |.  BE 0C225500   MOV ESI,ZRPRT.0055220C                               ; ASCII "1P3B57U9YTREWLKJ"
  7. 00426093  |.  8D7D DC       LEA EDI,DWORD PTR SS:[EBP-24]
  8. 00426096  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  9. 00426097  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  10. 00426098  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  11. 00426099  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  12. 0042609A  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  13. 0042609B  |.  BE F8215500   MOV ESI,ZRPRT.005521F8                               ; ASCII "H2G4F6D8SAMNVCXZ"
  14. 004260A0  |.  8D7D ED       LEA EDI,DWORD PTR SS:[EBP-13]
  15. 004260A3  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  16. 004260A4  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  17. 004260A5  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  18. 004260A6  |.  A5            MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  19. 004260A7  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  20. 004260A8  |.  33F6          XOR ESI,ESI
  21. 004260AA  |.  3975 0C       CMP DWORD PTR SS:[EBP+C],ESI
  22. 004260AD  |.  7E 3E         JLE SHORT ZRPRT.004260ED
  23. 004260AF  |.  8B4D 10       MOV ECX,DWORD PTR SS:[EBP+10]
  24. 004260B2  |.  53            PUSH EBX
  25. 004260B3  |>  8B45 08       /MOV EAX,DWORD PTR SS:[EBP+8]
  26. 004260B6  |.  6A 02         |PUSH 2
  27. 004260B8  |.  5F            |POP EDI
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. ; подсматриваем адрес статика здесь MOV BL,BYTE PTR DS:[ESI+EAX]
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. 004260B9  |.  8A1C06        |MOV BL,BYTE PTR DS:[ESI+EAX]
  32. 004260BC  |.  8BC6          |MOV EAX,ESI
  33. 004260BE  |.  99            |CDQ
  34. 004260BF  |.  F7FF          |IDIV EDI
  35. 004260C1  |.  885D 13       |MOV BYTE PTR SS:[EBP+13],BL
  36. 004260C4  |.  80E3 0F       |AND BL,0F
  37. 004260C7  |.  0FB645 13     |MOVZX EAX,BYTE PTR SS:[EBP+13]
  38. 004260CB  |.  C1E8 04       |SHR EAX,4
  39. 004260CE  |.  6BD2 11       |IMUL EDX,EDX,11
  40. 004260D1  |.  03C2          |ADD EAX,EDX
  41. 004260D3  |.  8A4405 DC     |MOV AL,BYTE PTR SS:[EBP+EAX-24]
  42. 004260D7  |.  8801          |MOV BYTE PTR DS:[ECX],AL
  43. 004260D9  |.  41            |INC ECX
  44. 004260DA  |.  0FB6C3        |MOVZX EAX,BL
  45. 004260DD  |.  03C2          |ADD EAX,EDX
  46. 004260DF  |.  8A4405 DC     |MOV AL,BYTE PTR SS:[EBP+EAX-24]
  47. 004260E3  |.  8801          |MOV BYTE PTR DS:[ECX],AL
  48. 004260E5  |.  41            |INC ECX
  49. 004260E6  |.  46            |INC ESI
  50. 004260E7  |.  3B75 0C       |CMP ESI,DWORD PTR SS:[EBP+C]
  51. 004260EA  |.7C C7         \JL SHORT ZRPRT.004260B3
  52. 004260EC  |.  5B            POP EBX
  53. 004260ED  |>  5F            POP EDI
  54. 004260EE  |.  5E            POP ESI
  55. 004260EF  |.  C9            LEAVE
  56. 004260F0  \.  C3            RETN




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 06 октября 2008 11:37
· Личное сообщение · #8

FleXik
Нет,нет, я писал о статическом HWID вот тут:
004260D3 MOV AL,BYTE PTR SS:[EBP+EAX-24]



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

Создано: 06 октября 2008 13:14 · Поправил: Konstantin
· Личное сообщение · #9

FleXik
Все оказалось довольно банально.
Обрати внимание на следующий код:
Code:
  1. 00426AB4  8D85 A8FEFFFF         LEA EAX,DWORD PTR SS:[EBP-158]
  2. 00426ABA  83C4 20               ADD ESP,20
  3. 00426ABD  8986 8C990000         MOV DWORD PTR DS:[ESI+998C],EAX
  4. 00426AC3  8D85 80FEFFFF         LEA EAX,DWORD PTR SS:[EBP-180]                   <- это nop-им, вот и весь патч
  5. 00426AC9  8986 90990000         MOV DWORD PTR DS:[ESI+9990],EAX


Сравниваются два участка с данными размером под 25h байт.
адрес 1-го участка кладется сюда: [ESI+998C] - данные для него формируются из кода системы (как формируются можно узнать если потрейсить код выше)
адрес 2-го участка кладется сюда: [ESI+9990] - данные для него формируются из регистрационного ключа
Соответственно чтобы прога была зарегина нужно чтобы данные этих участков совпадали.
Вот пропатченный файл.
http://rapidshare.com/files/151389289/ZRPRT_final.rar.html http://rapidshare.com/files/151389289/ZRPRT_final.rar.html

P.S. После запуска патченной проги появляется окошко входа в систему, где просится имя пользователя и пароль, надеюсь это патчить не нужно



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 октября 2008 15:33 · Поправил: FleXik
· Личное сообщение · #10

Konstantin
tempread
Огромное Вам спасибо! видимо мне еще стоит подучить асм =)
Надеюсь что в долгу не останусь=)
к сожалению с рапидшары файл слить не могу так как у провадера мы все через 1 хост сидим(( по фришнику пишет что мой айпишник уже качает =) могу канешно проксей зайти ток искать ее долго

2Konstantin если не секрет, как понял что именно здесь идет проверка?
я так понимаю что у меня просто скила не хватило=) или не заметил такую блин простую проверку

еще раз Благодарю!



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 06 октября 2008 15:46 · Поправил: tempread
· Личное сообщение · #11

FleXik
к сожалению с рапидшары файл слить не могу

Зеркало - http://dump.ru/file/1104745 http://dump.ru/file/1104745



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 октября 2008 15:49
· Личное сообщение · #12

tempread
Дык я у себя в оле все пропатчил =) все работает все отлично =)



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 06 октября 2008 18:45
· Личное сообщение · #13

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

топикстартер молодец!

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 06 октября 2008 20:07
· Личное сообщение · #14

FleXik
FleXik пишет:
2Konstantin если не секрет, как понял что именно здесь идет проверка?

Не секрет .
По наводке tempread-а, посмотрел код по адресу 4260b2. Все данные для генерации кода системы берутсья из определенной области размером 25h по адресу 3e3a30. Поставил на адрес 3e3a34 hw-бряк на доступ. После перезапуска трейсил shift+f9 пока в этом адресе не появились нужные данные, потом раза 4-е ctrl+f9 и окажемся в таком месте:
Code:
  1. 00426A88   8D85 A8FEFFFF           LEA EAX,DWORD PTR SS:[EBP-158]
  2. 00426A8E   6A 25                   PUSH 25
  3. 00426A90   50                      PUSH EAX
  4. 00426A91   6A 24                   PUSH 24
  5. 00426A93   FFB6 7C990000           PUSH DWORD PTR DS:[ESI+997C]
  6. 00426A99   E8 89F4FFFF             CALL ZRPRT.00425F27             <- здесь получается блок данных основанный на hwid
  7. 00426A9E   8D85 80FEFFFF           LEA EAX,DWORD PTR SS:[EBP-180]  <- после 4-x ctrl+f9 будем здесь 
  8. 00426AA4   6A 25                   PUSH 25
  9. 00426AA6   50                      PUSH EAX
  10. 00426AA7   6A 4A                   PUSH 4A
  11. 00426AA9   FFB6 78990000           PUSH DWORD PTR DS:[ESI+9978]
  12. 00426AAF   E8 33F5FFFF             CALL ZRPRT.00425FE7 <- здесь получается блок данных из <b>регистрационного ключа</b>

Этот код привлек мое внимание наличием нескольких PUSH 25 . Далее хорошо потрейсив код по адресу call-a 00425FE7 выяснилось что он преобразут регистрационный ключ в блок данных размером 25h. Причем его алго тождественно алго кода по адресу 4260b2(см. выше). Т.е. если преобразавать регистрационный ключ по алго кода 00425FE7, а потом полученный данные использовать для кода по адресу 4260b2, то на выходе получиш тот же регистрационный ключ. А так как код системы и регистрационный ключ абсолютно разные, это наводит на предположение что 2 блока данных, после определенных преобразований должны быть одинаковы. Мозги не кипят от моих обяснений?
Дальше идет уже известный код:
Code:
  1. 00426AB4   8D85 A8FEFFFF           LEA EAX,DWORD PTR SS:[EBP-158]
  2. 00426ABA   83C4 20                 ADD ESP,20
  3. 00426ABD   8986 8C990000           MOV DWORD PTR DS:[ESI+998C],EAX 
  4. 00426AC3   8D85 80FEFFFF           LEA EAX,DWORD PTR SS:[EBP-180]  <- здесь патчим
  5. 00426AC9   8986 90990000           MOV DWORD PTR DS:[ESI+9990],EAX

Здесь пишуться данные для сравнения(я попробовал сделать их одинаковыми - это сработало ), само сравнение возможно идет в каком-то треде.(это предположение, дальше не смотрел)



Ранг: 3.1 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 октября 2008 21:23 · Поправил: FleXik
· Личное сообщение · #15

2Konstantin
Konstantin пишет:
Мозги не кипят от моих обяснений?

Мозги кипели когда я это лопатил и не получалось определить где идет сравнение, так как обычно все сводилось к банальному cmp al,bl:jnz netRegistracii =)
а здесь все понятно написано! еще раз огромное спасибо!

2Tim Благодарю. просто я считаю нужным показать чего я достиг в этом вопросе а не просто клянчить не приложив мозгов, и если не получается то спросить Совета - именно совета, а не полного решения (хотя мне таки и выдали результат сразу =) ).
вспоминается любимая история моего папаши - " сидит рыбак на берегу ловит рыбу , а рядом сидит голодный и просит у него рыбу, и пока рыбак сидит - голодный кушает, а когда рыбак ушел - голодный помер с голоду(масло масленное), потому что просил рыбу, а не научить его, как ее ловить. Так вот будь же рыбаком, или хотябы стремись им стать что бы не умереть от голоду ничего не умея! "

на сей ноте хочу закончить данную тему, считая ее исчерпанной, дабы не разводить флуд =) всем спасибо


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