2012-03-01 2 views
0

VB6에서 작성한 응용 프로그램이 있는데 사용자가 로그인 한 후 데스크톱이 실제로로드되기 전에 실행해야합니다. 왜 당신이 물어, 음, 내가 말할 게. VB 응용 프로그램은 외부 데이터베이스에 대해 유효성이 확인 된 정보를 사용자에게 묻습니다. 유효성 검사가 실패하면 사용자는 로그인 할 수 없으므로 VB 응용 프로그램이 강제로 로그 아웃합니다. msGina.dll 및 로그온 프로세스에 대한 기사를 읽었지만 실행 가능한 솔루션을 찾지 못했습니다. 이것에 대한 아이디어가 있습니까?Windows 로그온 프로세스를 제어해야합니다.

답변

1

이상적으로는 Windows에서 로그인 메커니즘을 수정하기 위해 자체 GINA 공급자를 작성하는 것이 좋습니다. 그러나 이것이 C/C++로 코드를 작성해야 할 필요가 있다는 것을 이해하고 몇 가지 백도어 및 취약점을 열지 않도록 매우 조심해야합니다. 당신은 나머지 Windows를 불안정하게 만들지 않습니다.

귀하의 VB6 앱은 여러 가지 이유로이 시나리오를 진행할 방법이 아니며, 보안 메커니즘을 완전히 가로 채지 않고 우회하는 것이 중요합니다.

로그인 메커니즘을 Buildng하는 것은 바위처럼 견고하고 폭탄이없는 건물을 만드는 방법을 실제로 파고 들기 전까지는 케이크 조각처럼 보입니다. 유럽 ​​정부의 보안 데스크탑을위한 맞춤 GINA를 구축 한 팀을 한 번 이끌었 기 때문에이 사실을 알고 있습니다!

당신은 당신이 다음이 개요 기사를 살펴 걸릴 사용자 지정 GINA를 구축 가고 싶어 어떤 경우 :

Customizing GINA, Part 1

Customizing GINA, Part 2

+1

Windows XP에서만 작동합니다. Windows Vista 이상에는 다른 메커니즘이 있습니다. –

1

GINA는 하나 개의 옵션이지만, 만 Windows XP 용. Windows Vista 이상 버전은 credential provider입니다. 대안으로

, 당신은이 레지스트리 키에 Userinit의 값을 변경하여 초기 사용자 프로세스를 변경할 수 있습니다 그것을 할 때 이렇게하면

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 

, 응용 프로그램이 USERINIT을 시작해야합니다, 또는 사용자의 셸이 시작되지 않습니다. 이렇게해도 지식이 풍부한 사용자는 적어도 추가 단계없이 애플리케이션을 우회 할 수 있습니다.

credential manager은 로그온 프로세스 중에 사용자와 상호 작용할 수 있지만 로그온을 거부하는 직접적인 방법은 제공하지 않는다고 생각합니다. 함께 해킹하는 것이 가능할 수도 있지만 추천하지는 않습니다.

group policy client-side extension은 사용자 로그온을 거부 할 수 있다고 생각하지만이 기술에 익숙하지 않습니다.

+0

내가 대화 할 때 필요한 응용 프로그램으로 사용자의 셸을 교체하려고합니다. 내 생각은 여기서 어떤 이유로 든 앱을 취소하면 로그 아웃됩니다. 그들이 신임장 테스트를 통과하면 데스크탑 로딩을 계속할 수 있습니다. 어떤 레지스트리 값이 'Shell'또는 'Userinit'을 사용하는 것이 더 낫습니까 – todd1215

+0

아마 userinit이긴하지만 실험 해 보길 권합니다. –

0

이것은 보안에 대한 매우 이상한 접근법입니다. "Autoexec.bat"파일을 살펴볼 수도 있습니다. 어쨌든 사용자가 작업 관리자에서 VB6 응용 프로그램을 "끝내고"자신의 즐거운 방법을 생각할 수 있다고 생각합니다.

관련 문제