Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
3383hace 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.

    root@kitploit:~
    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.

    root@kitploit:~
    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