Anti-Detect-C-Sharp은(는) 무엇을 하나요?
.NET Core, .NET Framework 및 Native AOT 환경에서 C# 애플리케이션의 디버거, 메모리 스캐너, 인젝션 도구를 탐지하고 차단합니다.
개요
이 스킬은 C# 애플리케이션에서 디버깅, 메모리 스캐닝, 코드 인젝션과 같은 보안 위협을 탐지하고 차단하기 위한 포괄적인 솔루션을 제공합니다. 다양한 .NET 런타임 환경과의 호환성을 보장하며, 강력한 보안 조치를 구현하는 데 필수적인 유틸리티 및 패턴을 포함합니다.
지원 플랫폼
- .NET Core 3.1+
- .NET Framework 4.6.1+
- Native AOT (NativeAOT 및 ReadyToRun)
주요 기능
디버거 탐지
IsDebuggerPresentWin32 API 호출- PEB (Process Environment Block)
BeingDebugged플래그 검사 CheckRemoteDebuggerPresentAPI 사용- NtQueryInformationProcess를 통한 커널 디버거 탐지
메모리 스캐너 탐지
- 의심스러운 DLL 목록 검사 (예:
cheatengine-x86_64.dll) - 열린 핸들 및 프로세스 목록 스캔
- 알려진 메모리 스캐너 패턴 탐지
인젝션 방지
SetWindowsHookEx및CreateRemoteThread와 같은 일반적인 인젝션 API 모니터링- 비정상적인 DLL 로드 시도 탐지
- 프로세스 보호 강화 (Integrity Level 확인)
설치 및 사용법
NuGet 패키지 (권장)
dotnet add package AntiDetectCSharp
수동 설치
소스 코드를 다운로드하여 프로젝트에 직접 포함시킬 수 있습니다.
기본 사용 예제
using AntiDetect;
class Program
{
static void Main()
{
// 모든 탐지 기능 초기화
var antiDetect = new AntiDetect();
// 결과 확인
if (antiDetect.IsDebuggerPresent())
{
Console.WriteLine("디버거가 탐지되었습니다!");
Environment.Exit(-1);
}
if (antiDetect.IsMemoryScannerDetected())
{
Console.WriteLine("메모리 스캐너가 탐지되었습니다!");
Environment.Exit(-1);
}
// 정상 실행
Console.WriteLine("애플리케이션이 안전하게 실행 중입니다.");
}
}
API 참조
| 메서드 | 설명 | 지원 환경 |
|---|---|---|
IsDebuggerPresent() | 디버거 존재 여부 확인 | 전체 |
CheckRemoteDebugger() | 원격 디버거 연결 확인 | Windows |
DetectKernelDebugger() | 커널 디버거 탐지 | Windows |
IsMemoryScannerDetected() | 알려진 메모리 스캐너 탐지 | 전체 |
CheckSuspiciousDlls() | 의심스러운 DLL 로드 확인 | Windows |
MonitorInjectionAttempts() | 인젝션 시도 모니터링 | Windows |
구성 옵션
appsettings.json 또는 코드에서 직접 탐지 동작을 구성할 수 있습니다.
{
"AntiDetect": {
"EnableDebuggerDetection": true,
"EnableMemoryScannerDetection": true,
"EnableInjectionPrevention": true,
"AutoExitOnDetection": true,
"DetectionIntervalMs": 1000
}
}
주의사항
- 이 라이브러리는 정당한 보안 목적으로만 사용해야 합니다.
- 일부 탐지 방법은 Windows 플랫폼에 종속적입니다.
- Native AOT 환경에서는 일부 Win32 API가 제한될 수 있습니다.
- 안티치트 시스템과 함께 사용할 경우 호환성을 반드시 확인하세요.
라이선스
MIT 라이선스에 따라 배포됩니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.