خروجی شبکه

اصولا فرمت خروجي جعبه شن پارسا سازگار با زبان C++ و کاملا منطبق با طريقه فراخواني اين توابع مي‌باشد. به عبارتي مي‌توان گفت اين جعبه شن قادر به نمايش کد سطح بالاي برنامه تحت تحليل مي‌باشد. در زير توابعي که در خروجي شبکه نمايش داده مي‌شود، به همراه معنا و پارامتر‌هاي آن ارائه شده است. خواندن اين بخش براي کساني که آشنايي کافي با برنامه‌نويسي WinSocks ندارند، الزامي است.

  1. فرمت خروجي تابع Bind: اين تابع يک آدرس محلي را با يک Socket مرتبط مي­سازد. زماني که يک سوکت توسط دستور Socket ايجاد مي­شود، نوع آدرس مي­تواند مشخص شود، ولي تخصيص آدرس به آن سوکت توسط تابع Bind انجام مي‌شود. همچنين Socket نبايد به جايي Connect باشد، يعني قبل از هرگونه Listen و Connect بايد عمل Bind صورت گيرد.

    اين تابع سه آرگومان مي­گيرد. اولين آرگومان از نوع يک سوکت است که با تابع 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

  2. فرمت خروجي تابع listen: اين تابع بر روي پورت گوش واي‌مي‌ايستد، تا يک درخواست اتصال به آن پورت ارسال گردد.

    اين تابع داراي دو آرگومان ورودي دارد. آرگومان اول از نوع يک سوکت است که با تابع 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

  3. فرمت خروجي تابع connect: اين تابع براي ايجاد ارتباط با يک مقصد مشخص استفاده مي­شود. تابع connect سه آرگومان ورودي مي‌گيرد. آرگومان اول از نوع يک سوکت که با دستور Socket ايجاد شده، و آرگومان دوم اشاره­‌گر به يک ساختار sockaddr مي­باشد. اين ساختار آدرس و نوعش را نگهداري مي­کند. آرگومان سوم طول ساختار sockaddr مي‌باشد.

    به عنوان مثال خروجي زير را مشاهده فرماييد:

    //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

  4. فرمت خروجي تابع recv:  اين تابع براي دريافت داده­‌هاي ورودي از يک سوکت استفاده مي‌­شود. اين تابع چهار آرگومان دارد. آرگومان اول از نوع سوکت، آرگومان دوم اشاره‌­گر به بافري است که داده دريافت شده در آن ذخيره خواهد شد. آرگومان سوم طول بافر و آرگومان چهارم پرچم‌هايي هستند که در رفتار اين تابع تاثير مي­‌گذارند.

    به عنوان مثال خروجي زير نشان مي‌دهد برنامه تحت تحليل از پورت شماره 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

  5. فرمت خروجي تابع send: تابع send به مقصد مشخص داده ارسال مي‌کند. اين تابع چهار آرگومان دارد. آرگومان اول از نوع سوکت، آرگومان دوم اشاره­‌گر به بافري است که محتواي آن بايد ارسال شود. آرگومان سوم طول بافر و آرگومان چهارم پرچم‌هايي هستند که در رفتار اين تابع تاثير مي­‌گذارند.

    به عنوان مثال خروجي زير را مشاهده فرماييد. اين خروجي نشان مي‌دهد که برنامه تحت تحليل، 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

  6. فرمت خروجي تابع recvfrom: اين تابع براي ارسال داده به پورت UDP استفاده مي‌شود.

    اين تابع شش آرگومان دارد. آرگومان اول از نوع سوکت و آرگومان دوم اشاره‌­گر به بافري است که داده  در آنجا ذخيره خواهد شد. آرگومان سوم طول بافر، و آرگومان چهارم مجموعه پرچم‌هايي است که مي‌توانند در روند کار اين تابع تاثير بگذارند. آرگومان پنجم اشاره‌­گر به ساختاري از نوع 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

  7. فرمت خروجي تابع sendto: اين تابع براي ارسال داده به پورت UDP استفاده مي‌شود.

    آرگومان اول اين تابع يک سوکت، آرگومان دوم آن اشاره‌­گر به بافري است که بايد ارسال شود، آرگومان سوم طول بافر، آرگومان چهارم مجموعه پرچم‌هايي هستند که مي توانند در روند کار اين تابع تاثير بگذارند. آرگومان پنجم اشاره­‌گري به ساختار 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

نمی‌توانید پاسخی پیدا کنید؟ آیا به دنبال مقاله خاصی هستید که در سؤالات عمومی قرار دارد؟ فقط پوشه ها و دسته بندی های مختلف مربوطه را مرور کنید و سپس مقاله مورد نظر خود را پیدا خواهید کرد.
تمامی حقوق مادی و معنوی این سایت متعلق به شرکت مهندسی دنیای فناوری امن ویرا می‌باشد.