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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


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

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

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Крэки, обсуждения —› Реверс AsProtect
Посл.ответ Сообщение

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

Создано: 15 ноября 2018 08:34 New!
Цитата · Личное сообщение · #1

Доброго времени суток! Решил разобраться с AsProtectом. Начал с версии 1.33. Она первая из ранних версий которая запустилась на моей тачке. Как всегда есть вопросы.
понял что аспр создает кучу секций в которые ворует начала Api функций или всех их если апишки небольшие. Нашел секцию aspr.dll размером 33000. Разобрался что и как в ней. Остался один вопрос. Как восстановить call переходники в секцию аспра. Вроде накатал простенький скрипт для x64dbg но восстанавливает он не все и не всегда. Как делал:
Сохраняем регистры и флаги
Ставим выполнение на переходник и переходим в него
Ставим бряк на секцию кода программы.
Отпускаем прогу и еще раз переходим в уже новый, перезаписанный call.
проходим по F7 чуть дальше и оказываемся в одной из 35 секций.
Выделяем определенное количество байт и ищем их.
Находим откуда воровано начала и чиним call
Восстанавливаем регистры.
Ставим выполнение на точку входа в программу
Повторяем со всеми.
Восстановил бы руками но переходников там 100+ штук. Поэтому пишу скрипт. Пишу чисто для саморазвития. Но мозгов не хватает
Скрипт переделаю попозже под другой способ
Сам скрипт
Code:
  1. mov VA,VirtualAlloc+6
  2. log {VA}
  3. bp VA
  4. run
  5. rtr
  6. bpc VA
  7. mov VARET,eip
  8. bp eip
  9.  
  10. Oepfinder:
  11. log {eax}:{edx}
  12. run
  13. mov eip1,byte:[eip]
  14. log {eip1}
  15. cmp eip1,cc
  16. log {eip1}
  17. je Start2
  18. jmp Oepfinder
  19.  
  20. Start2:
  21. log {eax}:{edx}
  22. run
  23. mov eip1,byte:[eip]
  24. log {eip1}
  25. cmp eip1,cc
  26. log {eip1}
  27. je Start3
  28. jmp Start2
  29. ret
  30.  
  31. Start3:
  32. bpm 401000,0,a
  33. bpc VARET
  34. run
  35. jmp INIT
  36.  
  37. //tempeip
  38. //tempeip1
  39. //tempeip2
  40. //temp
  41. //mov eip, EIPORIG
  42. //mov eax,tmpeax
  43. //mov ebx,tmpebx
  44. //mov ecx,tmpecx
  45. //mov edx,tmpedx
  46. //mov ebp,tmpebp
  47. //mov esp,tmpesp
  48. //mov esi,tmpesi
  49. //mov edi,tmpedi
  50. //mov eflags,tmpeflags
  51. //mov EIPORIG,eip
  52. INIT:
  53. mov EIPORIG,eip
  54. mov tmpeax,eax
  55. mov tmpebx,ebx
  56. mov tmpecx,ecx
  57. mov tmpedx,edx
  58. mov tmpebp,ebp
  59. mov tmpesp,esp
  60. mov tmpesi,esi
  61. mov tmpedi,edi
  62. mov tmpeflags,eflags
  63.  
  64.  
  65. START:
  66. mov eip,EIPORIG
  67. find 401000,e8??????03,4a000
  68. log {$result}
  69. mov ADDRCALLMOD,$result
  70. mov eip,ADDRCALLMOD
  71. mov tmpeip1,eip
  72. CALLMOD:
  73. sti
  74. log {word:[eip]}
  75. cmp word:[eip],D7FF
  76. je bpmem
  77. cmp word:[eip],D3FF
  78. je bpmem
  79. cmp word:[eip],D0FF
  80. je bpmem
  81. jmp CALLMOD
  82. bpmem:
  83. bpm 401000,x
  84. run
  85. sti
  86. jmp FindJMPandPUSHandCall
  87.  
  88. FindJMPandPUSHandCall:
  89. find eip,e9????????
  90. log {$result}
  91. cmp $result,0
  92. jne FindJMP
  93. jmp PUSH
  94.  
  95. PUSH:
  96. find eip,68????????
  97. log {$result}
  98. cmp $result,0
  99. jne FindPUSH
  100. jmp CALL1
  101.  
  102. CALL1:
  103. find eip,ff93??????
  104. log {$result}
  105. cmp $result,0
  106. jne FindCall
  107. jmp CALL2
  108.  
  109. CALL2:
  110. find eip,ffd0??????
  111. log {$result}
  112. cmp $result,0
  113. jne FindCall
  114. jmp CALL3
  115.  
  116. CALL3:
  117. find eip,ffd3??????
  118. log {$result}
  119. cmp $result,0
  120. jne FindCall
  121. jmp error
  122.  
  123. ret
  124.  
  125.  
  126.  
  127. FindJMP:
  128.  
  129. mov JMPSEC,$result
  130. bp JMPSEC
  131. run
  132. bpc JMPSEC
  133. sti
  134.  
  135. cmp word:[eip],ff8b
  136. log {word:[eip]}
  137. je METHOD1
  138.  
  139. cmp byte:[eip],6a
  140. log {byte:[eip]}
  141. je START
  142.  
  143. cmp byte:[eip],55
  144. log {byte:[eip]}
  145. je METHOD3
  146.  
  147. ret
  148.  
  149. FindPUSH:
  150.  
  151. mov PUSHSEC,$result
  152. bp PUSHSEC
  153. run
  154. bpc PUSHSEC
  155.  
  156. STEP:
  157. sti
  158. cmp byte:[eip],c3
  159. jne STEP
  160.  
  161. sti
  162. cmp word:[eip],ff8b
  163. log {word:[eip]}
  164. je METHOD1
  165.  
  166. cmp byte:[eip],6a
  167. log {byte:[eip]}
  168. je START
  169. cmp byte:[eip],55
  170. log {byte:[eip]}
  171. je METHOD3
  172.  
  173. FindCall:
  174. find eip,e9????????
  175. log {$result}
  176. cmp $result,0
  177. jne FindJMP
  178. find eip,68????????
  179. log {$result}
  180. cmp $result,0
  181. jne FindPUSH
  182. ret
  183.  
  184.  
  185. ret
  186.  
  187. METHOD1:
  188. find eip,68????????
  189. add $result,1
  190. log {$result}
  191. mov PushAPI1,[$result]
  192. mov PushAPITMP,[$result]
  193. mov EIPMETHOD1,eip
  194. mov eip,PushAPI1
  195. GetOrigEPAPI1:
  196. sub eip,2
  197. cmp word:[eip],ff8b
  198. jne GetOrigEPAPI1
  199. mov OrigEPAPI,eip
  200. mov eip,EIPMETHOD1
  201. jmp CALLREBUILD
  202.  
  203. METHOD3:
  204. find eip,68????????
  205. add $result,1
  206. log {$result}
  207. mov PushAPI1,[$result]
  208. log {PushAPI1}
  209. mov EIPMETHOD1,eip
  210. mov eip,PushAPI1
  211. GetOrigEPAPI3:
  212. add eip,1
  213. cmp byte:[eip],e8
  214. jne GetOrigEPAPI3
  215. sti
  216. sti
  217. mov OrigEPAPI,eip
  218. mov eip,EIPMETHOD1
  219. jmp CALLREBUILD
  220.  
  221.  
  222.  
  223.  
  224.  
  225. CALLREBUILD:
  226. mov eip,tmpeip1
  227. asm eip, "call 0x{OrigEPAPI}"
  228. mov ebp,tmpebp
  229. mov esp,tmpesp
  230. mov eflags,tmpeflags
  231. jmp START
  232. ret
  233.  
  234. error:
  235. ret

