Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
MemoryMapper — 軽量ライブラリ。ユーザー指定のプロセスへのプロセスインジェクション、またはセルフインジェクションを使用して、ネイティブおよびマネージドアセンブリの両方をメモリにマッピングする機能を提供します。 | Kitploit
ツール/GitHubGitHub/jasondrawdy/memorymapper
エクスプロイト暗号化バイナリ解析ペイロード開発
GitHubjasondrawdy/memorymapper

MemoryMapper

軽量ライブラリ。ユーザー指定のプロセスへのプロセスインジェクション、またはセルフインジェクションを使用して、ネイティブおよびマネージドアセンブリの両方をメモリにマッピングする機能を提供します。

リポジトリを見る
3386年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Memory Mapper

Memory Mapperは軽量なライブラリで、ユーザーが指定したプロセスへのプロセスインジェクション、または自己インジェクション(インジェクションを実行しようとしている現在のプロセスにアセンブリを注入する手法)を用いて、ネイティブアセンブリとマネージドアセンブリの両方をメモリにマッピングする機能を提供します。このライブラリには、アセンブリのマッピングだけでなく、暗号化、復号化、さまざまな量の暗号学的に強力なデータの生成を行うツールも含まれています。

必要条件

注: (Memory Mapperを使用する実行中のアセンブリのみ* — スタブやシェルコードには適用されません)*

  • Windows 7 SP1 以上
  • .NET Framework 4.6.1

機能

  • PE (ポータブル実行可能ファイル) の構造を調査する

  • マネージドアセンブリとネイティブアセンブリの両方からリソースを読み取る

  • プロセスインジェクションと自己インジェクションを使用してネイティブアセンブリをメモリにマッピングする

  • プロセスインジェクションおよびその他の手法を使用してマネージドアセンブリをメモリにマッピングする

  • 任意のファイルサイズのファイルのバイト配列を取得する

  • ファイル全体と生のバイトを暗号化および復号化する

  • ファイルと生のバイトのチェックサムを生成および検証する

  • SecureRandom オブジェクトを使用して暗号学的に強力なランダムデータを生成する

  • 複数の暗号化およびハッシュアルゴリズムがバンドルされています

    暗号化

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

    ハッシュ

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

使用例

ネイティブインジェクション

この例では、NativeLoader ツールを使用してネイティブアセンブリを静的にメモリにマッピングする方法を示します。この例では、ディスクからファイルのすべてのバイトを読み込んでファイルをロードし、そのバイトに関連付けられたPE (ポータブル実行可能ファイル) を直接メモリに注入します。ネイティブローダーと、私の Amaterasu ライブラリにある動的コードコンパイルを組み合わせることで、すべてをインメモリコードからオンザフライのコードコンパイルとインジェクションを実現できます。

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

マネージドインジェクション

この例では、バイトを読み込むか、埋め込みバイト配列を使用してマネージドアセンブリを静的にメモリにマッピングし、ManagedLoader を使用して現在実行中のプロセスに注入する方法を示します。提供されている ManagedLoader ツールを使用して、ほぼすべてのマネージドアセンブリをマッピングできます。

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

クレジット

アイコン: DesignBolts
http://www.designbolts.com/

ライセンス

Copyright © ∞ Jason Drawdy

All rights reserved.

MIT ライセンス (MIT)

ここに、本ソフトウェアのコピーを入手するすべての人に対し、無償で本ソフトウェアの使用、複製、変更、統合、出版、配布、サブライセンス、および/または販売を許可します。また、本ソフトウェアが提供されるすべての人物に対しても、以下の条件に従うことを条件として、同様の権利を許可します。

上記の著作権表示およびこの許可表示は、本ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。

本ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害の黙示の保証を含むがこれに限定されない、いかなる種類の保証もありません。いかなる場合においても、著作者または著作権保持者は、契約行為、不法行為、またはその他の行為に基づく場合を問わず、本ソフトウェアまたは本ソフトウェアの使用もしくはその他の取引に起因または関連して生じた、いかなる請求、損害、またはその他の責任についても一切の責任を負いません。

本通知に含まれている場合を除き、上記の著作権保持者の名称は、事前の書面による許可なしに、本ソフトウェアの販売、使用、またはその他の取引を宣伝または促進するために使用してはなりません。

ツールをダウンロード