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

 eXeL@B —› Протекторы —› Анализ ASProtect
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >>
Посл.ответ Сообщение

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

Создано: 28 марта 2008 15:30 · Поправил: vnekrilov
· Личное сообщение · #1

Я выложил свой первый туториал по анализу ASProtect v2.4 build 12.20 (Анализ подпрограммы эмуляции инструкций.rar http://dump.ru/files/o/o489862518/ ). В этом туториале я подробно описал процесс восстановления эмулированных инструкций типа:
Code:
  1. PUSH 0
  2. PUSH 0CC5850
  3. PUSH 0DB180C
  4. CALL 00CEB814


Полный цикл статей по распаковке ASProtect (Актуальная версия 25 декабря 2009):
ASProtect_Unpacking_Tutorial_2009-12-25.rar http://rapidshare.com/files/325720799/ASProtect_Unpacking_Tutorial_2009-12-25.rar 7,9 МБ
Программы, рассматриваемые в статьях:
ASProtect_Unpacking_Apps_2009-12-25.rar http://rapidshare.com/files/325718084/ASProtect_Unpacking_Apps_2009-12-25.rar 22,2 МБ

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

Скрипты:
Текущая рекомендуемая версия ODBGScript [1.78.3]:
ecf1_03.06.2010_CRACKLAB.rU.tgz - ODbgScript.dll

Последний текущий комплект скриптов [от 19 февраля 2011]:
69ca_18.02.2011_CRACKLAB.rU.tgz - Скрипты для распаковки Asprotect от 19 февраля 2011.rar

Статьи по частям:
Актуальная версия статей [Последняя - 25.11.2010]:
Выпуск 2
0754_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 1
2844_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 2
8e06_30.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 3
50a0_03.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 4
1b51_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5
0ff8_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5 (продолжение)
a182_06.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 6
82b8_15.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 7
74e4_16.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 8
b2e1_17.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 9
532c_18.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 10
76af_20.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 11
fe67_22.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 12
079c_20.01.2010_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 13
8415_03.06.2010_CRACKLAB.rU.tgz - Распаковка Asprotect - Часть 14
0a66_18.02.2011_CRACKLAB.rU.tgz - Распаковка Asprotect - Части 15 и 16

DriEm конвертировал мой цикл статей в формате PDF, который можно скачать по ссылке --> Link <--




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 ноября 2010 19:59
· Личное сообщение · #2

vnekrilov я уже посмотрел ничего там нового нет, ну константы все поменялись это естественно.

-----
Yann Tiersen best and do not fuck




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 20 ноября 2010 23:33
· Личное сообщение · #3

ASPack.v2.25.incl.patch-KITA

>>> DOWNLOAD <<<

OR

>>> DOWNLOAD <<<

P.S.: может пригодится кому




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 21 ноября 2010 05:26 · Поправил: [0utC4St]
· Личное сообщение · #4

При распаковке TranslateIt! 8.1 build 1 на шаге "Восстановление секции ресурсов .rsrc" Resource Binder v3.1 при создания бинарного дампа секции ресурсов выдаёт следующее:
Code:
  1. Секция ресурсов: 0x241000
  2. Запись ресурсов
  3.  [] - [&#600;] (размер 0x0, язык 0x0)
  4. ...
  5. ... (вырезано для сокращения лога)
  6. ...
  7. -> <b>Access violation at address 7C910A1B in module 'ntdll.dll'. Read of address 0020043E</b>


При этом dumped_control.exe становится размером 1.19 Мб против 4.06 Мб до создания бинарного дампа секции ресурсов. Дамп при этом не создаётся.

dumped_control.exe прилагаю вместе с логом работы скрипта.

Code:
  1. Script Log Window
  2. Address    Message
  3. 2450245     * SBOEP: 02450245
  4. 2450245    =======================================
  5. 2450245    Программа имеет следующие опции защиты:
  6. 2450245     + эмулированные APIs!
  7. 2450245     + поврежденную таблицу INIT!
  8. 2450245     + области памяти со Stolen Code!
  9. 2450245     + SBOEP!
  10. 2450245     + вызовы APIs Asprotect 2.xx SKE!
  11. 2450245     * SBOEP: 02450245
  12. 2450245    =======================================
  13. 2450245     * AsProtect.dll: 01350000
  14. 2450245     * Таблица INIT: 005F7D74
  15. 2450245     * Размер таблицы INIT: 00000C10
  16. 1390188     * Таблица INIT: 005F7D74
  17. 2460245     * SBOEP: 02460245
  18. 2460245     * Адрес AsProtect.dll: 01350000
  19. 2460245     * Адрес SBOEP программы: 02460245
  20. 2460245     * Адрес таблицы IAT: 00612258
  21. 2460245     * Адрес таблицы IAT для ImpREC: 00212258
  22. 2460245     * Размер таблицы IAT для ImpREC: 00000A68
  23. 2460245     * Адрес OEP для ImpREC: 001F8984
  24. 2460245     * Проверка целостности кода: 005C031E
  25. 2460245     * Число вызовов APIs Asprotect: 0000000F
  26. 2460245     * Таблица вызовов APIs Asprotect из таблицы IAT: 00612C60
  27. 2460245     * Адрес вызова API Asprotect из таблицы IAT: 00612C60
  28. 2460245     * API GetTrialDays: 005FCDD0
  29. 2460245     * Адрес вызова API Asprotect из таблицы IAT: 00612C64
  30. 2460245     * API GetKeyExpirationDate: 005FCDF0
  31. 2460245     * Адрес вызова API Asprotect из таблицы IAT: 00612C68
  32. 2460245     * API CheckKey: 005FCE20
  33. 2460245     * Адрес вызова API Asprotect из таблицы IAT: 00612C6C
  34. 2460245     * API GetRegistrationInformation: 005FCE30
  35. 1390088     * Адрес прыжка в области кода: 00409E00
  36. 1390088     * Дистанция прыжка: 02740000
  37. 1390088     * Адрес прыжка в области кода: 0040B398
  38. 1390088     * Дистанция прыжка: 02750000
  39. 1376E40     * Адрес массива данных: 014668E0
  40. 1376E40     * Область со Stolen Code: 02770000
  41. 1376E40     * Адрес массива данных: 0146697C
  42. 1376E40     * Область со Stolen Code: 02780000
  43. 1376E40     * Адрес массива данных: 01466A18
  44. 1376E40     * Область со Stolen Code: 02790000
  45. 1376E40     * Адрес массива данных: 01466AB4
  46. 1376E40     * Область со Stolen Code: 027A0000
  47. 1376E40     * Адрес массива данных: 01466B50
  48. 1376E40     * Область со Stolen Code: 027B0000
  49. 1376E40     * Адрес массива данных: 01466BEC
  50. 1376E40     * Область со Stolen Code: 027C0000
  51. 1376E40     * Адрес массива данных: 01466C88
  52. 1376E40     * Область со Stolen Code: 027D0000
  53. 13752E3     * Адрес прыжка в области кода: 0059730B
  54. 13752E3     * Дистанция прыжка: 02770000
  55. 13752E3     * Адрес прыжка в области кода: 00597311
  56. 13752E3     * Дистанция прыжка: 02770076
  57. 13752E3     * Адрес прыжка в области кода: 005976B1
  58. 13752E3     * Дистанция прыжка: 02780000
  59. 13752E3     * Адрес прыжка в области кода: 005976B7
  60. 13752E3     * Дистанция прыжка: 0278003F
  61. 13752E3     * Адрес прыжка в области кода: 0059770B
  62. 13752E3     * Дистанция прыжка: 02780137
  63. 13752E3     * Адрес прыжка в области кода: 0059770B
  64. 13752E3     * Дистанция прыжка: 02780137
  65. 13752E3     * Адрес прыжка в области кода: 0059770B
  66. 13752E3     * Дистанция прыжка: 02780137
  67. 13752E3     * Адрес прыжка в области кода: 0059848C
  68. 13752E3     * Дистанция прыжка: 02790000
  69. 13752E3     * Адрес прыжка в области кода: 00598492
  70. 13752E3     * Дистанция прыжка: 02790B3C
  71. 13752E3     * Адрес прыжка в области кода: 0059864F
  72. 13752E3     * Дистанция прыжка: 0279053E
  73. 13752E3     * Адрес прыжка в области кода: 0059865C
  74. 13752E3     * Дистанция прыжка: 02790A5C
  75. 13752E3     * Адрес прыжка в области кода: 005AE282
  76. 13752E3     * Дистанция прыжка: 027A0000
  77. 13752E3     * Адрес прыжка в области кода: 005AE288
  78. 13752E3     * Дистанция прыжка: 027A04BB
  79. 13752E3     * Адрес прыжка в области кода: 005AE413
  80. 13752E3     * Дистанция прыжка: 027A080C
  81. 13752E3     * Адрес прыжка в области кода: 005AE413
  82. 13752E3     * Дистанция прыжка: 027A080C
  83. 13752E3     * Адрес прыжка в области кода: 005AE437
  84. 13752E3     * Дистанция прыжка: 027A027A
  85. 13752E3     * Адрес прыжка в области кода: 005EFA9B
  86. 13752E3     * Дистанция прыжка: 027B0000
  87. 13752E3     * Адрес прыжка в области кода: 005EFAA1
  88. 13752E3     * Дистанция прыжка: 027B03BC
  89. 13752E3     * Адрес прыжка в области кода: 005EFF8C
  90. 13752E3     * Дистанция прыжка: 027B08D1
  91. 13752E3     * Адрес прыжка в области кода: 005F010D
  92. 13752E3     * Дистанция прыжка: 027B0803
  93. 13752E3     * Адрес прыжка в области кода: 005F013D
  94. 13752E3     * Дистанция прыжка: 027B01E2
  95. 13752E3     * Адрес прыжка в области кода: 005F66F3
  96. 13752E3     * Дистанция прыжка: 027C0000
  97. 13752E3     * Адрес прыжка в области кода: 005F66F9
  98. 13752E3     * Дистанция прыжка: 027C0338
  99. 13752E3     * Адрес прыжка в области кода: 005F67F5
  100. 13752E3     * Дистанция прыжка: 027C0171
  101. 13752E3     * Адрес прыжка в области кода: 005F67F5
  102. 13752E3     * Дистанция прыжка: 027C0171
  103. 13752E3     * Адрес прыжка в области кода: 005F6814
  104. 13752E3     * Дистанция прыжка: 027C01A2
  105. 13752E3     * Адрес прыжка в области кода: 005FB086
  106. 13752E3     * Дистанция прыжка: 027D0000
  107. 13752E3     * Адрес прыжка в области кода: 005FB08C
  108. 13752E3     * Дистанция прыжка: 027D0055
  109. 13752E3     * Адрес прыжка в области кода: 00402C8C
  110. 13752E3     * Дистанция прыжка: 02460ACF
  111. 13752E3     * Адрес прыжка в области кода: 00402CE0
  112. 13752E3     * Дистанция прыжка: 02462B3E
  113. 13752E3     * Адрес прыжка в области кода: 00402CC9
  114. 13752E3     * Дистанция прыжка: 02461792
  115. 13752E3     * Адрес прыжка в области кода: 00404DC8
  116. 13752E3     * Дистанция прыжка: 02462B48
  117. 13752E3     * Адрес прыжка в области кода: 00404E11
  118. 13752E3     * Дистанция прыжка: 02461A19
  119. 13752E3     * Адрес прыжка в области кода: 00407894
  120. 13752E3     * Дистанция прыжка: 0246235D
  121. 13752E3     * Адрес прыжка в области кода: 00407B98
  122. 13752E3     * Дистанция прыжка: 024606E4
  123. 13752E3     * Адрес прыжка в области кода: 0040AEE4
  124. 13752E3     * Дистанция прыжка: 02460586
  125. 13752E3     * Адрес прыжка в области кода: 0046CF28
  126. 13752E3     * Дистанция прыжка: 02461214
  127. 13752E3     * Адрес прыжка в области кода: 0046DFDC
  128. 13752E3     * Дистанция прыжка: 0246286C
  129. 13752E3     * Адрес прыжка в области кода: 005F8984
  130. 13752E3     * Дистанция прыжка: 02460245
  131. 1390560     * Адрес массива данных для SBOEP: 013D175C
  132. 2460245     * SBOEP: 02460245
  133. 2460245     * OEP (SBOEP): 02460245
  134. 2460245     * RVA OEP для ImpRec: 001F8984



Вопрос: что не так? куда копать?

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 21 ноября 2010 05:52
· Личное сообщение · #5

[0utC4St]
По-моему ссыль на него давали несколькими постами ранее

[0utC4St] пишет:
А вот решение к нему в розыске.

плохо ищете значит, оно уже как полгода валяется на каждом углу.



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

Создано: 21 ноября 2010 15:39
· Личное сообщение · #6

PE_Kill пишет:
я уже посмотрел ничего там нового нет, ну константы все поменялись это естественно.


Абсолютно верно!!! Я думал, что разработчики в новых версиях протектора придумали что-то новенькое, но действительно ничего нового нет, и они топчутся на месте.




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 21 ноября 2010 15:46 · Поправил: [0utC4St]
· Личное сообщение · #7

vnekrilov, что скажите касаемо этого?
(мой пост выше)

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




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

Создано: 21 ноября 2010 15:52
· Личное сообщение · #8

[0utC4St]

Скачал программу, посмотрю, почему имеется ошибка, и напишу ответ.



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

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

[0utC4St] пишет:
что скажите касаемо этого?


Действительно, Resource Binder v3.1 дает сбой на этой программе. Почему - это, видимо, надо задать вопрос SetiSoft, разработчику этой утилиты. В то же время, более старая версия этой утилиты - Resource Binder v2.6, не страдает этой болезнью, и нормально создает бинарный дамп секции ресурсов. На всякий случай, прикладываю в аттаче эту версию Resource Binder.

ae18_21.11.2010_CRACKLAB.rU.tgz - Resource Binder v2.6.rar

| Сообщение посчитали полезным: [0utC4St]


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 21 ноября 2010 23:39
· Личное сообщение · #10

vnekrilov пишет:
В то же время, более старая версия этой утилиты


более старая является лишь гуей для консольной утили другого автора




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 22 ноября 2010 06:17 · Поправил: [0utC4St]
· Личное сообщение · #11

vnekrilov, Gideon Vi, спасибо просветили.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




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

Создано: 25 ноября 2010 09:53
· Личное сообщение · #12

Недавно мне попалась программа, в которой скрип "Восстановление таблицы INIT.osc" дал сбой. Причина этого сбоя была обусловлена тем, что мной, под запись таблиц А и В, и запись раскриптованных адресов таблицы INIT был выделен небольшой объем памяти в 4000h байтов. Из этого объема памяти 50% было выделено под запись хэшей таблиц А и В, и 50% памяти было выделено по запись раскриптованных адресов таблицы INIT. В этой же программе запись хэшей таблиц А и В заняла объем около 3000h байтов, что и привело к сбою работы скрипта. Поэтому я доработал этот скрипт, и увеличил объем выделенной памяти в 10000h байтов. После чего, скрипт нормально отработал, и корректно восстановил таблицу INIT в этой программе. Поэтому замените скрипт "Восстановление таблицы INIT.osc" от 03 июня 2010 года скриптом от 24 ноября 2010 года, который приложен в аттаче к этому сообщению. Благодарю Antoskast3 за присланную им программу, которая позволила найти ошибку в этом скрипте.

537a_24.11.2010_CRACKLAB.rU.tgz - Восстановление таблицы INIT.osc




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 25 ноября 2010 14:55
· Личное сообщение · #13

Не знаю как у тебя скрипты вкупе работают, но под инит таблицу можно и не выделять память, все инициализаторы писать сразу в таблицу, пропуская по 4 байта (для финализаторов) и потом писать финализаторы в те самые пропущеные байты. Ну а число элементов таблицы это наибольшее числу между инициализаторами и финализаторами.

-----
Yann Tiersen best and do not fuck




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

Создано: 25 ноября 2010 17:48 · Поправил: vnekrilov
· Личное сообщение · #14

PE_Kill пишет:
Не знаю как у тебя скрипты вкупе работают, но под инит таблицу можно и не выделять память


Можно было бы, конечно, все скрипты объединить в один скрипт, как это слелал VolX, но когда возникают какие-то проблемы с работой того или иного скрипта, искать это место сбоя - весьма сложно. Скрипт "Восстановление таблицы INIT.osc" восстанавливает таблицу INIT, и делает дамп этой таблицы с именем "table_INIT.bin". Этот дамп используется при работе скрипта "Восстановление таблицы IAT и вызовов APIs.osc", который вставляется на место нахождения таблицы INIT в памяти распакованной программы. Затем скрипт "Восстановление таблицы IAT и вызовов APIs.osc" выполняет дампирование памяти распакованной программы, и мы получаем дамп, в котором отрезаем лишние секции и прикручиваем секцию дампа со спертыми байтами.
Я получаю достаточно много писем с разными вопросами, в том числе и с сообщениями о сбоях скриптов. Наличие нескольких отдельных скриптов позволяет достаточно быстро вносить нужные изменения и доработки, что облегчает мою работу.



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

Создано: 25 ноября 2010 19:12
· Личное сообщение · #15

Сегодня я выкладываю 16 часть туториала по распаковке Asprotect, в котором приведено решение по поиску проверок целостности кода (CRC) второго типа. Такую проверку, я правда встречал только в программах Asprotect, в которых разработчики этого протектора используют в качестве защиты от восстановления подпрограмм с эмулированными инструкциями. Возможно, что такой метод защиты может встретиться и в других программах, где авторы этих программ применяют в качестве одной из опций эмуляцию инструкций в подпрограммах. Как всегда, буду благодарен за отзывы, замечания и критику.

e713_25.11.2010_CRACKLAB.rU.tgz - Устранение проверок CRC второго типа.rar

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

Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 25 ноября 2010 19:37
· Личное сообщение · #16

vnekrilov пишет:
Сегодня я выкладываю 16 часть туториала по распаковке Asprotect

Прошу прощения за ОФФ, но где 15-я часть ?




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

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

vnekrilov, может быть зальешь актуальные версии скриптов одним архивом?

Tyra пишет:
Прошу прощения за ОФФ, но где 15-я часть ?


rghost.net/3376853




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 25 ноября 2010 20:58 · Поправил: PE_Kill
· Личное сообщение · #18

vnekrilov моё резюме, если конечно интересно. Я то же занимался вопросом этих странных проверок и пришел к выводу, что это макросы исключительно самого ASProtect.

1) В ASProtect SDK нет ни одного макроса такого маленького размера, значит пользователи банально не знают как вставить такой макрос в код.

2) ASProtect не навешивает эту сложную виртуальную машину на маркеры UserPolyBuffer, но в нем самом все маркеры UserPolyBuffer ведут в VM, а код вырезанных процедур забит мусором. Именно с этим мусором и сверяются новые макросы при проверке. Т.е. такой макрос невозможен, если UserPolyBuffer не уходит в VM, а для обычных пользователей он туда не уходит.

