2009-10-26 3 views
0

내가 허용하는 응용 프로그램을 제외하고 응용 프로그램이 인터넷에 액세스하지 못하도록 제한하는 간단한 방화벽을 만들려고합니다. netlimiter처럼. 그래서 흰색 목록에있는 응용 프로그램의 인터넷 액세스를 허용하고 나머지는 연결을 끊어야합니다. C# 또는 vb.net에서 가능합니까? 가능한 경우 올바른 방향으로 나를 가리 키십시오..net의 간단한 방화벽

감사

답변

0

PacketX 패킷을 도청 할 수있는 간단한 작은 라이브러리입니다. 네트워크를 완전히 차단할 수 있는지 확실하지 않습니다. 네트워크 어댑터 &을 사용하지 않도록 설정 한 다음 네트워크 어댑터로 프로그램을 만들어 패킷을 적절하게 전달해야합니다.

편집 : 나쁨. "PacketX는 네트워크 트래픽을 차단하여 방화벽을 구축하는 데 사용할 수 없습니다."

0

AFAIK이 방화벽의 시스템 수준 계층을 구현하려면 C++ 및 WIN API와 같은 저수준 도구가 필요합니다.

1

terR0Q가 말했듯이 C++ 또는 다른 저수준 프로그래밍 언어 (저수준은 기계어 코드에 가깝다는 뜻입니다)를 사용해야합니다.

.NET을 사용하려면 옵션이 매우 제한적입니다. 한 가지로 WinApi를 많이 사용해야 할 필요가 있습니다. .NET에서 매우 편리하지는 않지만 (불가능하지는 않지만) VC++ .NET을 사용하는 것이 좋습니다. EasyHook을 관리 후킹에 사용할 수 있습니다. 그것은 확실히 좋은 해결책하지 참고, 사실의 tutorial는 보안 소프트웨어에서 사용에 대해 경고 :

을 달리 무엇을 일부 (상업) 부스트 매출이 광고하고 밖으로 라이브러리 후킹, 사용자 모드 연결은 안전 수칙을 통해 보안 검사를 추가로 적용 할 수있는 옵션이 절대로 없습니다. 전용 프로세스 인 "sandbox"전용 프로세스를 알고 싶다면 프로세스는 사실을 모릅니다. EasyHook, 이것이 성공할 수 있습니다! 그러나 사용자 모드 후킹을 기반으로 보안 소프트웨어를 쓰려고 시도하지 마십시오. EasyHook가 지원에게 사실 그냥 환상 소위 "와이드 시스템" 주입을하지 않는 이유가 말했듯이 있기 때문에 사용자 모드 후크, 이것은 또한 내가 ... 약속, 작동하지 않습니다 이 경우 항상 이 불가능합니다. 당신이 이 환상을 유지하려면하지만 당신은 튜토리얼에서 ... 다른 (상업) 라이브러리 그렇게 를 시도으로

다른 어떤 힌트를 스틱 수

당신은 을 구입을 고려한다 PatchGuard API를 사용하면 커널을 기반으로 보안 앱을 쓸 수 있습니다. 모드 차단. 커널 모드 후킹 (또는 PatchGuard API)은 보안 검사를 추가로 적용하는 경우에만 옵션입니다.Windows Vista 이후 Windows 필터링 플랫폼 및 기타 Vista 관련 API는 보안 소프트웨어를 작성하는 데 도움이됩니다!

여기서 알 수 있듯이 .NET을 사용하면 실제로 작동하지 않습니다. 여전히 EasyHook을 시도하고 싶다면 계속 진행하면서 위험을 염두에 두십시오. 나는 당신이 가서 C++을 배우고 방화벽 같은 것을 시도하기 전에 WinApi에 대한 깊은 지식을 얻으려면 훨씬 더 많은 조언을 원합니다.