Сабж в студию. экстрасенсы в отпуске. з.ы.: а то я щас опять подумаю, что это клон sXe с перебитыми копирайтами
Против аттача на DbgUiRemoteBreakin стоит jmp ведущий в секцию античита(программа завершается). Убрав jmp программа опять таки заверашется. Но обойти можно. Античит в отличии от sXe упомянутого выше не использует драйверов. А сам накрыт VMprotect. В коде есть очень интересная функция против разных утилит(сделайте поиск по секциям на строчку h00k). Она без ВМ так как выполняется довольно часто. Можно убрать все эти проверки поставив jmp от начала проверок на конец(проверок валидности этой функции нет). Но пока лазил в ней открыл много нового в области определения разных тузл(детект по стилю окна ваще класс придумано). Меня мало интересует сам античит. А вот то как VMProtect определяет VirtualBox очень даже. Реестр отпадает. Процессы сервисов тоже. 80ee:cafe аналогично. Идентификаторы жестких дисков и прочего подобного тоже. Больше ничего не придумал. Вопрос затронутый ТС частично пересекается с моим, поэтому надеюсь кто-то подкинет идей и мне. В ВМбокс, вроде как, нет же бекдоров по типу VMXh? Через что может быть детект? А ну ещё ucp ставит защиту на память некоторых секций. Тож интересный для меня вопрос(хотя уже и не актуальный, так для общего развития ).
UnameR Почему же без названий модулей, например sandboxie определяет с помощью GetModuleHandle('sbie.dll')
Ну я не спорю, что при некоторых обстоятельствах можно обнаружить VBOX по модулю в процессе, Но я проверял при отсутствии дополнений гостевой системы(этим модулям было просто неоткуда взяться). Поэтому и сделал такой вывод. PS: За инфу о sandboxie спасибо, если что буду иметь в виду.
Все, разобрался как VMProtect находит VirtualBox Вообщем все завязано на неправильном исполнении команды rdtsc При выполнении она сразу захватывает и следующую за ней команду. Регистрируем обработчик исключений и смотрим на какую инструкцию указывает EIP. Если через одну -> работаем под VBOX А, ну и для эксепшена ставим single-step флаг 1. Я не знаю как сделан обработчик исключений в VMProtect, но я думаю он не сильно отличается от моего. По крайней мере смысл один. Для себя сделал реализацию: Code: #include "windows.h" void VirtualBox() { MessageBox(0,"VirtualBox detected!",0,0); ExitProcess(0); } void NativePC() { MessageBox(0,"Hello world!",0,0); } __declspec(naked) void CheckVM() { __asm { // возводим флаг T pushfd pop eax or ah, 1 push eax popfd rdtsc // если мы под VirtualBox, то вместе с rdtsc сразу выполнится и nop nop call NativePC ret } } LONG WINAPI Exception(struct _EXCEPTION_POINTERS *pExceptionInfo) { if ( pExceptionInfo->ContextRecord->Eip == (DWORD)CheckVM+10/*call NativePC*/ ) pExceptionInfo->ContextRecord->Eip = (DWORD)VirtualBox; return EXCEPTION_CONTINUE_EXECUTION; } int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetUnhandledExceptionFilter(Exception); CheckVM(); } Осталось придумать как обойти это не парясь каждый раз в отладчике... Буду рад идеям)
имел имел. я единственный, изза кого автор защитил его вмпротектом)) это после поломки 6.0 версии произошло. долго думать Энди не захотелось. кстати товарищи не забудьте - он много использует вместо экспортных апи прямые системные вызовы. в основном int 21 (какой 21 нахрен, этож дос) 2Е конечно. sysenter я у него не встречал.
Отключение vmware VMX backdoor Неожиданно для себя узнал что отключить простейший детект vmware можно установив значение в конф. файле monitor_control.restrict_backdoor = "TRUE"
да. еще бывает что вмвар тулз мешают - но в основном - это отключение бакдура. оригиналли постед бай креш