3) Новые макросы портят именно тот регистр, который используется ниже, причем не просто используется, а является базой для каких либо структур. Анализатор в ASProtect очень слабый, я сильно сомневаюсь, что он может так точно предсказывать базовые регистры процедуры. Причем в некоторых процедурах этот регистр используется исключительно в вызываемых процедурах.
-----
По мне так это уже крик отчаяния, использовать для своего протектора кастомную версию протектора и не давать ее лицензионным пользователям, которые должны и дальше защищать свои творения старым гавном, которое еще 5 лет назад полностью снималось на автомате.

-----
Yann Tiersen best and do not fuck




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

Создано: 25 ноября 2010 22:07
· Личное сообщение · #19

Gideon Vi пишет:
может быть зальешь актуальные версии скриптов одним архивом?


Да, наверное так и сделаю

PE_Kill пишет:
моё резюме, если конечно интересно.


Конечно, твое резюме интересно. Я полностью согласен с твоим выводом о том, что эти макросы используются исключительно для Asprotect. Кстати, в последнее время пользователи начали потихоньку использовать макросы для получения подпрограмм с эмулированными инструкциями. Но пока этот чрезвычайно сильный метод защиты применяется довольно редко.

PE_Kill пишет:
По мне так это уже крик отчаяния, использовать для своего протектора кастомную версию протектора и не давать ее лицензионным пользователям, которые должны и дальше защищать свои творения старым гавном, которое еще 5 лет назад полностью снималось на автомате.

