Нужно распаковать книжку.

Тема в разделе "WASM.BEGINNERS", создана пользователем divirr, 15 ноя 2008.

  1. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Нашел я в интернете книжонку в экзешнике. На ней стоит пароль. Похоже на первый взгляд на какойто буржуйский платный пакер с паролем. Я чайник в вскрытии всяких защит. Обращаюсь к вам чтоб помогли что надо делать.
    Вот ссылка http://biznes-i-rabota.narod.ru/texnologiya.exe
    Заранее благодарен!
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    книжку самим искать? или по звёздам гадать?
     
  3. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Сорри вроде прекрипил файл.
     
  4. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Спасибо, интересная книга.
    Эта софтина на дельфях писана, дельфи говно и как следствие защита тоже.
    Вобщем чтобы открыть у меня ушло минут 10. Не разбералсо в том, как преобразуется код, я сделол так.
    Код (Text):
    1. 00478698                                 /.  55               push ebp
    2. 00478699                                 |.  8BEC             mov ebp,esp
    3. 0047869B                                 |.  6A 00            push 0
    4. 0047869D                                 |.  6A 00            push 0
    5. 0047869F                                 |.  53               push ebx
    6. 004786A0                                 |.  8BD8             mov ebx,eax
    7. 004786A2                                 |.  33C0             xor eax,eax
    8. 004786A4                                 |.  55               push ebp
    9. 004786A5                                 |.  68 FA864700      push texnolog.004786FA
    10. 004786AA                                 |.  64:FF30          push dword ptr fs:[eax]
    11. 004786AD                                 |.  64:8920          mov dword ptr fs:[eax],esp
    12. 004786B0                                 |.  8D55 FC          lea edx,dword ptr [ebp-4]
    13. 004786B3                                 |.  8BC3             mov eax,ebx
    14. 004786B5                                 |.  8B08             mov ecx,dword ptr [eax]
    15. 004786B7                                 |.  FF91 E0000000    call dword ptr [ecx+E0]
    16. 004786BD                                 |.  8B45 FC          mov eax,dword ptr [ebp-4]
    17. 004786C0                                 |.  50               push eax
    18. 004786C1                                 |.  8D55 F8          lea edx,dword ptr [ebp-8]
    19. 004786C4                                 |.  8BC3             mov eax,ebx
    20. 004786C6                                 |.  8B08             mov ecx,dword ptr [eax]
    21. 004786C8                                 |.  FF91 E4000000    call dword ptr [ecx+E4]
    22. 004786CE                                 |.  8B45 F8          mov eax,dword ptr [ebp-8]
    23. 004786D1                                 |.  8B8B F8020000    mov ecx,dword ptr [ebx+2F8]
    24. 004786D7                                 |.  5A               pop edx
    25. 004786D8                                 |.  E8 1FF7FFFF      call texnolog.00477DFC
    26.     ;EAX 00AFBB58 ASCII "6219769942"
    27.     ;ECX 00AF5658 ASCII "mn2a92d3ya4ih7"
    28.     ;EDX 00AF9F1C ASCII "10203040"
    29.     ;Стек: 0012F990       00AF8584          ASCII "[l>e<7`?{"
    30. 004786DD                                 |.  8BD8             mov ebx,eax
    31. 004786DF                                 |.  33C0             xor eax,eax
    32. 004786E1                                 |.  5A               pop edx
    33. 004786E2                                 |.  59               pop ecx
    34. 004786E3                                 |.  59               pop ecx
    35. 004786E4                                 |.  64:8910          mov dword ptr fs:[eax],edx
    36. 004786E7                                 |.  68 01874700      push texnolog.00478701
    37. 004786EC                                 |>  8D45 F8          lea eax,dword ptr [ebp-8]
    38. 004786EF                                 |.  BA 02000000      mov edx,2
    39. 004786F4                                 |.  E8 CFB4F8FF      call texnolog.00403BC8
    40. 004786F9                                 \.  C3               ret
    Далее юзаетсо кодес который строки разбирает:
    Код (Text):
    1. 00477C94                                 /$  55               push ebp
    2. 00477C95                                 |.  8BEC             mov ebp,esp
    3. 00477C97                                 |.  83C4 E0          add esp,-20
    4. 00477C9A                                 |.  53               push ebx
    5. 00477C9B                                 |.  56               push esi
    6. 00477C9C                                 |.  57               push edi
    7. 00477C9D                                 |.  33DB             xor ebx,ebx
    8. 00477C9F                                 |.  895D E0          mov dword ptr [ebp-20],ebx
    9. 00477CA2                                 |.  895D E4          mov dword ptr [ebp-1C],ebx
    10. 00477CA5                                 |.  895D E8          mov dword ptr [ebp-18],ebx
    11. 00477CA8                                 |.  8BF9             mov edi,ecx
    12. 00477CAA                                 |.  8955 F8          mov dword ptr [ebp-8],edx
    13. 00477CAD                                 |.  8945 FC          mov dword ptr [ebp-4],eax
    14. 00477CB0                                 |.  8B45 FC          mov eax,dword ptr [ebp-4]
    15. 00477CB3                                 |.  E8 20C3F8FF      call texnolog.00403FD8
    16. 00477CB8                                 |.  8B45 F8          mov eax,dword ptr [ebp-8]
    17. 00477CBB                                 |.  E8 18C3F8FF      call texnolog.00403FD8
    18. 00477CC0                                 |.  33C0             xor eax,eax
    19. 00477CC2                                 |.  55               push ebp
    20. 00477CC3                                 |.  68 ED7D4700      push texnolog.00477DED
    21. 00477CC8                                 |.  64:FF30          push dword ptr fs:[eax]
    22. 00477CCB                                 |.  64:8920          mov dword ptr fs:[eax],esp
    23. 00477CCE                                 |.  837D FC 00       cmp dword ptr [ebp-4],0
    24. 00477CD2                                 |.  74 6F            je short texnolog.00477D43
    25. 00477CD4                                 |.  BB 01000000      mov ebx,1
    26. 00477CD9                                 |.  8D75 EF          lea esi,dword ptr [ebp-11]
    27. 00477CDC                                 |>  8B45 FC          /mov eax,dword ptr [ebp-4]
    28. 00477CDF                                 |.  E8 40C1F8FF      |call texnolog.00403E24
    29. 00477CE4                                 |.  50               |push eax
    30. 00477CE5                                 |.  8BC3             |mov eax,ebx
    31. 00477CE7                                 |.  48               |dec eax
    32. 00477CE8                                 |.  5A               |pop edx
    33. 00477CE9                                 |.  8BCA             |mov ecx,edx
    34. 00477CEB                                 |.  99               |cdq
    35. 00477CEC                                 |.  F7F9             |idiv ecx
    36. 00477CEE                                 |.  8B45 FC          |mov eax,dword ptr [ebp-4]
    37. 00477CF1                                 |.  8A0410           |mov al,byte ptr [eax+edx]
    38. 00477CF4                                 |.  50               |push eax
    39. 00477CF5                                 |.  8B45 FC          |mov eax,dword ptr [ebp-4]
    40. 00477CF8                                 |.  E8 27C1F8FF      |call texnolog.00403E24
    41. 00477CFD                                 |.  5A               |pop edx
    42. 00477CFE                                 |.  32D0             |xor dl,al
    43. 00477D00                                 |.  32D3             |xor dl,bl
    44. 00477D02                                 |.  8816             |mov byte ptr [esi],dl
    45. 00477D04                                 |.  43               |inc ebx
    46. 00477D05                                 |.  46               |inc esi
    47. 00477D06                                 |.  83FB 0A          |cmp ebx,0A
    48. 00477D09                                 |.^ 75 D1            \jnz short texnolog.00477CDC
    49. 00477D0B                                 |.  8B45 FC          mov eax,dword ptr [ebp-4]
    50. 00477D0E                                 |.  E8 11C1F8FF      call texnolog.00403E24
    51. 00477D13                                 |.  8BF0             mov esi,eax
    52. 00477D15                                 |.  85F6             test esi,esi
    53. 00477D17                                 |.  7E 2A            jle short texnolog.00477D43
    54. 00477D19                                 |.  BB 01000000      mov ebx,1
    55. 00477D1E                                 |>  8B45 FC          /mov eax,dword ptr [ebp-4]
    56. 00477D21                                 |.  E8 FEC0F8FF      |call texnolog.00403E24
    57. 00477D26                                 |.  2BC3             |sub eax,ebx
    58. 00477D28                                 |.  8B55 FC          |mov edx,dword ptr [ebp-4]
    59. 00477D2B                                 |.  8A0C02           |mov cl,byte ptr [edx+eax]
    60. 00477D2E                                 |.  8BC3             |mov eax,ebx
    61. 00477D30                                 |.  48               |dec eax
    62. 00477D31                                 |.  51               |push ecx
    63. 00477D32                                 |.  B9 09000000      |mov ecx,9
    64. 00477D37                                 |.  99               |cdq
    65. 00477D38                                 |.  F7F9             |idiv ecx
    66. 00477D3A                                 |.  59               |pop ecx
    67. 00477D3B                                 |.  304C15 EF        |xor byte ptr [ebp+edx-11],cl
    68. 00477D3F                                 |.  43               |inc ebx
    69. 00477D40                                 |.  4E               |dec esi
    70. 00477D41                                 |.^ 75 DB            \jnz short texnolog.00477D1E
    71. 00477D43                                 |>  837D F8 00       cmp dword ptr [ebp-8],0
    72. 00477D47                                 |.  74 39            je short texnolog.00477D82
    73. 00477D49                                 |.  BB 01000000      mov ebx,1
    74. 00477D4E                                 |.  8D75 EF          lea esi,dword ptr [ebp-11]
    75. 00477D51                                 |>  8B45 F8          /mov eax,dword ptr [ebp-8]
    76. 00477D54                                 |.  E8 CBC0F8FF      |call texnolog.00403E24
    77. 00477D59                                 |.  50               |push eax
    78. 00477D5A                                 |.  8BC3             |mov eax,ebx
    79. 00477D5C                                 |.  48               |dec eax
    80. 00477D5D                                 |.  5A               |pop edx
    81. 00477D5E                                 |.  8BCA             |mov ecx,edx
    82. 00477D60                                 |.  99               |cdq
    83. 00477D61                                 |.  F7F9             |idiv ecx
    84. 00477D63                                 |.  8B45 F8          |mov eax,dword ptr [ebp-8]
    85. 00477D66                                 |.  8A0410           |mov al,byte ptr [eax+edx]
    86. 00477D69                                 |.  3206             |xor al,byte ptr [esi]
    87. 00477D6B                                 |.  50               |push eax
    88. 00477D6C                                 |.  8B45 F8          |mov eax,dword ptr [ebp-8]
    89. 00477D6F                                 |.  E8 B0C0F8FF      |call texnolog.00403E24
    90. 00477D74                                 |.  5A               |pop edx
    91. 00477D75                                 |.  32D0             |xor dl,al
    92. 00477D77                                 |.  32D3             |xor dl,bl
    93. 00477D79                                 |.  8816             |mov byte ptr [esi],dl
    94. 00477D7B                                 |.  43               |inc ebx
    95. 00477D7C                                 |.  46               |inc esi
    96. 00477D7D                                 |.  83FB 0A          |cmp ebx,0A
    97. 00477D80                                 |.^ 75 CF            \jnz short texnolog.00477D51
    98. 00477D82                                 |>  8D45 E8          lea eax,dword ptr [ebp-18]
    99. 00477D85                                 |.  E8 1ABEF8FF      call texnolog.00403BA4
    100. 00477D8A                                 |.  BB 09000000      mov ebx,9
    101. 00477D8F                                 |.  8D75 EF          lea esi,dword ptr [ebp-11]
    102. 00477D92                                 |>  8D45 E4          /lea eax,dword ptr [ebp-1C]
    103. 00477D95                                 |.  8A16             |mov dl,byte ptr [esi]
    104. 00477D97                                 |.  E8 B0BFF8FF      |call texnolog.00403D4C
    105. 00477D9C                                 |.  8B55 E4          |mov edx,dword ptr [ebp-1C]
    106. 00477D9F                                 |.  8D45 E8          |lea eax,dword ptr [ebp-18]
    107. 00477DA2                                 |.  E8 85C0F8FF      |call texnolog.00403E2C
    108. 00477DA7                                 |.  46               |inc esi
    109. 00477DA8                                 |.  4B               |dec ebx
    110. 00477DA9                                 |.^ 75 E7            \jnz short texnolog.00477D92
    111. 00477DAB                                 |.  8D55 E0          lea edx,dword ptr [ebp-20]
    112. 00477DAE                                 |.  8B45 E8          mov eax,dword ptr [ebp-18]
    113. 00477DB1                                 |.  E8 9AFDFFFF      call texnolog.00477B50
    114.     ;Стек:
    115.     ;0012F97C       00AF5658          ASCII "mn2a92d3ya4ih7"
    116.     ;0012F980       00AF9F1C          ASCII "10203040"
    117.     ;0012F984       00AFBB58          ASCII "6219769942"
    118.     ;0012F988       00AFA9F0          ASCII "S+z1TBz0LG83"
    119.     ;0012F990       00AF8584          ASCII "[l>e<7`?{"
    120. 00477DB6                                 |.  8B55 E0          mov edx,dword ptr [ebp-20]
    121. 00477DB9                                 |.  8BC7             mov eax,edi
    122. 00477DBB                                 |.  B9 FF000000      mov ecx,0FF
    123. 00477DC0                                 |.  E8 3BC0F8FF      call texnolog.00403E00
    124.     ;EDX 00AFA9F0 ASCII "S+z1TBz0LG83"
    125. 00477DC5                                 |.  33C0             xor eax,eax
    126. 00477DC7                                 |.  5A               pop edx
    127. 00477DC8                                 |.  59               pop ecx
    128. 00477DC9                                 |.  59               pop ecx
    129. 00477DCA                                 |.  64:8910          mov dword ptr fs:[eax],edx
    130. 00477DCD                                 |.  68 F47D4700      push texnolog.00477DF4
    131. 00477DD2                                 |>  8D45 E0          lea eax,dword ptr [ebp-20]
    132. 00477DD5                                 |.  BA 03000000      mov edx,3
    133. 00477DDA                                 |.  E8 E9BDF8FF      call texnolog.00403BC8
    134. 00477DDF                                 |.  8D45 F8          lea eax,dword ptr [ebp-8]
    135. 00477DE2                                 |.  BA 02000000      mov edx,2
    136. 00477DE7                                 |.  E8 DCBDF8FF      call texnolog.00403BC8
    137. 00477DEC                                 \.  C3               ret
    На выходе этой процедуры в регистре Edi пароль, в моём случае - "S+z1TBz0LG83".
     
  5. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Огромное спасибо, что уделили время! Но я в ассеблере не силен(. Мнеб как полному чайнику сказать что сделать чтоб она открылась).
     
  6. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    divirr
    Чувак, а что ты еще хотел услышать? Ты попал на форум по низкоуровневому программированию на ассемблере. Это так, для справки ))
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    divirr
    в 95% случаев достаточно немного терпения + старания и гугл выдаёт бесплатный вариант платной книги ;)
     
  8. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    divirr
    Вот сфоткол тебе: http://narod.ru/disk/3796565000/bk.rar.html
     
  9. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    CrystalIC
    а чем можно такую демку сделать?
     
  10. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    CamStudio
     
  11. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    CrystalIC
    спс
     
  12. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Лучшеб за место этой демки прикрепил бы сам файл открытой книги)))
     
  13. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    divirr
    Она к оборудованию ципляетсо, у тебя не пойдёт.
     
  14. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Ты думаешь что я совсем ничего не понимаю?)
     
  15. inviZ

    inviZ Сергей

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    92
    Адрес:
    Хабаровск
  16. divirr

    divirr New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2008
    Сообщения:
    11
    Подскажите лучше что почитать и каким софтом пользоваться. Буду изучать.
     
  17. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
  18. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    CrystalIC, работает! )

    Мне вот интересно, как именно анализировался код в данном случае, ну то есть какие предположения легли в основу решения? Отладчиком вроде пользоваться умею, а вот думать в направлении поиска и обхода даже простой защиты не умею... туплю. Начало статей по OllyDdg прочитал. Достаточно ли этих статей для начала, для взлома такой штуки как эта?

    divirr Я открыл программу в OllyDdg, в окне CPU перешел (Ctrl+G) по адресу 00477DEC (мог быть и по другому адресу ведь), там действительно заканчивалась процедура. Поставил я на этом месте BreakPoint (F2) и запустил (F9). Программа в этой точке остановилась, рядом с регистром EDI (правая часть окна CPU) показан пароль. В моем случае он был SSQrTGqzLBW6
     
  19. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Принцип в том, что если я ввожу пароль, то для его анализа используются винапи. Короче, сканим память на введённый пароль. Найдёт два адреса. Один из них нормально gdi юзаетсо, типа GetWindowText() и тп. Второй уже оказываетсо в памяти собственно кода, разбирающего эту строку. Далее ставим HB на этот адрес и смотрим откуда к нему вызов. Останов произойдет, далее недолгая трассировка и мы находим ту процедуру, которая строку разбирает. Вобщем просто очень.
    Не знаю, я это не читал.
     
  20. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Ясно описано, достаточно для понимания. Спасибо, CrystalIC!