в сети валялась библиотека сокетов для режима ядра. ага. она самая...
она на самом деле не с rootkits а другого автора... и на его странице было десяток комментов, что там пропущено... не могу тот сайт найти....
сейчас выложу с учетом внесенных комментов. помоему компилилась. но это библиотека - ее еще использовать надо) и в сети полно разговоров о ее использовании.
посмотрите ее повнимательней) помоему вполне рабочий пример.
//************************************************************************
//
// sockets.c
// (c) valerino/xOANINO 2003/2004/2005
//
// this module implements a generic kernel sockets library.
// ** Beware that this is optimized for single thread use if REUSE_SOCKETSIRP is defined.**
//*****************************************************************************
если не получится эту скомпилить - пишите, разберемся что там еще не так...
PS порядок там прозрачный - так же как под виндой должно быть. посмотрите функции работы с сокетами под винду - аналогично должно быть.
BOOL KSocketInitialize();
BOOLEAN KSocketCleanup();
NTSTATUS KSocketCreate(OUT PKSOCKET* Socket);
VOID KSocketClose(PKSOCKET Socket);
PVOID KSocketAllocatePool();
void KSocketFreePool(PVOID pBuffer);
NTSTATUS KSocketConnect(PKSOCKET pSocket, ULONG Address, USHORT Port);
NTSTATUS KSocketDisconnect(PKSOCKET pSocket);
NTSTATUS KSocketSend(PKSOCKET pSocket, PVOID Buffer, SIZE_T Size, PSIZE_T BytesSent);
NTSTATUS KSocketReceive(PKSOCKET pSocket, PVOID Buffer, SIZE_T Size, PSIZE_T BytesReceived, BOOLEAN ReceivePeek);
NTSTATUS KSocketComplete(PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context);
NTSTATUS KSocketReadLine(PKSOCKET pSocket, PCHAR buf, SIZE_T maxlen, PSIZE_T ReceivedBytes);
NTSTATUS KSocketWriteLine(PKSOCKET pSocket, const char* format, ...);