PDA

Просмотр полной версии : [Parallels Workstation Detection]


0x0c0de
28.11.2008, 20:42
[Детект Parallels Workstation].

Много написано было про VmWare, а про детект этой вм ничего не видела, а так как юзаю не варю, а ее, то стало интересно. Нашла по крайней мере 2 способа ее сдетектить

ОС: Windows XP (SP2,SP3)

1)Виртуальный cdrom и hdd
В системе, установленной на Parallels

присутствуют символические ссылки с именами
~(у меня)

IDE#CdRomPRL_Virtual_CD-ROM______________________R102____#4&2eac1
2a2&0&0.1.0#{53f56308-b6bf-11d0-94f2-00a0c91efb8b}

IDE#DiskVirtual__HDD_[0]________________________FWR10003#31303134
39353632333538353739333933323438#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

на реальном компе (также только частный случай)

IDE#CdRomATAPI_DVD_A__DH20A4P____________________9 P54____#5&3b5e6
249&0&0.1.0#{1186654d-47b8-48b9-beb9-7df113ae3c67}

IDE#DiskHitachi_HDS721616PLA380_________________P2 2OABEA#5&1bbc6d
1b&0&0.0.0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

(см скрины)

http://img530.imageshack.us/my.php?image=parllsuv1.jpg

как видно, юзала Winobj.

понятное дело, что часть CdRomPRL_ и DiskVirtual__HDD_ постоянна на остальное закладываться не стоит (я проверку на эту часть строки делала, но в принципе можно проверять CdRomPRL_Virtual_CD-ROM). Здесь вывод: идем по дереву объектов (используя NtOpenDirectoryObject и NtQueryDirectoryObject) и ищем SymbolicLink. Потом парсим строку и если находим подстроку DiskVirtual__HDD_ или CdRomPRL_, то мы под Paralles.
Результат работы моей проги под эмулятором
детектед

http://img266.imageshack.us/my.php?image=dethd2.jpg


2. Через реестр в VideoBiosVersion права Parallels(R)

Ключ: HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System

Параметр: "VideoBiosVersion"

Значение(у меня):

2Parallels(R) VGA-Compatible BIOS Version 1.05
Id: vgabios.c,v 1.61 2005/05/24 16:50:50 vruppert Exp


Думаю, в следующем коде все понятно


BOOL DetectBios(void){
BOOL rslt = FALSE;
HKEY hkey;
wchar_t lpData[500];

if(!RegOpenKey(HKEY_LOCAL_MACHINE,L"HARDWARE\\Description\\System",&hkey))
{
DWORD Type = REG_MULTI_SZ,lpcbData = 500;


if(!RegQueryValueEx(hkey,L"VideoBiosVersion",0,&Type,(LPBYTE)&lpData,&lpcbData))
{

wprintf(L"Value name = %s\n",lpData);
//ищем подстроку Parallels(R) в строке со значением
if(checkLink(lpData,L"Parallels(R)",12)){
wprintf(L"Registry value detected\n");
}


}
else wprintf(L"Error in RegQueryValueEx\n");

RegCloseKey(hkey);
}
else wprintf(L"Cannot open key\n");
return rslt;

}



program download

http://rapidshare.com/files/168272284/ParallelsDetect.rar.html

0verbreaK
30.11.2008, 00:35
Мой вирус пополнился новым методом детекта вм =)

neprovad
26.12.2008, 12:10
слишком явный метод, строки палятся :)
вот если бы какие-либо порты задействовать или еще что-нибудь экзотическое

ProTeuS
26.12.2008, 13:52
несуть, порты или строки, сигну всеравно повесят на кодес. на собственном примере поведаю, был кодес, невинный посути, добавил детек сандбоксов и варей тому подобных, 4ерез недели 2 смотрю палится вебером, каспером, авастом. эмпири4еским путем было выяснено 4то сигны детекта были навешаны на детект с именем какого-то о4ередного "Agent.XXX" и им пофиг 4то мой код "нормальный" =\ с таким подходом, скоро каждого медика будут упрятывать в тюрьму, ведь у них в арсенале есть шприцы, а шприцы потенциально могут содержать в себе капли крови-ви4 позитивных лодей. так4то лу4ше упрятать пока никого не заразили)

Ryu
26.12.2008, 19:01
wtf? "слишком явный метод, строки палятся"- кто юзает строки? Возьми свой полином и захешируй. Ничего палиться не будет (не вечно конечно, но достаточно долго). А если еще криптор-пакер или хотя бы простенький полиморф - пол-года я думаю актуальность будет обеспечена.

Hellsp@wn
26.12.2008, 20:08
wtf? А если еще криптор-пакер или хотя бы простенький полиморф - пол-года я думаю актуальность будет обеспечена.
простенький полиморф, пол года - да что вы батенька ;)
по сабжу, есть более красивые методы детекта, работающие под гостем.

neprovad
28.12.2008, 14:46
по сабжу, есть более красивые методы детекта, работающие под гостем.
А если не секрет, можно один хотя бы пример? Ради интереса :)