У меня есть сервис. На котором реализован Pipe server(CreateNamedPipe) количество instance не ограничено. Это может привести к тому что процесс, имея самые маленькие права, может завалить сервис путем бесконечного создания instance'ов. Так вот вопрос можно или как то запихнуть shellcode? Если да, то как ? Кривой псевдо Код (Text): __try { hPipe = CreateNamedPipe( , , , PIPE_UNLIMITED_INSTANCES, , , ); if ( hPipe== INVALID_HANDLE ) { __leave; } ConnectNamedPipe( hPipe, &overlapped ); // //После всех проверок и ожидание соединения WaitForMultipleObjectsEx(2, {overlapped.hEvent, hEventStop}, FALSE, TRUE, INFINITE ) // switch(retWaitForMultipleObjectsEx) { case WAIT_OBJECT_0: /// exit break; case WAIT_OBJECT_2: /// новое соединение. Выделяется память через new(не перегруженный, стандартный WDK ) /// ReadFileEx(, , , OnCompleteRead) break; case WAIT_IO_COMPELTE: break; } } __except(1) { ExitProcess(0); } П.С. Я в встраивании shell code не секу. Так что особо не пинайте... )) П.С. П.С. Пока что вижу что можно завалить сервис, и подправить .exe файл сервиса... Сервис не подписан....
Нуу... чтобы подправить файл сервиса, тоже обычно нужны не "самые маленькие" права. Во-вторых, винда умеет перезапускать упавшие сервисы.