Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
MemoryMapper — 사용자가 지정한 프로세스에 프로세스 인젝션을 사용하거나 자체 인젝션을 통해 네이티브 및 관리형 어셈블리를 모두 메모리에 매핑할 수 있는 경량 라이브러리입니다. | Kitploit
도구/GitHubGitHub/jasondrawdy/memorymapper
ExploitationCryptographyBinary AnalysisPayload Development
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)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of the above copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization.

도구 다운로드