AppToService

Discussion in 'Безопасность и Анонимность' started by Ch3ck, 14 Jan 2007.

  1. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,362
    Likes Received:
    1,157
    Reputations:
    430
    Кто-то спрашивал как сделать, чтобы консольное окно программы не мозолило глаза...
    Сегодня поднял старую подшивку Хакера и нарвался на это(отрывок):
    P.S Если честно, до этого сам не знал, как такое реализовывается...
     
  2. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    Программная реализация:
    Code:
    #include <iostream>
    #include <windows.h>
    #include <winsvc.h>
    
    main()
    {
    	SC_HANDLE MdaService, SCManager;
    	
    	SCManager = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
    	if(!SCManager)
    	{
    		std::cout << "Error" << std::endl;
    		return 1;
    	}
    	
    	//////////////////////////////////////////////////
    	// запуск (установка) обычной программы как сервис
    	//////////////////////////////////////////////////
    	MdaService = CreateService(
    		SCManager, 
    		"MdaServiceInternalName",
    		"Mda Service External Name",
    		SERVICE_ALL_ACCESS,
    		SERVICE_WIN32_OWN_PROCESS,
    		SERVICE_DEMAND_START,
    		SERVICE_ERROR_NORMAL,
    		"C:\\MdaService.exe",
    		0,0,0,0,0);
    	
    	if(!MdaService)
    	{
    		CloseServiceHandle(SCManager);
    		std::cout << "Error" << std::endl;
    		return 1;
    	}
    
    	//////////////////////////////////////////////////
    	// ну а это - удаление сервиса (если понадобится)
    	//////////////////////////////////////////////////
    	/*
    	MdaService = OpenService( 
    		SCManager,       
    		"MdaServiceInternalName", 
    		DELETE);
    
    	
    	if(!MdaService)
    	{
    		CloseServiceHandle(SCManager);
    		std::cout << "Error" << std::endl;
    		return 1;
    	}
    
    	if (!DeleteService(MdaService))
    	{
    		CloseServiceHandle(SCManager);
    		std::cout << "Error" << std::endl;
    		return 1;
    	}
    	*/
    	
    	CloseServiceHandle(MdaService);
    	CloseServiceHandle(SCManager);
    	
    	return 0;
    }
     
    1 person likes this.