+ 1




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 26 ноября 2010 01:40
· Личное сообщение · #20

vnekrilov пишет:
Такую проверку, я правда встречал только в программах Asprotect

Встречал я такую проверку в какойто проге, но точно не ASProtect,там проверка велась по такомуже принцепу.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 26 ноября 2010 01:45
· Личное сообщение · #21

Имхо ты путаешь. Кроме этого макроса в аспре еще 3 типа макросов, которые портят регистры или стек, они очень похожи на первый взгляд.

-----
Yann Tiersen best and do not fuck





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 26 ноября 2010 02:07 · Поправил: ClockMan
· Личное сообщение · #22

PE_Kill
Я помню точно что после восстановления был адрес call[jmp GetModuleHandleA], а должен указатель на виртуальную часть, так там велась проверка по такомуже прицепу что и писал vnekrilov

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 26 ноября 2010 10:48
· Личное сообщение · #23

Ну как я и говорил ты путаешь. Это макрос EnvelopeCheck. Один из его вариантов проверяет чтобы в коде были украдены вызовы api (я называю эту вариацию ApiChecker). Когда аспр протектит файл он заменяет

jmp dword ptr [iat] (FF25 XXXXXX)
на
call AsprDll_GetApi (E8 XXXXXX)

Этот макрос как раз и проверяет восстановлены переходники или нет, если вместо E8 стоит FF25/FF15 то портятся регистры или стек. Это стандартный макрос SDK, ему уже лет 5-6.

