اصولا فرمت خروجي جعبه شن پارسا سازگار با زبان C++ و کاملا منطبق با طريقه فراخواني اين توابع ميباشد. به عبارتي ميتوان گفت اين جعبه شن قادر به نمايش کد سطح بالاي برنامه تحت تحليل ميباشد. در زير توابعي که در خروجي شبکه نمايش داده ميشود، به همراه معنا و پارامترهاي آن ارائه شده است. خواندن اين بخش براي کساني که آشنايي کافي با برنامهنويسي WinSocks ندارند، الزامي است.
اين تابع سه آرگومان ميگيرد. اولين آرگومان از نوع يک سوکت است که با تابع Socket درست شده، و آرگومان دوم اشارهگر به ساختاري از نوع sockaddr ميباشد، که اين ساختار نشاندهنده آدرس و نوع آدرس است. آرگومان سوم طول ساختاري است که آرگومان دوم به آن اشاره ميکند.
به عنوان مثال خروجي زير نشان ميدهد که برنامه تحت تحليل به پورت شماره 4910 از نوع TCP، Bind کرده است.
//PID=8004,TID=7420,Time=27944580846
SOCKET Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
SockAddr.sin_port=htons(4910);
SockAddr.sin_family=AF_INET;
inet_pton(AF_INET,"0.0.0.0",&SockAddr.sin_addr);
bind(Socket,(SOCKADDR*)&SockAddr,sizeof(SockAddr));
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms737550(v=vs.85).aspx
اين تابع داراي دو آرگومان ورودي دارد. آرگومان اول از نوع يک سوکت است که با تابع Socket ايجاد شده، و آرگومان دوم تعداد درخواستهاي ارتباطي است که تابع Listen آنها را در صف خود قرار ميدهد.
به عنوان مثال خروجي زير نشان ميدهد که برنامه تحت تحليل بر روي پورت 9000 سيستم گوش وايستاده است.
//PID=7828,TID=7140,Time=28193662938
listen(Socket,SOMAXCONN); //Socket is binded to: 127.0.0.1:9000
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms739168(v=vs.85).aspx
به عنوان مثال خروجي زير را مشاهده فرماييد:
//PID=6500,TID=7032,Time=29679014845
host=gethostbyname("109.228.17.205");
SockAddr.sin_port=htons(22);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr));
اين خروجي نشان ميدهد برنامه تحت تحليل به پورت شماره 22 از آدرس 109.228.17.205 متصل شده است.
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms737625(v=vs.85).aspx
به عنوان مثال خروجي زير نشان ميدهد برنامه تحت تحليل از پورت شماره 5612، بايتهاي نمايش داده شده را دريافت کرده است.
//PID=5236,TID=6612,Time=30310404041
recv(Socket,buff,10,?); //Socket is connected to: 127.0.0.1:5612
/*buff content is:
{0xc4,0x40,0x41,0x5f,0x41,0x5e,0x41,0x5d,0x41,0x5c...
*/
جهت کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v=vs.85).aspx
به عنوان مثال خروجي زير را مشاهده فرماييد. اين خروجي نشان ميدهد که برنامه تحت تحليل، 358 بايت داده به پورت HTTPS از آدرس 207.46.194.14 ارسال کرده است.
//PID=8996,TID=5440,Time=32236350018
PCHAR buff={0x16,0x3,0x3,0x1,0x6,0x10,0x0,0x1,0x2,0x1...
send(Socket,buff,358,?); //Socket is connected to: 207.46.194.14:443
اطلاعات بيشتر راجع به اين تابع در لينک زير موجود است:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740149(v=vs.85).aspx
اين تابع شش آرگومان دارد. آرگومان اول از نوع سوکت و آرگومان دوم اشارهگر به بافري است که داده در آنجا ذخيره خواهد شد. آرگومان سوم طول بافر، و آرگومان چهارم مجموعه پرچمهايي است که ميتوانند در روند کار اين تابع تاثير بگذارند. آرگومان پنجم اشارهگر به ساختاري از نوع sockaddr ميباشد، که آدرس سوکت منبع را در خود نگه ميدارد. آرگومان ششم طول آرگومان پنجم است.
در مثال زير، برنامه تحت تحليل دادههاي نشان داده شده را از پورت 64879 و آدرس 127.0.0.1 دريافت کرده است.
//PID=9164,TID=3736,Time=34244859227
host=gethostbyname("127.0.0.1");
SockAddr.sin_port=htons(64879);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
recvfrom(Socket,RecvBuf,BufLen,0,(SOCKADDR*)&SockAddrr,sizeof(SockAddr));
/*buff contents:
{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x73...
*/
اطلاعات بيشتر راجع به اين تابع در لينک زير موجود است:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740120(v=vs.85).aspx
آرگومان اول اين تابع يک سوکت، آرگومان دوم آن اشارهگر به بافري است که بايد ارسال شود، آرگومان سوم طول بافر، آرگومان چهارم مجموعه پرچمهايي هستند که مي توانند در روند کار اين تابع تاثير بگذارند. آرگومان پنجم اشارهگري به ساختار Sockaddr است، که آدرس سوکت مقصد را در خود دارد. آرگومان ششم طول آرگومان پنجم است.
در مثال زير، برنامه تحت تحليل دادههاي موجود در متغير buf را به پورت 27015 از آدرس 127.0.0.1 ارسال کرده است.
//PID=6288,TID=8300,Time=35351131915
host=gethostbyname("127.0.0.1");
SockAddr.sin_port=htons(27015);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
PCHAR buf={0xc1,0xd7,0x69,0x87,0x4,0x8,0x0,0x0,0x74,0x68...
sendto(Socket,SendBuf,BufLen,0,(SOCKADDR*)&SockAddr,sizeof(SockAddr));
براي کسب اطلاعات بيشتر راجع به اين تابع مراجعه کنيد به:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740148(v=vs.85).aspx