이 프로젝트는 다른 프로세스에 코드를 주입하는 DLL 주입 기법을 보여준다. DLL 주입은 악성 코드에 의해 사용되지만 소프트웨어 플러그인을 생성하는 합법적인 용도로도 사용된다. 이 과정에서는 대상 프로세스를 엽니다. 메모리를 할당하고 DLL 경로를 씁니다. 그리고 LoadLibrary를 사용하여 DLL을 로드합니다. 후킹 기능을 사용하여 주입된 프로세스 내부의 API 호출을 가로채고 수정할 수 있습니다. Windows API는 kernel32.dll 및 ntdll.dll와 같은 라이브러리에 의존하며 SSDT를 통해 커널과 상호작용합니다. DLL의 DllMain 함수는 성공적인 주입 후 실행됩니다. 이 예에서는 native 프로세스(예: notepad.exe)에 C 라이브러리를 주입하고, CoreCLR 런타임 및 관리되는 C# DLL을 로드합니다. C# DLL은 프로세스 정보를 표시하는 메시지 상자를 표시합니다. GitHub 리포지토리에 전체 코드가 포함되어 있습니다. 제공된 C# 코드는 주입된 DLL의 기능을 보여줍니다. 이 프로젝트는 CoreCLR 및 주입된 라이브러리의 올바른 경로로 코드를 수정하는 것을 요구합니다.
dev.to
DLL injection of managed code into native process
Create attached notes ...