Вначале скрипта проход на oep а дальше восстановление переходников. Скриптопис из меня херовый так что не бейте сильно) Только учусь. Тем более скриптовая платформа скудна на x64dbg. Пользуюсь им. Задача не просто распаковать а понять как и что делается в проте. Заранее спасибо.


Ранг: 581.6 (!)
Статус: Модератор
Research & Development

Создано: 15 ноября 2018 08:55 New!
Цитата · Личное сообщение · #2

RoKZaR пишет:
Задача не просто распаковать а понять как и что делается в проте

Материалы Валентина Некрылова читал?
Скрипты Валентина смотрел?
Есть --> сборная тема про аспр <--, где vnekrilov очень подробно расписал внутреннюю работу аспра.


RoKZaR пишет:
Она первая из ранних версий которая запустилась на моей тачке

Виртуалка с Windows XP и будет тебе счастье )


Хороший способ исследовать:
- Выбираешь несколько близких версий протектора (в твоём случае 1.3x)
- Собираешь из примеров бинарь с маркерами
- Защищаешь свой бинарь с разными опциями защиты разными версиями протектора
- Распаковываешь полученные сэмплы существующими распаковщиками (например, DecomAS)
- Извлекаешь ASProtect.dll
- Исследуешь как загрузчик аспра, так и его длл; смотришь оригинальный файл и сравниваешь; смотришь распакованные сэмплы

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


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

