Сейчас на форуме: _MBK_ (+7 невидимых) |
![]() |
eXeL@B —› Основной форум —› непонятные опкоды |
Посл.ответ | Сообщение |
|
Создано: 26 августа 2009 00:00 · Поправил: ufo_maniac · Личное сообщение · #1 разбираю тут одну дээлельку в IDA, одна функция никак не поддается, непонятные опкоды встречаются. вот пример: Code:
в функе есть указатели на строки, упоминающие виртуальные машины. судя по всему в функции детектится как-то, не под виртуалкой ли она работает. в Symantec'овской презентации "Attacks on Virtual Machine Emulators" есть такой кусочек текста: Detecting VirtualPC: - IDT/GDT at high memory address - Non-zero LDT - 0F 3F opcode - 0F C7 C8 opcode - Overly long instruction - Device names то есть с помощью опкода 0F 3F детектится VirtualPC? а как? что этот опкод делает? и почему IDA Pro 5.2 его не понимает? ![]() |
|
Создано: 26 августа 2009 00:26 · Личное сообщение · #2 ufo_maniac пишет: то есть с помощью опкода 0F 3F детектится VirtualPC?а как? что этот опкод делает? и почему IDA Pro 5.2 его не понимает? Это байты - несуществующей команды процессора, изза этого ида их и не распознает. Когда этот код выполняется под виртуалкой, то выполнение такой инструкции вызывает исключение. Виртуалка перехватывает его и выполняет какой-то код изменяя значения регистров. Если виртуалки нет, то это исключение поймает обработчик в самой твоей DLL. Вот так и определяется есть виртуалка или нет. ----- Реверсивная инженерия - написание кода идентичного натуральному ![]() |
|
Создано: 26 августа 2009 01:42 · Поправил: ufo_maniac · Личное сообщение · #3 Hexxx пишет: Это байты - несуществующей команды процессора ... спасибо, с твоей помощью разобрался. сначала функа детектит VМware (c помощью "магического числа" 564D5868h и порта 5658h), потом детектит VirtualPC (LDT и GDT проверяет), потом детектит QEMU, потом еще что-то... вот тут статья о детекте виртуалок: pferrie.tripod.com/papers/attacks2.pdf в общем, для моих целей эти дела можно занопить и продолжать, а тему можно закрыть ![]() ![]() |
![]() |
eXeL@B —› Основной форум —› непонятные опкоды |
Эта тема закрыта. Ответы больше не принимаются. |