木马与远程控制.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

木马与远程控制本章介绍基于远程控制的木马知识:木马是如何启动的;木马是如何通信的;木马是如何控制的;如何寻找与清除木马;可编辑*简介木马由两部分组成,一个是服务端程序,运行于一台机器上,另一个是客户端程序,运行于另一台机器上。客户端程序通过网络与另一台机器上的服务程序进行通讯,发送命令和接收返回信息,从而控制对方机器。,服务端程序在A机上的端口上侦听,客户端程序从B机上向A机发出连接请求,并建立连接。客户端程序就可以向服务端程序发送命令,通过服务端程序控制A机。可编辑*4.2远程通信远程通信最简单的方法是使用UDP和TCP进行通信。1、使用UDP发送命令比如,控制端向被控制端发送命令,可以使用UDP实现。在使用VC编程时,记得要选择套接字,否则要手动添加。使用UDP通信是互为客户端互为服务端。发送信息可以在主线程,接收信息应该在子线程中进行。可编辑*2、使用TCP传递文件如果要把一个文件,比如图片从一台计算机传递到另一台计算机,使用TCP很方便。也应该在子线程中完成文件的传送。由于上面的例子已经使用了线程,这里直接使用,读者可以自行将其加入到线程中可编辑*3、使用共享文件夹直接读写文件建立共享文件夹的完整代码见“共享文件夹管理”,调用如下的函数表示将文件夹“D:\\beijing”建成任何人都可以访问的,密码为“123456”,共享名为“beijing”的共享文件夹。可编辑*4.3远程控制

可编辑远程操作主要包括文件的操作、屏幕的操作、鼠标操作和键盘操作。文件操作好实现,比如控制端发送“deletec:\aaa”,那么受控端解析该字符串,可以理解为删除一个文件。截屏和鼠标键盘控制是本节的主要内容。*4.3.1截屏控制如果是控制端要看受控端的窗口,则用UDP方式向受控端发送取窗口的命令。受控端截取窗口后存成文件(也可以直接是内存数据),还可以进行压缩。然后使用TCP方式,将文件发给控制端。控制端收到文件后,在窗口上显示传过来的图片。主要代码是取窗口,如下函数。可编辑*4.3.2远程鼠标控制我们经常见到有这样的软件,控制端的鼠标的移动和点击,都可以反映在受控端。控制端的鼠标的移动和按键动作,一般通过鼠标钩子获取。两端需要定义一个结构,将鼠标的操作信息保存在结构中,用UDP发送到受控端。受控端解析收到的数据后,用虚拟鼠标来产生虚拟鼠标信息。完整的程序见“鼠标钩子捕获发送和接收模拟”可编辑*1、受控端的鼠标钩子程序鼠标钩子用于捕获鼠标的按键和位置信息。定义发送到受控端的数据结构如下:DWORDpos;//鼠标位置,高16位是x,低16位是yDWORDop;//高16位=1,左键,=2中间键,=3右键,低16位=1,单击,=2双击=3移动2、控制端的鼠标钩子可编辑*2、鼠标钩子拦截鼠标信息,发送到控制端LRESULTCALLBACKMouseProc(intiCode,WPARAMwParam,LPARAMlParam){if(iCode0){returnCallNextHookEx(g_hHook,iCode,wParam,lParam);}可编辑*3、控制端在子线程中接收受控端发来的信息UINTThreadProc(LPVOIDparam){//建立子线程C接收鼠标数据Dlg*Input=(C接收鼠标数据Dlg*)param;...}//在程序初始化函数中启动子线程AfxBeginThread(ThreadProc,this,THREAD_PRIORITY_BELOW_NORMAL,0,0);//一下代码接收对方数据do{recvfrom(RecvSocket,RecvBuf,BufLen,0,(SOCKADDR*)SenderAddr,SenderAddrSize);DWORDx=*(DWORD*)RecvBuf;DWORDy=x16;x=x0xFFFF;DWORDop=*(DWORD*)(RecvBuf[4]);可编辑*4、受控端产生虚拟鼠标信息虚拟鼠标信息调用函数SendInput。以虚拟鼠标左键单击为例,代码如下。elseif((op0xFFFF)==1){//单击if((op16)==1){//左键INPUTInput={0};//leftdownInput.type=INPUT_MOUSE;Input.mi.dwF

文档评论(0)

幸福是什么 + 关注
实名认证
文档贡献者

幸福是什么

1亿VIP精品文档

相关文档