Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
MemoryMapper — Librería ligera que permite mapear tanto ensamblados nativos como administrados en memoria, ya sea mediante inyección de procesos especificados por el usuario o autoinyección. | Kitploit
Herramientas/GitHubGitHub/jasondrawdy/memorymapper
ExplotaciónCriptografíaAnálisis de BinariosDesarrollo de Payloads
GitHubjasondrawdy/memorymapper

MemoryMapper

Librería ligera que permite mapear tanto ensamblados nativos como administrados en memoria, ya sea mediante inyección de procesos especificados por el usuario o autoinyección.

Ver Repositorio
33812hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Memory Mapper

Memory Mapper es una librería ligera que permite mapear tanto ensamblados nativos como administrados en memoria, ya sea mediante inyección en un proceso especificado por el usuario o autoinyección; la técnica de inyectar un ensamblado en el proceso que actualmente está intentando realizar la inyección. La librería incluye herramientas no solo para mapear ensamblados, sino también para cifrar, descifrar y generar diversas cantidades de datos criptográficamente fuertes.

Requisitos

Nota: (Para el ensamblado en ejecución que usa Memory Mapper SOLAMENTE — no para stubs/shellcode)

  • Windows 7 SP1 y superior
  • .NET Framework 4.6.1

Características

  • Explorar la estructura de un PE (ejecutable portátil)

  • Leer recursos de ensamblados tanto administrados como nativos

  • Mapear ensamblados nativos en memoria mediante inyección en proceso y autoinyección

  • Mapear ensamblados administrados en memoria mediante inyección en proceso y otras técnicas

  • Obtener un arreglo de bytes para cualquier archivo de cualquier tamaño

  • Cifrar y descifrar archivos completos y bytes sin procesar

  • Generar y validar sumas de verificación de archivos y bytes sin procesar

  • Generar datos aleatorios criptográficamente fuertes usando un objeto SecureRandom

  • Viene incluido con múltiples algoritmos de cifrado y hash

    Cifrado

    • AES (ECB)
    • AES (CBC)
    • AES (CFB)
    • AES (OFB)
    • AES (CTR)

    Hash

    • MD5
    • RIPEMD160
    • SHA1
    • SHA256
    • SHA384
    • SHA512

Ejemplos

Inyección nativa

Este ejemplo muestra cómo mapear estáticamente un ensamblado nativo en memoria usando la herramienta NativeLoader. El ejemplo carga el archivo leyendo todos sus bytes desde el disco y luego inyecta el PE (ejecutable portátil) asociado a los bytes directamente en memoria. Usando el cargador nativo junto con la Compilación Dinámica de Código de mi librería Amaterasu se podría lograr la compilación e inyección de código sobre la marcha, todo desde código en memoria.

using System;
using System.IO;
using System.Reflection;
using MemoryMapper;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the bytes of the file we want to load.
            var filePath = "FileToReadBytesOf";
            var fileBytes = File.ReadAllBytes(filePath);

            // Check if the assembly is managed or native.
            bool isManaged = false;
            try
            {
                // Note — this is one of the simplest variations of checking assemblies
                var assemblyName = AssemblyName.GetAssemblyName(filePath);
                if (assemblyName != null)
                    if (assemblyName.FullName != null)
                        isManaged = true;
            }
            catch { isManaged = false; }

            // Try loading the assembly if it's truly native.
            if (!isManaged)
            {
                NativeLoader loader = new NativeLoader();
                if (loader.LoadAssembly(fileBytes))
                    Console.WriteLine("Assembly loaded successfully!");
                else
                    Console.WriteLine("Assembly could not be loaded.");
            }

            // Wait for user interaction.
            Console.Read();
        }
    }
}

Inyección administrada

Este ejemplo muestra cómo mapear estáticamente un ensamblado administrado en memoria leyendo sus bytes — o usando un arreglo de bytes embebido — y luego usando ManagedLoader para inyectarlo en un proceso en ejecución. Casi cualquier ensamblado administrado puede ser mapeado con la herramienta ManagedLoader proporcionada.

using System;
using System.IO;
using System.Reflection;
using MemoryMapper;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the bytes of the file we want to load.
            var filePath = "FileToReadBytesOf";
            var fileBytes = File.ReadAllBytes(filePath);

            // Check if the assembly is managed or native.
            bool isManaged = false;
            try
            {
                // Note — this is one of the simplest variations of checking assemblies
                var assemblyName = AssemblyName.GetAssemblyName(filePath);
                if (assemblyName != null)
                    if (assemblyName.FullName != null)
                        isManaged = true;
            }
            catch { isManaged = false; }

            // Try loading the assembly if it's truly managed.
            if (isManaged)
            {
                // Set the name of a surrogate process - the process we'll inject into.
                var processName = "explorer.exe"; // Can also be the current process's name for self-injection.
                ManagedLoader loader = new ManagedLoader();
                if (loader.LoadAssembly(fileBytes, processName))
                    Console.WriteLine("Assembly loaded successfully!");
                else
                    Console.WriteLine("Assembly could not be loaded.");
            }

            // Wait for user interaction.
            Console.Read();
        }
    }
}

Créditos

Icono: DesignBolts
http://www.designbolts.com/

Licencia

Copyright © ∞ Jason Drawdy

Todos los derechos reservados.

The MIT License (MIT)

Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar con el Software sin restricción, incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, DERIVADA DE, FUERA O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS TRANSACCIONES EN EL SOFTWARE.

Salvo lo dispuesto en este aviso, el nombre del titular del copyright anterior no se utilizará en publicidad ni para promover la venta, uso u otras transacciones de este Software sin autorización previa por escrito.

Descargar herramienta