zoukankan      html  css  js  c++  java
  • netcat源代码分析(4)doexec.c文件中的SessionWriteShellThreadFn ()函数

    // **********************************************************************
    // SessionWriteShellThreadFn
    //
    // The write thread procedure. Reads from socket, writes to pipe connected
    // to shell process.  


    static VOID
    SessionWriteShellThreadFn(
        LPVOID Parameter
        )
    {
        PSESSION_DATA Session = Parameter;
        BYTE    RecvBuffer[1];
        BYTE    Buffer[BUFFER_SIZE];
        DWORD   BytesWritten;
        DWORD   BufferCnt;

        BufferCnt = 0;

        //
        // Loop, reading one byte at a time from the socket.    
        //
        while (recv(Session->ClientSocket, RecvBuffer, sizeof(RecvBuffer), 0) != 0) {

            Buffer[BufferCnt++] = RecvBuffer[0];
            if (RecvBuffer[0] == '\r')
                    Buffer[BufferCnt++] = '\n';


            // Trap exit as it causes problems
            if (strnicmp(Buffer, "exit\r\n", 6) == 0)        //注意,如果接受到exit回车,则结束。
                ExitThread(0);


            //
            // If we got a CR, it's time to send what we've buffered up down to the
            // shell process.
            // SECURITY FIX: CW 12/27/04 Add BufferCnt size check.  If we hit end of buffer, flush it
            if (RecvBuffer[0] == '\n' || RecvBuffer[0] == '\r' || BufferCnt > BUFFER_SIZE-1) {
                if (! WriteFile(Session->WritePipeHandle, Buffer, BufferCnt,
                                &BytesWritten, NULL))
                {
                    break;
                }
                BufferCnt = 0;
            }
        }

        ExitThread(0);
    }

  • 相关阅读:
    homebrew
    Flutter状态管理之provide和provider的使用区别
    Flutter Bloc状态管理 简单上手
    Flutter 路由传入中文参数报错无法push问题
    Flutter 一些常用第三方库、插件
    js替换字符串中的空格,换行符 或 替换成<br>
    Flutter状态管理Provider,简单上手
    Flutter Resolving dependencies...很慢解决办法
    Flutter布局--appbar导航栏和状态栏
    Flutter运行报错 `kernel_snapshot for errors` 解决方案
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3037473.html
Copyright © 2011-2022 走看看