목록Windows (17)
Creative Motive
데브피아 까막 님 작성 (http://crowback.tistory.com/208)이번에는 간단하게 설치된 서비스의 시작, 중지, 일시정지, 일시정지 풀기에 관한 내용을을 짤막하게 다루어 본다.먼저 서비스 매니저의 핸들을 얻는다. 서비스 매니저의 핸들을 이용하여, 특정 서비스를 제어하는 것이 가능하다.SC_HANDLE hScm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);서비스 매니저 핸들을 이용하여, 원하는 서비스를 오픈한다.SC_HANDLE hSrv = OpenService(hScm, "열고자 하는 서비스의 이름", SERVICE_ALL_ACCESS);해당 서비스의 핸들을 이용하여, 서비스를 시작한다.StartService(hSrv, 0, NULL);해당..
데브피아 까막 님 작성 (http://crowback.tistory.com/207)지난 장에서는 실제 서비스 몸통을 만들기 전에 만들어진 서비스를 설치/제거하는 아주 초간단 구현을 살펴보았다.원래는 이번장에서 서비스를 중지, 일시중지, 재시작 상태를 변경시키는 기능에 대하여 진행하려고 하였으나 몇몇 분의 요청에 의하여 지금까지 열거된 기능중에 필요한 함수 몇개를 먼저 소개하고자 한다.1. 사용자 계정에 권한을 할당하는 UserPrivileges 함수.#define TARGET_SYSTEM_NAME L"."LSA_HANDLE GetPolicyHandle(){ LSA_OBJECT_ATTRIBUTES ObjectAttributes; WCHAR SystemName[] = TARGET_SYSTEM_NA..
데브피아 까막 님 작성 (http://crowback.tistory.com/206)이번 장에서는 서비스의 몸통을 만들기 전에 서비스를 인스톨 하는 부분과 제거하는 부분에 대하여 알아볼 것이다.서비스를 설계할 때 기능도 당연히 중요하지만 어떤 동작 상태를 주어 기동하게 할것인가에 대하여 생각해 보아야한다.1. 먼저 서비스 이름이나 설명을 어떻게 설정할 것인가? -> 단순한 문제이지만, 서비스 이름이나 실행파일명, 그리고 이에 따른 설명은 해당 서비스가 어떠한 기능을 하게 되는지 그리고, 사용하는 사람들이 직관적으로 알아 볼 수 있도록 명확하게 하여야 한다.2. 서비스를 구동 시키는 계정은 어떻게 처리할 것인가? -> 보통 아주 일반적으로 디폴트 계정 즉, SYSTEM(Local Syst..
데브피아 까막 님 작성 (http://crowback.tistory.com/203)지난 내용에서 서비스가 구동되는 순서는 어떠한지, 또한 서비스 프로그래밍의 장/단점은 어떠한지에대하여 간략하게 살펴보았다. 자세한 기술 관점으로 넘어가기전에 서비스 관리자에서 (services.msc)살펴볼 수 있는 항목들에 대하여 간략하게 설명하고, 이러한 항목들이 프로그래밍되는 API 와 연관되는지살펴보도록 하겠다. 전체적으로 외향적인 부분을 살펴보는 것이므로, 주의깊게 살펴보지 않아도 작업하는데 지장은 없다.가장 일반적으로 접하게 되는 GUI로써, 서비스를 시작/중지/일시 정지 시킬 수 있고 서비스의 현재 동작상태를 살펴볼 수 있다. 해당 서비스가 어떠한 계정으로 구동중인지도 확인이 가능하다.1. General (일반..
데브피아 까막 님 작성 (http://crowback.tistory.com/202)윈도우 서비스 카테고리에서 이것 저것 서비스 프로그래밍을 하면서 필요한 것들을 하나 둘 씩 진행해 보았다.이런 것들을 정리하여, 서비스는 왜 필요한 것이며? 무엇 때문에 사용하는가?어떻게 동작되며, 과연 어느 순간에 실행되는지...서비스는 일반 콘솔 프로그램과 무엇이 다른지 하나씩 정리를 해보려한다.일반적으로 윈도우가 기동되는 과정을 단순화 시키면 아래 그림과 같다.즉, 서비스 프로그램은 윈도우가 부팅된 이후에, 로그온 되지 않은 상태에서도 구동되어진다는 큰 장점을 가지게 된다.또한 일반적으로 Local System Account 로 구동되기 때문에 시스템을 제어하는데 필요한 가장 강력한권한을 가진다고 말할 수 있다. 서비..
Devpia 신영진 님 작성 성상훈 ( + 여리) 님 작성 in Codeprojecthttp://www.codeproject.com/Articles/2082/API-hooking-revealedin Codeguruhttp://www.codeguru.com/cpp/w-p/system/processesmodules/article.php/c5767/Three-Ways-To-Inject-Your-Code-Into-Another-Process.htm
http://www.codeproject.com/Articles/13601/COM-in-plain-C http://www.codeproject.com/Articles/13862/COM-in-plain-C-Part-2 http://www.codeproject.com/Articles/14037/COM-in-plain-C-Part-3 http://www.codeproject.com/Articles/14117/COM-in-plain-C-Part-4 http://www.codeproject.com/Articles/14183/COM-in-plain-C-Part-5 http://www.codeproject.com/Articles/14905/COM-in-plain-C-Part-6 http://www.codeprojec..
보호되어 있는 글입니다.