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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DNCI — DNCI - .NET 코드 인젝터 | Kitploit
도구/GitHubGitHub/guibacellar/dnci
Post-ExploitationPenetration TestingRed Teaming
GitHubguibacellar/dnci

DNCI

DNCI - .NET 코드 인젝터

저장소 보기
149267년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DNCI - 닷넷 코드 인젝터

DNCI는 윈도우의 비관리 프로세스에 .Net 코드(.exe 또는 .dll)를 원격으로 주입할 수 있습니다.

1. 프로젝트 구조

프로젝트는 다음과 같이 구성됩니다:

  • DNCI.Injector.Library - 주입 라이브러리. 모든 주입 구성 요소와 로직을 포함합니다;
  • DNCI.Injector.Runner - 주입용 명령줄 유틸리티;
  • DNCIClrLoader - .NET 어셈블리를 메모리에 로드하는 C++ 마이크로코드;
  • InjectDemo.Console.ClassicNet - 주입될 데모 Classic .Net 콘솔 애플리케이션;
  • InjectDemo.Console.DotNetCore - 주입될 데모 .Net Core 콘솔 애플리케이션;
  • InjectDemo.Dll.ClassicNet - 주입될 데모 Classic .Net DLL;

2. 문서 및 사용법:

2.1. 명령줄 유틸리티 문서

  • 매개변수:
    • --help 도움말 정보 표시
    • --assemblyFile <SOURCE_FILE_PATH> 대상 .NET Classic DLL 파일
    • --className <TARGET_CLASS_NAME> 관리 어셈블리의 정규화된 형식 이름
    • --methodName <TARGET_CLASS_ENTRYPOINT_METHOD> 실행할 관리 메서드의 이름. 예: EntryPoint (이 메서드는 'public static int'여야 함)
    • --argument <ENTRYPOINT_METHOD_ARGUMENT> 관리 함수에 전달할 선택적 인수
    • --targetMode <TARGET_MODE> 주입 대상 모드 (BruteForce, PID, ProcessName)
    • --pid <TARGET_PROCESS_ID> 대상 프로세스 ID
    • --processName <TARGET_PROCESS_Name> 대상 프로세스 이름

예제

Classic .Net 콘솔 애플리케이션을 Notepad++에 주입

이 예제는 InjectDemo.Console.ClassicNet .exe 파일을 사용합니다. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=processName --processName notepad++ --argument "OK BOY"

Classic .Net 콘솔 애플리케이션을 ID가 66인 프로세스에 주입

이 예제는 InjectDemo.Console.ClassicNet .exe 파일을 사용합니다. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=PID --pid 66 --argument "OK BOY"

Classic .Net 콘솔 애플리케이션을 실행 중인 모든 프로세스에 주입 시도

이 예제는 InjectDemo.Console.ClassicNet .exe 파일을 사용합니다. DNCI.Injector.Runner.exe --assemblyFile "<PATH_TO_FILE>\InjectDemo.Console.ClassicNet.exe" --className InjectDemo.Console.ClassicNet.Program --methodName EntryPoint --targetMode=BruteForce --argument "OK BOY"

2.2. 주입 라이브러리 문서

주입 라이브러리는 모든 .Net 프로그램에서 사용할 수 있도록 설계되었습니다. 실제로 DNCI 명령줄 유틸리티는 DNCI 라이브러리 자체를 사용합니다.

  • 클래스
    • Injector - 주요 주입 구성 요소;
    • InjectorConfiguration - 구성 모델. Injector와 소비자 간의 추상 모델로 생성됨;
    • InjectorConfigurationBuilder - InjectionConfiguration 모델의 플루언트 빌더;
    • InjectorResult - 결과 모델. Injector와 소비자 간의 추상 모델로 생성됨;
    • InjectorResultStatus - 가능한 모든 주입 상태를 포함하는 열거형;

빌드 매개변수

Classic .Net 콘솔 애플리케이션을 원격 프로세스에 주입

root@kitploit:~
Injector.Library.InjectorConfiguration config = Injector.Library.InjectorConfigurationBuilder
    .Instance()
    .InjectThisClrBinary(@"<PATH_TO_BINARY>\InjectDemo.Console.ClassicNet.exe")
    .ClrClassName("InjectDemo.Console.ClassicNet.Program")
    .ClrMethodName("EntryPoint")
    .WithArguments("OK - It Works Baby")
    .InjectOnProcess("cmd") // Try to Inject on cmd process
    .InjectOnProcess("chrome") // Try to Inject on chrome process
    .InjectOnProcess("cmd.exe") // Try to Inject on cmd.exe process
    .InjectOnProcess("calc") // Try to Inject on calc process
    .InjectOnProcess("notepad++")  // Try to Inject on notepad++ process
    .Build();

Classic .Net DLL 애플리케이션을 사용 가능한 모든 프로세스에 무차별 주입

root@kitploit:~
Injector.Library.InjectorConfiguration config = Injector.Library.InjectorConfigurationBuilder
   .Instance()
   .InjectThisClrBinary(@"<PATH_TO_BINARY>\InjectDemo.Dll.ClassicNet.dll")
   .ClrClassName("InjectDemo.Dll.ClassicNet.Class1")
   .ClrMethodName("EntryPoint")
   .WithArguments("OK - It Works Baby")
   .InjectWithBruteForce()
   .Build();

인젝터 실행

root@kitploit:~
// Create Injector Instance
DNCI.Injector.Library.Injector injector = new Library.Injector(configBuilderconfig);

// Execute the Injection
List<InjectorResult> result = injector.Run();

// Print Injection Result on Console
foreach (InjectorResult res in result)
{
    Console.WriteLine(res);
}
도구 다운로드