Создано: 15 ноября 2018 08:59 New!
Цитата · Личное сообщение · #3

Когда то читал, а сейчас найти не могу. На тутсе в анпакинг туториалс не смог найти. Да и именно по версии 1.33 не смог найти почти никакой инфы.
Jupiter пишет:
Есть сборная тема про аспр

Если не сложно скиньте пожалуйста.


Ранг: 581.6 (!)
Статус: Модератор
Research & Development

Создано: 15 ноября 2018 09:05 New!
Цитата · Личное сообщение · #4

RoKZaR пишет:
Если не сложно скиньте пожалуйста.

Выделил ссылку в посте:
--> Анализ ASProtect <--

Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 10:26 · Поправил: dosprog New!
Цитата · Личное сообщение · #5

Тему решил не создавать -
задам вопрос в уже существующей. С самим Asprotect'ом напрямую не связанный.

После автораспаковки Decomas'ом файл выходит нерабочим.
При попытке запуска его система выводит месиджбокс с сообщением
"Приложение не было запущено поскольку оно некорректно настроено. Повторная установка сможет решить эту проблему".
Хьюшечный PEVerify не находит ошибок в структуре распакованного PE файла.
Программа до распаковки была вполне портабельная, никаких MSVC Redistributable не требовала.
Собственно вопрос - в каких ещё случаях система выдаёт такое сообщение о "некорректной настроенности"?



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

Создано: 17 мая 2019 10:47 New!
Цитата · Личное сообщение · #6

dosprog

Покажите файл.


Ранг: 472.2 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 17 мая 2019 10:57 · Поправил: plutos New!
Цитата · Личное сообщение · #7

dosprog пишет:
в каких ещё случаях система выдаёт такое сообщение о "некорректной настроенности"?


ты будешь смеяться, но у меня была подобная ситуация, когда VMware пожирала всю память и ее просто не хватало. Закрыл пару virtual machines и все с программой стало ОК и куда делась "некорректность настроенности", а до того, хоть головой об стенку.
Но это, так, мысли вслух, на всякий пожарный.

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



Ранг: 649.2 (!)
Статус: Участник
CyberMonk

Создано: 17 мая 2019 16:25 · Поправил: mak New!
Цитата · Личное сообщение · #8

dosprog пишет:
Тему решил не создавать -
задам вопрос в уже существующей. С самим Asprotect'ом напрямую не связанный.

После автораспаковки Decomas'ом файл выходит нерабочим.
При попытке запуска его система выводит месиджбокс с сообщением
"Приложение не было запущено поскольку оно некорректно настроено. Повторная установка сможет решить эту проблему".
Хьюшечный PEVerify не находит ошибок в структуре распакованного PE файла.
Программа до распаковки была вполне портабельная, никаких MSVC Redistributable не требовала.
Собственно вопрос - в каких ещё случаях система выдаёт такое сообщение о "некорректной настроенности"?


