Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/jasondrawdy/memorymapper
ExploitCrittografiaAnalisi di BinariSviluppo Payload
GitHubjasondrawdy/memorymapper

MemoryMapper

Libreria leggera che consente di mappare sia assembly nativi che gestiti in memoria tramite l'iniezione in un processo specificato dall'utente o l'auto-iniezione.

Vedi Repository
3386 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Memory Mapper

Memory Mapper è una libreria leggera che permette di mappare in memoria sia assembly nativi che gestiti, utilizzando l'iniezione di processo in un processo specificato dall'utente o l'auto-iniezione; la tecnica di iniettare un assembly nel processo attualmente in esecuzione che tenta di eseguire l'iniezione. La libreria include strumenti non solo per mappare assembly, ma anche per crittografare, decrittografare e generare varie quantità di dati crittograficamente forti.

Requisiti

Nota: (Per l'assembly in esecuzione che utilizza Memory Mapper SOLO — non per stub/shellcode)

  • Windows 7 SP1 e successivi
  • .NET Framework 4.6.1

Funzionalità

  • Esplorare la struttura di un PE (eseguibile portatile)

  • Leggere risorse da assembly gestiti e nativi

  • Mappare assembly nativi in memoria utilizzando iniezione di processo e auto-iniezione

  • Mappare assembly gestiti in memoria utilizzando iniezione di processo e altre tecniche

  • Ottenere un array di byte per qualsiasi file di qualsiasi dimensione

  • Crittografare e decrittografare interi file e byte grezzi

  • Generare e convalidare checksum di file e byte grezzi

  • Generare dati casuali crittograficamente forti utilizzando un oggetto SecureRandom

  • Include molteplici algoritmi di crittografia e hashing

    Crittografia

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

    Hashing

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

Esempi

Iniezione nativa

Questo esempio mostra come mappare staticamente un assembly nativo in memoria utilizzando lo strumento NativeLoader. L'esempio carica il file leggendo tutti i suoi byte dal disco e poi inietta il PE (eseguibile portatile) associato ai byte direttamente in memoria. Utilizzando il caricatore nativo insieme alla Compilazione Dinamica del Codice presente nella mia libreria Amaterasu si potrebbe ottenere una compilazione e iniezione del codice al volo, tutto dal codice in 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();
        }
    }
}

Iniezione gestita

Questo esempio mostra come mappare staticamente un assembly gestito in memoria leggendo i suoi byte — o utilizzando un array di byte incorporato — e poi usando ManagedLoader per iniettarlo in un processo attualmente in esecuzione. Quasi ogni assembly gestito può essere mappato utilizzando lo strumento ManagedLoader fornito.

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();
        }
    }
}

Crediti

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

Licenza

Copyright © ∞ Jason Drawdy

Tutti i diritti riservati.

The MIT License (MIT)

Autorizzazione è concessa, gratuitamente, a qualsiasi persona che ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizione, inclusi senza limitazione i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di permettere alle persone a cui il Software è fornito di fare altrettanto, soggetto alle seguenti condizioni:

La suddetta nota sul copyright e questa nota di autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSO MA NON LIMITATO ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA, O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.

Salvo quanto contenuto in questa nota, il nome del suddetto titolare del copyright non potrà essere utilizzato in pubblicità o altrimenti per promuovere la vendita, l'uso o altre operazioni relative a questo Software senza previa autorizzazione scritta.

Scarica lo strumento