当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : update netcat 1.14 to 1.15
帖子发表于 : 2013-05-11 17:00 

注册: 2007-11-27 11:43
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
update netcat 1.14 to 1.15

modify by chenghao0511#gmail.com 2013/05/11

why?

netcat 1.14 can not support :
nc -u -lp port -e cmd.exe
nc -u ip port


how to update:(in doexec.c in SessionWriteShellThreadFn)


- BYTE RecvBuffer[1];

+ BYTE RecvBuffer[8192];

- BYTE Buffer[BUFFER_SIZE];

- while (recv(Session->ClientSocket, RecvBuffer, sizeof(RecvBuffer), 0) != 0) {

+ while ((BufferCnt = 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\n", 5) == 0)
- 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;
}


changed to:

//if (RecvBuffer[0] == '\n' || RecvBuffer[0] == '\r' || BufferCnt > BUFFER_SIZE-1) {
if (! WriteFile(Session->WritePipeHandle, RecvBuffer, BufferCnt,
&BytesWritten, NULL))
{
break;
}
BufferCnt = 0;
//}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译