Опции распаковки(чистка и оптимизация пе), система распаковки(на хп и 7 обычно ок), криптоучастки, кастом проверки, отсуствтие длл переходника для эмуляции лицензии, отрезана часть кастом секций, битые ресурсы.

Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 19:04 · Поправил: dosprog New!
Цитата · Личное сообщение · #9

difexacaw пишет:
Покажите файл.

Вот файлы: --> Link <-- (Pwd=exelab).

mak пишет:
Опции распаковки


Да перепробовал все варианты. Под WinXP.

Заметил, что в "директории" описан TLS длиной 18h байтов,
в таблице же объектов секция .tls имеет нулевую физическую длину.
Перекрывается следующей секцией.


Ранг: 120.4 (ветеран)
Статус: Участник

Создано: 17 мая 2019 19:13 New!
Цитата · Личное сообщение · #10

dosprog

Манифест поврежден. Или замени или удали.

Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 19:22 New!
Цитата · Личное сообщение · #11

Идентичен тому, что в исходном файле.

Ранг: 120.4 (ветеран)
Статус: Участник

Создано: 17 мая 2019 19:33 · Поправил: Alchemistry New!
Цитата · Личное сообщение · #12

dosprog пишет:
Идентичен тому, что в исходном файле.


Нет.

Начато создание контекста активации.
Входной параметр:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = ru-RU;ru;en-US;en
ManifestPath = C:\ew\PIX_u.EXE
AssemblyDirectory = C:\ew\
Application Config File =
-----------------
ИНФОРМАЦИЯ: анализируется файл манифеста C:\ew\PIX_u.EXE.
ИНФОРМАЦИЯ: удостоверение определения манифеста: Microsoft.Windows.Shell.shell32,processorArchitecture="*",type="win32",version="5.1.0.0"
ИНФОРМАЦИЯ: ссылка: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="*",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
Ошибка: строка 1: синтаксическая ошибка XML.
ИНФОРМАЦИЯ: не удалось создать контекст активации.
Создание контекста активации завершено.

=================
Начато создание контекста активации.
Входной параметр:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = ru-RU;ru;en-US;en
ManifestPath = C:\ew\PIX.EXE
AssemblyDirectory = C:\ew\
Application Config File =
-----------------
ИНФОРМАЦИЯ: анализируется файл манифеста C:\ew\PIX.EXE.
ИНФОРМАЦИЯ: удостоверение определения манифеста: Microsoft.Windows.Shell.shell32,processorArchitecture="*",type="win32",version="5.1.0.0"
ИНФОРМАЦИЯ: ссылка: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="*",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
ИНФОРМАЦИЯ: выполняется разрешение ссылки Microsoft.Windows.Common-Controls,language="*",processorArchitecture="*",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0".
ИНФОРМАЦИЯ: выполняется разрешение ссылки для ProcessorArchitecture WOW64.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru-RU.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_ru-RU_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru-RU.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_ru_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры en-US.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_en-US_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры en-US.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры en.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_en_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры en.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры Neutral.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0__6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры Neutral.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для ProcessorArchitecture x86.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru-RU.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_ru-RU_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru-RU.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_ru_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры en-US.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_en-US_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры en-US.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры en.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls\6.0.0.0_en_6595b64144ccf1df\Microsoft.Windows.Common-Controls.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры en.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры Neutral.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: политика автоматического обслуживания перенаправила версию сборки.
ИНФОРМАЦИЯ: удостоверение сборки после применения политики: Microsoft.Windows.Common-Controls,processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.7601.17514"
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\WinSxS\manifests\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2.manifest.
ИНФОРМАЦИЯ: манифест обнаружен на C:\Windows\WinSxS\manifests\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2.manifest.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки Microsoft.Windows.Common-Controls.mui,language="*",processorArchitecture="x86",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.7601.17514".
ИНФОРМАЦИЯ: выполняется разрешение ссылки для ProcessorArchitecture WOW64.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru-RU.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls.mui\6.0.7601.17514_ru-RU_6595b64144ccf1df\Microsoft.Windows.Common-Controls.mui.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru-RU.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры ru.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление политики связывания.
ИНФОРМАЦИЯ: начинается проверка сборки.
ИНФОРМАЦИЯ: не удалось найти сборку в WinSxS.
ИНФОРМАЦИЯ: попытка проверки манифеста на C:\Windows\assembly\GAC_32\Microsoft.Windows.Common-Controls.mui\6.0.7601.17514_ru_6595b64144ccf1df\Microsoft.Windows.Common-Controls.mui.DLL.
ИНФОРМАЦИЯ: не удалось найти манифест для культуры ru.
ИНФОРМАЦИЯ: проверка сборки завершена.
ИНФОРМАЦИЯ: выполняется разрешение ссылки для культуры en-US.
ИНФОРМАЦИЯ: выполняется применение политики связывания.
ИНФОРМАЦИЯ: не удалось найти политику издателя.
ИНФОРМАЦИЯ: не удалось найти перенаправление пол

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


Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 19:43 New!
Цитата · Личное сообщение · #13