-----
Yann Tiersen best and do not fuck




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

Создано: 26 ноября 2010 11:17 · Поправил: vnekrilov
· Личное сообщение · #24

PE_Kill пишет:
если вместо E8 стоит FF25/FF15 то портятся регистры или стек


Кстати, это стандартная проверка CRC, которая прекрасно снимается скриптом. Для сведения, размер кода, выполняющий эту проверку, составляет 110h байтов.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 26 ноября 2010 11:31
· Личное сообщение · #25

Да я знаю, посмотри папку SDK в ASProtect там эти маркеры есть, сколько они там размером такой и получится в защищаемой программе.

vnekrilov пишет:
Кстати, это стандартная проверка CRC

Это не проверка CRC а проверка Envelope. Отличие в том, что в первом случае проверяется контрольная сумма кода, а во втором проверяется навешан ASProtect или его сняли.

Вот оригинал маркера:
Code:
  1. (*
  2.  Delphi include file
  3.  ASProtect Envelope checking routine
  4. *)
  5.  
  6. asm
  7.  
  8.   DB $EB,04, $EB,05, $97,01, $E9,$05,01, 00, 00, 00, 00, 00, 00, 00 // 10
  9.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 20
  10.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 30
  11.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 40
  12.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 50
  13.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 60
  14.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 70
  15.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 80
  16.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 90
  17.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // A0
  18.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // B0
  19.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // C0
  20.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // D0
  21.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // E0
  22.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // F0
  23.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 100
  24.   DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 // 110
  25.  
  26. end;


