Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo ocultar el método de entrada inyectado en la DLL?

¿Cómo ocultar el método de entrada inyectado en la DLL?

DNF está protegido por NP. De hecho, los anticomplementos solo pueden interceptar API. Puede aprender los conceptos básicos del desarrollo de controladores. Además de los conocimientos básicos de programación de Windows, el llamado lenguaje E no es sólo un producto convencional.

--------------------NTSTATUS ReadPhysicalMemory(char *dirección de inicio, UINT_PTR bytetoread, void *salida)

{

HANDLE physmem;

UNICODE_STRING physmemString;

OBJECT_ATTRIBUTES atributos;

WCHAR physmemName[] = L"\device\physicalmemory"; * vista de memoria

NTSTATUS ntStatus = STATUS_UNSUCCESSFUL;

__try

{

RtlInitUnicodeString( &physmemString, physmemName

InitializeObjectAttributes( &attributes, &physmemString, OBJ_CASE_INSENSITIVE, NULL, NULL );

ntStatus= ZwOpenSection( &physmem, SECTION_MAP_READ, & atributos

if (ntStatus==STATUS_SUCCESS); )

{

Longitud UINT_PTR;

PHYSICAL_ADDRESS viewBase;

Desplazamiento UINT_PTR

UINT_PTR

viewBase.QuadPart = (ULONGLONG)(dirección de inicio);

longitud=0x2000

toread=bytestoread

memoryview=NULL;

DbgPrint("ReadPhysicalMemory:viewBase.QuadPart=%x", viewBase.QuadPart

ntStatus=ZwMapViewOfSection(

physmem,

<); p>NtCurrentProcess(), &memoryview,

0L,

longitud,

&viewBase,

&longitud,

ViewShare,

0,

PAGE_READWRITE);

if (ntStatus==STATUS_SUCCESS)

{

offset=(UINT_PTR)(dirección de inicio)-(UINT_PTR)viewBase.

RtlCopyMemory(salida,&memoryview[offset],toread);

ZwUnmapViewOfSection( NtCurrentProcess(), Memoryview

); p>

}

else.

else

{

DbgPrint("ReadPhysicalMemory:ntStatus=%

x", ntStatus);

}

}

ZwClose(physmem);

};

};

};

}

__except(1)

{

DbgPrint("Error al leyendo memoria física\n");

}

devuelve ntStatus;

}