Alchemistry пишет:
Нет.


К сожалению, да - сравнивал двоично.


Ранг: 120.4 (ветеран)
Статус: Участник

Создано: 17 мая 2019 20:16 New!
Цитата · Личное сообщение · #14

Sxstrace говорит что в памяти это не так. Ошибки SideBySide профилируются sxstrace (https://blogs.msdn.microsoft.com/junfeng/2006/04/14/diagnosing-sidebyside-failures/). Если хочешь можешь конечно копаться в этом, выяснить что конкретно и почему и как это работает вообще с аспром наверху, кто виноват камас, аспр итд, лично меня эта задача не привлекает. Это для любителей шашечек, а мы едем или надо шашечки? Ща подойдет клекр с моторами и визорами расскажет про шашечки.

Берешь нормальный манифест перешиваешь его вместо этого гавна и получаешь рабочую программу с поддержкой тем.

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



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

Создано: 17 мая 2019 20:18 · Поправил: difexacaw New!
Цитата · Личное сообщение · #15

dosprog

CreateProcess() -> CSRSS -> STATUS_SXS_CANT_GEN_ACTCTX -> ERROR_SXS_CANT_GEN_ACTCTX. Да, косяк с манифестом.

Это может быть из за слоя протектора, тк csr читает из памяти процесса(те есчо до запуска потоков).

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

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


Ранг: 120.4 (ветеран)
Статус: Участник

Создано: 17 мая 2019 20:25 New!
Цитата · Личное сообщение · #16

difexacaw
Во я ж говорю, ты тут как тут. Боже, какая ты няшка)


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

Создано: 17 мая 2019 20:29 New!
Цитата · Личное сообщение · #17

Alchemistry

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

Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 21:04 New!
Цитата · Личное сообщение · #18

Что-то ерунда получается:

=================
Начато создание контекста активации.
Входной параметр:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = ru-RU;ru;en-US;en
ManifestPath = D:\2\PIX_u.EXE
AssemblyDirectory = D:\2\
Application Config File =
-----------------
ИНФОРМАЦИЯ: анализируется файл манифеста D:\2\PIX_u.EXE.
ИНФОРМАЦИЯ: удостоверение определения манифеста: (null)
ИНФОРМАЦИЯ: ссылка: Microsoft.Windows.Common-Controls,language="*",processorArchitecture="*",publicKeyToken="6595b64144ccf1df",type="win32",version="6.0.0.0"
Ошибка: строка 21: синтаксическая ошибка XML.
ИНФОРМАЦИЯ: не удалось создать контекст активации.
Создание контекста активации завершено.
---------------------------------------------------------------


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

Создано: 17 мая 2019 21:10 New!
Цитата · Личное сообщение · #19

dosprog

Два модуля(я смотрел только не рабочий) это оригинальный и с протектором ?