-----
Yann Tiersen best and do not fuck





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

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

PE_Kill пишет:
Этот макрос как раз и проверяет восстановлены переходники или нет, если вместо E8 стоит FF25/FF15 то портятся регистры или стек. Это стандартный макрос SDK, ему уже лет 5-6.

Ну тогда понятно спс за подсказку.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

Создано: 26 ноября 2010 13:23
· Личное сообщение · #27

PE_Kill пишет:
Это не проверка CRC а проверка Envelope.


Спасибо за уточнение.




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 11 декабря 2010 03:34 · Поправил: [0utC4St]
· Личное сообщение · #28

После выполнения скрипта "Перенаправление прыжков из кода программы в новую секцию файла" возникает необходимость выделить в отладчике область кода программы чтобы сохранить сделанные изменения.
Как быть когда изменения были внесены в несколько секций программы?
Уточню: как оптимально выйти из этого положения?
з.ы. На деле, как правило, основная часть изменений приходится на одну секцию. Из Положения выходил следующим образом: выделял код той секции в которой было больше перенаправлений и сохранял изменения. Затем отдельно сохранял для другой, бинарно сравнивал 2 дампа и вносил изменений в хекс-редакторе в тот дамп, в который меньше писать.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 11 декабря 2010 03:51
· Личное сообщение · #29

[0utC4St] пишет:
бинарно сравнивал 2 дампа и вносил изменений в хекс-редакторе в тот дамп, в который меньше писать

мазохист второй раза скрипт запусти, уже на измененном файле

| Сообщение посчитали полезным: [0utC4St]

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

Создано: 11 декабря 2010 07:04
· Личное сообщение · #30

SReg пишет:
второй раза скрипт запусти, уже на измененном файле

+1




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 11 декабря 2010 16:53 · Поправил: [0utC4St]
· Личное сообщение · #31

vnekrilov, прочтя "Распаковка Asprotect (часть 15, выпуск 2)" решил покрутить Resource Builder скаченный с офсайта. Поначалу не глянув что версия отличается от версии описанной в статье.
Увидел это когда плаг ODbgScript (1.78.3.0) приказал долго жить,

попутно накрыв мохнатым сейфом и саму ольку.

Кто сталкивался с этим и кто что имеет сказать по этому поводу?

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=



<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >>
 eXeL@B —› Протекторы —› Анализ ASProtect
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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