Page 4 of 4 FirstFirst 1234
Results 61 to 67 of 67
  1. #61  
    I was at a Sprint store today, and I installed Resco onto a Mogul to see if I could share something and access it from my Treo, but neither phones showed any devices in the list...I let it sit for like 5 minutes.
    a740 --> a900 --> Katana --> a900 --> a900m --> M1 --> a900m --> PPC6700 --> a900m--> 8400 --> a900m --> Treo 700wx --> Treo 800w
  2. alcedes's Avatar
    Posts
    13 Posts
    Global Posts
    17 Global Posts
    #62  
    Hey guys, the visible devices are the result of the NetBios functionality that is available with Windows CE. The phones respond with their name when they receive an appropriate UDP message over port 137. If you want proof I'll share the code after cleaning it up a good bit. Keep in mind that I have an AT&T phone and not a Sprint phone. So you'll need to verify this on Sprint for yourself. Also note that there are other devices with IP addresses visible on AT&T's network. But since they don't state their name Resco Explorer does not display them.

    And once again, I don't think that this is a big deal since I don't see that having knowledge on the name of some one's device is a big risk.

    Quote Originally Posted by Freak4Dell View Post
    I was at a Sprint store today, and I installed Resco onto a Mogul to see if I could share something and access it from my Treo, but neither phones showed any devices in the list...I let it sit for like 5 minutes.
    That may not mean anything. I took my device to Ohio and started Resco Explorer and was unable to see anything the entire time I was there.
  3. #63  
    Quote Originally Posted by alcedes View Post
    And once again, I don't think that this is a big deal since I don't see that having knowledge on the name of some one's device is a big risk.
    That's what Internet router makers used to think, till they found that bad hackers would attack something that might be found telling the world anything about its self on a network, till they found a way in.
  4. #64  
    Quote Originally Posted by alcedes View Post
    That may not mean anything. I took my device to Ohio and started Resco Explorer and was unable to see anything the entire time I was there.
    Yeah, it doesn't really mean anything. Just thought it was odd that neither phone found any devices, but my Treo found a bunch when I tried it out at home. Maybe caused by different towers or something.
    a740 --> a900 --> Katana --> a900 --> a900m --> M1 --> a900m --> PPC6700 --> a900m--> 8400 --> a900m --> Treo 700wx --> Treo 800w
  5. insol's Avatar
    Posts
    268 Posts
    Global Posts
    269 Global Posts
       #65  
    It seems that certain IP blocks don't have Netbios name filtering on them and other do. This point I think was made by Haus in an earlier post.
  6. alcedes's Avatar
    Posts
    13 Posts
    Global Posts
    17 Global Posts
    #66  
    Quote Originally Posted by insol View Post
    It seems that certain IP blocks don't have Netbios name filtering on them and other do. This point I think was made by Haus in an earlier post.
    You are right, he did make mention to it. And it may not be that the phones have the net bios port blocked but that they don't have anything implemented to respond to netbios request. Other scanning techniques show the presence of some of these devices that don't respond to netbios requests.


    I ran into a couple of limitations in some Windows Mobile builds. OEMs may or may not allow a time-out to be set on a network socket. If it is not set then when the code tries to listen for a response over the network it will wait forever if it never get's a response. I've not figured out how to forcibly terminate a socket read request and it inevitably leads to a resource link on many Windows Mobile devices (incidentally if I run the exact same binary on either the a desktop or a Windows CE/Mobile devices that has time-out functionality implemented then the program is able to function without causing the resource leak). I'd rather not post the executable while it has this behaviour.

    All that being said if there are any developers that would want to examine what was going on I've selectively copied and pasted the most relevant sections of the code (I may have introduced some syntax errors in the below, but all the functionality is there). Basically you would need to create a few threads (5-10) and have them to scan an IP range calling the below functionality for each IP address. You mar or may not get a response for each IP address. When you get a response then you know a device occupies that address.


    Code:
      
    // These are the bytes of the netbios request
    // that is sent out.  don't worry too much about
    // what the individual bytes mean
              NameRequest = new byte[]{ 
                0x80, 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x43, 0x4b, 0x41, 
                0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 
                0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 
                0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 
                0x41, 0x41, 0x41, 0x41, 0x41, 0x00, 0x00, 0x21, 
                0x00, 0x01 };
            }        //There doesn't seem to be an ASCII encoder on 
            //the smart phone platform, so I am performing 
            //manual conversion.
            const string EncodingTable =
                " !\"#$%&'()*+,-./0123456789:;<=>?" +
                "@ABCDEFGHIJKLMNOPQRSTUVWXYZ{\\}^_" +
                "`abcdefghijklmnopqrstuvwxyz{|}~";
            
    public bool GetName(IPAddress remoteAddress,out string remoteName)
            {
                int result;          
                bool retVal ;
                IPEndPoint ipRemoteEndPoint = new IPEndPoint(remoteAddress,137);
                EndPoint ipEndPoint = ipRemoteEndpoint;
               int bytesReceived = 0;
    _socket = new Socket(_localAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
                    IPEndPoint ipOriginEndPoint = new IPEndPoint(IPAddress.Any, 0);
                    _socket.Bind(ipOriginEndPoint);
                    // result holds the number of bytes sent. 
                    int result = _socket.SendTo(NameRequest, 0, NetBiosCaller.NameRequest.Length, SocketFlags.None, ipRemoteEndpoint);
    // without a timeout mechanism then the next line of code will wait forever if there is no response
                    bytesReceived = _socket.ReceiveFrom(_receiveBuffer, ref ipEndPoint);
    if (bytesReceived<57)
       return false;
    nameBuilder = new StringBuilder(16);
    int i = 57;
                    for (i = 57; (i < bytesReceived) && (_receiveBuffer[i] != 0); ++i)
                    {
                       //Perform bounds checking on the byte value before
                        //converting it to a character
                        int nChar = Math.Min(Math.Max((int)(_receiveBuffer[i]), 0x20), 0x127);
                        nameBuilder.Append(EncodingTable[nChar - 0x20]);
                    }
    remoteName = nameBuilder.ToString().Trim();
    return true;
    }
    
  7. #67  
    I've heard of this happening before over on ppcgeeks I believe is where I read it. I don't think anyone was ever able to connect to any of the other networked devices though. Still kinda weird and you would think Sprint is trying to lock that down!
    http://thatsballer.com for all of your tech news!
Page 4 of 4 FirstFirst 1234

Posting Permissions