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

 eXeL@B —› Протекторы —› Вопрос знатокам Guardant Stealth III
Посл.ответ Сообщение


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 10 января 2011 02:09
· Личное сообщение · #1

Столкнулся с какой-то новой фишкой стелса третьего - конверт выделяет память под
предположительно виртуальную машину, и по программе идут много вызовов на часть кода:

Code:
  1. 0107DAC0          PUSH DWORD PTR SS:[ESP]
  2. 0107DAC3          PUSHAD
  3. 0107DAC4          PUSHFD
  4. 0107DAC5          CALL 01027BB0
  5. 0107DACA          ADD EAX,1008
  6. 0107DACF          PUSH EAX
  7. 0107DAD0          PUSH 3
  8. 0107DAD2          CALL 01027BB0
  9. 0107DAD7          MOV EAX,DWORD PTR DS:[EAX]
  10. 0107DAD9          PUSH EAX
  11. 0107DADA          CALL 01027BB0
  12. 0107DADF          MOV ECX,DWORD PTR DS:[EAX]
  13. 0107DAE1          MOV EDX,DWORD PTR DS:[ECX+34]
  14. 0107DAE4          MOV EAX,DWORD PTR DS:[EDX+1D6D]
  15. 0107DAEA          CALL EAX
  16. 0107DAEC          INT3
  17. 0107DAED          INT3


В коллах находится ещё один call, в котором находился pop eax/ret. Тоесть "CALL 01027BB0" просто
положит в EAX значение 01027BB0 + 5 = 01027BB5.

По адресу 0107DADF, в ECX кладётся адрес, указывающий на начало выделенной конвертом
памяти
Дальше, думаю, понятно. Вызывается функция, лежащяя в выделенной памяти и там уже
начинаются шаманства, похожие на работу виртуальной машины.

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

-----
Research For Food





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 10 января 2011 17:59
· Личное сообщение · #2

Это конверт или апи? Апи - на VM, конверт тоже может виртуализировать куски вроде как.

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 10 января 2011 18:24
· Личное сообщение · #3

ajax
Нет, это не API, они есть в проге и не изменились
Это что-то другое

-----
Research For Food





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 10 января 2011 19:46
· Личное сообщение · #4

daFix
Про куски написал. Если "что-то другое", то при чем тут стелс?

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 10 января 2011 20:08 · Поправил: daFix
· Личное сообщение · #5

ajax
Извини, тупанул
Был конверт, его снял. Приведённый выше код лежит в распакованном файл в секции протектора.
В конверте так-же используются Guardiant API, но с ними проблем нету

Поправка - call EAX ведёт в адресное пространство GrdVkc32.dll. Адрес берётся из выделенной памяти

-----
Research For Food


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


Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 11 января 2011 02:20
· Личное сообщение · #6

"Одной из наиболее интересных является извлечение (по выбору разработчика) инструкций из кода приложения и трансляция их в код некой виртуальной машины (опция автозащиты /RIP CODE)"
Как бороться - не знаю, не попадалось пока.

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


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

Ранг: 0.7 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 11 января 2011 17:17
· Личное сообщение · #7

Ничего там сложного нет. Он тащит лишь малый набор инструкций (в основном mov и арифметические с 4-байтовой константой) длины не менее чем 5-байтовых себе и создаёт таблицы. По таблицам их находит и эмулит. Иногда вызывает проверку ключа. Элементарно по анализу вход-выход можно восстановить их на место, даже ключ для этого не нужен.

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


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 11 января 2011 18:23 · Поправил: daFix
· Личное сообщение · #8

if блин, не поверишь, только что сам догнал что это за хрень такая, захожу сюда, и тут твоё сообщение Спасибо, чувак, пойду искать таблицы
Когда-то в RLPack'e эту хрень убирал. Code Splicing называется, если не ошибаюсь

ADDED:
Таблицу нашёл, формат понятен, но пока не догоню как кодируется адрес сворованной комманды

ADDED2:
Спасибо всем за помощь, разобрался!

-----
Research For Food





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 12 февраля 2012 18:43 · Поправил: daFix
· Личное сообщение · #9

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

del

-----
Research For Food




Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 12 февраля 2012 20:24
· Личное сообщение · #10

daFix
SetupDi*

-----
старый пень


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


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 12 февраля 2012 20:42
· Личное сообщение · #11

r_e
Мимо, не оно

-----
Research For Food




Ранг: 0.5 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 12 февраля 2012 21:04 · Поправил: arestik
· Личное сообщение · #12

del
Рад что помог.

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


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 12 февраля 2012 21:12 · Поправил: daFix
· Личное сообщение · #13

Так и есть, ушёл в отладку)

r_e
Блин, ты прав, проморгал момент, сорри

-----
Research For Food



 eXeL@B —› Протекторы —› Вопрос знатокам Guardant Stealth III
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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