Сейчас на форуме: (+7 невидимых) |
![]() |
eXeL@B —› Протекторы —› Вопрос знатокам Guardant Stealth III |
Посл.ответ | Сообщение |
|
Создано: 10 января 2011 02:09 · Личное сообщение · #1 Столкнулся с какой-то новой фишкой стелса третьего - конверт выделяет память под предположительно виртуальную машину, и по программе идут много вызовов на часть кода: Code:
В коллах находится ещё один call, в котором находился pop eax/ret. Тоесть "CALL 01027BB0" просто положит в EAX значение 01027BB0 + 5 = 01027BB5. По адресу 0107DADF, в ECX кладётся адрес, указывающий на начало выделенной конвертом памяти Дальше, думаю, понятно. Вызывается функция, лежащяя в выделенной памяти и там уже начинаются шаманства, похожие на работу виртуальной машины. Может быть уже кто-то разбирался с этим, и подскажет что это такое и как с этим бороться. Верны ли догадки что это виртуальная машина? ----- Research For Food ![]() |
|
Создано: 10 января 2011 17:59 · Личное сообщение · #2 |
|
Создано: 10 января 2011 18:24 · Личное сообщение · #3 |
|
Создано: 10 января 2011 19:46 · Личное сообщение · #4 |
|
Создано: 10 января 2011 20:08 · Поправил: daFix · Личное сообщение · #5 ajax Извини, тупанул ![]() Был конверт, его снял. Приведённый выше код лежит в распакованном файл в секции протектора. В конверте так-же используются Guardiant API, но с ними проблем нету Поправка - call EAX ведёт в адресное пространство GrdVkc32.dll. Адрес берётся из выделенной памяти ----- Research For Food ![]() |
|
Создано: 11 января 2011 02:20 · Личное сообщение · #6 "Одной из наиболее интересных является извлечение (по выбору разработчика) инструкций из кода приложения и трансляция их в код некой виртуальной машины (опция автозащиты /RIP CODE)" Как бороться - не знаю, не попадалось пока. ----- От многой мудрости много скорби, и умножающий знание умножает печаль ![]() |
|
Создано: 11 января 2011 17:17 · Личное сообщение · #7 Ничего там сложного нет. Он тащит лишь малый набор инструкций (в основном mov и арифметические с 4-байтовой константой) длины не менее чем 5-байтовых себе и создаёт таблицы. По таблицам их находит и эмулит. Иногда вызывает проверку ключа. Элементарно по анализу вход-выход можно восстановить их на место, даже ключ для этого не нужен. ![]() |
|
Создано: 11 января 2011 18:23 · Поправил: daFix · Личное сообщение · #8 if блин, не поверишь, только что сам догнал что это за хрень такая, захожу сюда, и тут твоё сообщение ![]() ![]() Когда-то в RLPack'e эту хрень убирал. Code Splicing называется, если не ошибаюсь ADDED: Таблицу нашёл, формат понятен, но пока не догоню как кодируется адрес сворованной комманды ADDED2: Спасибо всем за помощь, разобрался! ----- Research For Food ![]() |
|
Создано: 12 февраля 2012 18:43 · Поправил: daFix · Личное сообщение · #9 |
|
Создано: 12 февраля 2012 20:24 · Личное сообщение · #10 |
|
Создано: 12 февраля 2012 20:42 · Личное сообщение · #11 |
|
Создано: 12 февраля 2012 21:04 · Поправил: arestik · Личное сообщение · #12 |
|
Создано: 12 февраля 2012 21:12 · Поправил: daFix · Личное сообщение · #13 |
![]() |
eXeL@B —› Протекторы —› Вопрос знатокам Guardant Stealth III |