Если это так, то всё ясно. Разраб протектора не предвидел эту ситуацию, впрочем он врядле знал, это системный механизм. Память читается серверным процессом до её распаковки.

Ранг: 407.8 (мудрец)
Статус: Участник

Создано: 17 мая 2019 23:18 New!
Цитата · Личное сообщение · #20

Alchemistry пишет:
Берешь нормальный манифест перешиваешь его вместо этого гавна и получаешь рабочую программу с поддержкой тем.

Да, всё получилось, спасибо.

Таки дело было в этом самом манифесте.


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

Создано: 11 июня 2019 21:56 New!
Цитата · Личное сообщение · #21

Всем привет помогите распаковать пжл https://cloud.mail.ru/public/31Cp/LKYfkmHqJ

Скрин с pied https://cloud.mail.ru/public/K3zv/roLFtMv3b


Ранг: 581.6 (!)
Статус: Модератор
Research & Development

Создано: 11 июня 2019 22:34 New!
Цитата · Личное сообщение · #22

sss123
В запросы.


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

Создано: 13 июня 2019 00:51 · Поправил: difexacaw New!
Цитата · Личное сообщение · #23

sss123

Чем есчо помочь, дампи.



{ Атач доступен только для участников форума } - apk.7z


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

Создано: 8 июля 2019 18:16 · Поправил: Dr0p New!
Цитата · Личное сообщение · #24

Форум глючит, не открываются разделы, поэтому прошу тут.

У меня проблема следующая. Обычно все протекторы нормально и стабильно эмулятся в юм, я использую гибридную эмуляцию(dye). На одном из апп им накрытым возникает нестабильность, я потратил где то месяц на отладку - всё бестолку.

Падает внутрях XED или из него возвращаются ошибки. Причём очень странным образом - если сохранить дизасм структуру(она локальна на стеке потока, переменная) и при возвращении ошибки повторно с этой структурой вызвать ксед, то ошибки нет. Чудеса просто, учитывая что память при этом не изменяется.

Я пересобрал сам ксед на последнюю версию, при этом без импорта(используется только 6 простейших функций работы с памятью). Это ничего не дало, всё тот же анстаб.

Я попытался обернуть ксед в exclusive-RWL блокировку, тоже бестолку.

Далее я попробовал снять трассу, так как сам ксед дизасмить кседом не имеет смысла, то использовал тормозную машинную(TF). Не понятным образом трасса рвётся на обычном потоке инструкций(не передающих управление) и управление улетает хз куда.

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

