示例#1
0
 private static int send_Hooked(IntPtr socketHandle, IntPtr buf, int count, int socketFlags)
 {
     lock (typeof(Main))
     {
         NativeSocketMethode.sockaddr address = new NativeSocketMethode.sockaddr();
         int    namelen     = 0x10;
         int    num2        = NativeSocketMethode.getpeername(socketHandle, ref address, ref namelen);
         string str         = Marshal.PtrToStringAnsi(NativeSocketMethode.inet_ntoa(address.sin_addr)) + ":" + NativeSocketMethode.ntohs(address.sin_port);
         byte[] destination = new byte[count];
         Marshal.Copy(buf, destination, 0, count);
         return(NativeSocketMethode.send(socketHandle, buf, count, socketFlags));
     }
 }
示例#2
0
        private static int connect_Hooked(IntPtr socketHandle, ref NativeSocketMethode.sockaddr name, ref int namelen)
        {
            portnum = Convert.ToInt32(portconnect.ToString("x"), 16);

            lock (typeof(Main))
            {
                if (NativeSocketMethode.ntohs(name.sin_port) == portnum)//0x78f is 1935 in Hex
                {
                    string str = Marshal.PtrToStringAnsi(NativeSocketMethode.inet_ntoa(name.sin_addr)) + ":" + NativeSocketMethode.ntohs(name.sin_port);
                    name.sin_addr.sin_addr[0] = 0x7f;//127 in Hex
                    name.sin_addr.sin_addr[1] = 0;
                    name.sin_addr.sin_addr[2] = 0;
                    name.sin_addr.sin_addr[3] = 1;
                }
                return(NativeSocketMethode.connect(socketHandle, ref name, ref namelen));
            }
        }
示例#3
0
 private static int recv_Hooked(IntPtr socketHandle, IntPtr buf, int count, int socketFlags)
 {
     lock (typeof(Main))
     {
         NativeSocketMethode.sockaddr address = new NativeSocketMethode.sockaddr();
         int    namelen = 0x10;
         int    num2    = NativeSocketMethode.getpeername(socketHandle, ref address, ref namelen);
         int    length  = NativeSocketMethode.recv(socketHandle, buf, count, socketFlags);
         string str     = address.sin_addr.sin_addr[0].ToString() + "." + address.sin_addr.sin_addr[1].ToString() + "." + address.sin_addr.sin_addr[2].ToString() + "." + address.sin_addr.sin_addr[3].ToString() + ":" + address.sin_port.ToString();
         if (length > 0)
         {
             byte[] destination = new byte[length];
             Marshal.Copy(buf, destination, 0, length);
             string str2 = Encoding.ASCII.GetString(destination);
         }
         return(length);
     }
 }