우선 키보드 나 마우스를 모니터하고 싶지 않습니다. 내 DLL 만로드하려고합니다. 다른 프로세스의 주소 공간. 나는 현재 WriteProcessMemory, VirtualAllocEx 및 CreateRemoteThread를 수행하는 외부 관리되지 않는 dll을 사용하여이 작업을 수행하고 있습니다. 그러나 이것은 보통 바이러스로 탐지됩니다. SetWindowsHookEx가 바이러스 백신에 대해 더 안전합니까? 그렇다면 C#에서 사용하는 방법 - WH_ * 값을 사용해야합니까? 내 DLL이 가상 * 함수를 호출 PInvoke를를 사용하여,어떻게 SetWindowHookEx를 사용하여 C# 응용 프로그램에서 네이티브 dll을 주입 할 수 있습니까? (그리고 CreateRemoteThread와 함께 주입하는 것보다 안전합니다)
0
A
답변
0
귀하의 C# 코드는 네이티브 코드와 유사 할 것이다 관리되지 않는 (C로 작성)된다
편집 할 수 있습니다.
네이티브 코드가있는 경우 바이러스 백신 프로그램에서 발견되지 않을 가능성은 낮습니다.
바이러스 백신이 문제가 아닌 코드 인 것처럼 들립니다.
바이러스 백신 공급 업체에 따라 다소 완화 될 수 있지만 컴퓨터에 기반한 교육용으로 이러한 종류의 후킹을 허용 할 수 있습니다. 앱에 디지털 서명이되어 있고 인증서 체인이 신뢰할 수있는 루트.
그래서 C에서 SetWindowsHookEx를 사용하는 예제가 필요합니까? 후크 유형은 해당 후크에 대해 호출되기를 원할 때를 기준으로합니다. – xanatos
당신의 안티 바이러스가 의심 스럽다고 경고하는 이유는 다른 프로세스에 코드를 주입하는 것이 일반적으로 나쁜 일이라고 말하기 때문입니다. WPM/VAX/CRT 이외의 다른 방법으로이 작업을 수행하는 경우 CRT에 반대하지 않으므로 바이러스 백신에 의해 플래그가 지정됩니다. 코드를 다른 프로세스에 삽입하십시오. – SecurityMatt