На днях я закончил инжект(что бы крутить потомки), аналогичного типа анстаб возникает на примере крякми(Patrick", axprotect), вот только с кседом всё впорядке в этом случае, а анстаб в системном загрузчике. Вот сам инжектор(может кому нужно), загрузка сразу после загрузки kernel32/kernelbase, те до запуска любого юзер кода(dll, tls). Отлажено, работает стабильно, ну кроме этой проблемы, но она врядле с самим инжектом связана.

Когда загрузчик открывает файл для проецирования, возникает ошибка STATUS_SHARING_VIOLATION. При каждом запуске и именно на либе из крякми. Если после возврата из сервиса ошибки под отладчиком его перезапустить, то ошибки нет как и в случае выше, память без изменений.

Фишка в том, что потоки визора между собой никак не синхронизируются, так как никакие общие ресурсы не используют, они друг от друга крутятся независимо. Одно событие лишь синхронно - выделение поточного блока(tls) при запуске нового треда.

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

Как вообще искать откуда идёт нестабильность в этом случае ?

Чуть не забыл, такое поведение на варе. Может ли она быть причиной ?

{ Атач доступен только для участников форума } - Ijr.7z


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

Создано: 13 июля 2019 05:06 New!
Цитата · Личное сообщение · #25

Ничего

Ни у кого нет идей что ле.


Ранг: 649.2 (!)
Статус: Участник
CyberMonk

Создано: 13 июля 2019 13:23 · Поправил: mak New!
Цитата · Личное сообщение · #26

Patrick интересный крякми, внутри есть солюшн, ссылки зеркальные ..
--> Link <--
--> Link <--

Dr0p пишет:
Далее я попробовал снять трассу, так как сам ксед дизасмить кседом не имеет смысла, то использовал тормозную машинную(TF). Не понятным образом трасса рвётся на обычном потоке инструкций(не передающих управление) и управление улетает хз куда.

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


Может дело в оперативке или ресурсах твоей ВМки?! У меня были подобные ошибки когда было мало ресурсов, может сам файл реально открыт в другом процессе.

Code:
  1. The various access fields (ReadAccess, WriteAccess, and DeleteAccess) 
  2. are set and cleared by the I/O Manager. So are the various share access related 
  3. fields (SharedRead, SharedWrite, and SharedDelete). The state of these 
  4. fields determines how the file is currently opened and also determines whether 
  5. subsequent opens requesting certain specific types of access will be allowed to proceed or will be denied with an error code of STATUS_SHARING_VIOLATION. 
  6. There exists an I/O Manager support routine called loCheckShareAccess (), 
  7. which maintains the state of these fields. This routine is typically only invoked by 
  8. file system drivers.


Где у тебя проект лежит в VMWare, не в расшаренной папке?


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

Создано: 13 июля 2019 22:15 New!
Цитата · Личное сообщение · #27

mak

Ошибка возникает независимо от пути(расположения) папки.

Я заметил что есть некоторая зависимость от запущенного км-дбг, у меня это сиська, через него я смотрю дебаг вывод. Если он запущен, то ошибки возникают многократно чаще. Я пробовал выгрузить отладчик и снять все возможные моды ядра(rku/gmer), всё равно ошибка возникает, но менее часто. При запуске копии апп(когда предыдущая работает) - ошибка возникает в 100% запусков. При этом два процесса и по одному потоку. Ошибка возникает в нтлдр при попытке резолвить импорт, его либу антидебаг.длл

При прямом запуске ошибка не возникает. Точнее врядле возникает, иначе загрузчик выводит сообщение про ошибку загрузки. По этой причине я не смотрел открывает ли апп файл, судя по всему он это делает, но при прямом запуске проблемы нет.

Я по максимому удалил всё из визора, даже адресный транслятор(теперь для обработки индирект ветвлений заменяется опкод на push [EA]). Всё равно ошибка.

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

Сам этот патрик" накрыт судя по тектовым строкам неким приватным axprotect. Я не нашёл как его получить.

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

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


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

Создано: 18 июля 2019 20:01 New!
Цитата · Личное сообщение · #28

По патрику я с проблемой разобрался, это специфический баг апп. Впрочем такой не один с ним, пришлось 4-ре либы ребазить(указать базу загрузки), в противном случае апп валится с ошибками, так как база - fixed.

Лень перезаливать картинки --> Link <--

С аспр я пока не разбирался.

Откопал есчо два семпла, какой то тулз для захвата видео - faststone", после снятия лога я тупо передал управление на нужный адрес и оно работает теперь, это вообще не защита.

Смотрел есчо эмулятор железок - realpicsimulator". Судя по die оно накрыто армой. Но почему то раньше она так себя не вела, мб это вмп, весьма похоже(его морф). С этим семплом не то что проблема, он по системной части сложный. Два процесса друг друга дебажут и манипулируют контекстами. Тупо на EP: jmp $ и из другого процесса getctx/cmp/setctx.


Ранг: 525.2 (!)
Статус: Участник
5KRT

Создано: 18 июля 2019 21:17 New!
Цитата · Личное сообщение · #29

difexacaw пишет:
Два процесса друг друга дебажут и манипулируют контекстами. Тупо на EP: jmp $ и из другого процесса getctx/cmp/setctx.

Это точно армадилла. Вроде DebugBlocker называется опция защиты. Возможно, там и наномиты прикручены

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



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

Создано: 19 июля 2019 19:20 New!
Цитата · Личное сообщение · #30

daFix

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

Проблема с аспром^.
 eXeL@B —› Крэки, обсуждения —› Реверс AsProtect

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

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