首页
社区
课程
招聘
CMD 重定向到 socket,不能通过 socket发送命令让cmd执行
发表于: 2009-12-20 23:01 8687

CMD 重定向到 socket,不能通过 socket发送命令让cmd执行

2009-12-20 23:01
8687
程序的大体流程是这样的:
服务端server.exe 创建listen套接字,接收socket连接,并通过已建立的socket发送cmd命令给客户端,同时接收客户端返回的执行结果.

客户端test.exe利用 createprocess运行cmd程序,并把cmd的输入输出 通过管道重定向到socket.它将通过socket接收服务端发送过来的命令并通过管道传送给cmd执行,执行的结果经由管道到socket,再通过socket将执行结果发送到服务端.

实现过程中碰到一个问题 : 客户端cmd运行时开始的输出信息"Microsoft WindowsXp........G:\masm32"能顺利发送到服务端并显示,从服务端的发送的命令"dir+回车"能顺利被客户端接收并顺利通过管道输送至cmd,但是cmd并没有返回结果!!!不知道什么原因,请高手们帮帮小弟--!

目前猜测问题出现在服务器端发送的命令的结束符有问题, 再多一问:cmd判断命令结束的标识是什么?

整个源代码见附件!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也试过,把一个bat文件运行的输出通过管道输出到控制台程序中,
会显示,例如“dir不是内部也不是可执行程序”的信息,
但直接运行bat就行
2009-12-20 23:07
0
雪    币: 75
活跃值: (688)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
输入的命令格式有问题?自己olldbg cmd 程序吧--!
2009-12-21 11:57
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
LS你是说OLLYDBG吗?
bat也能反汇编,你牛
2009-12-21 12:02
0
雪    币: 75
活跃值: (688)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
我没说你的bat,我是说debug cmd程序,弄清它的输入命令格式
2009-12-21 15:42
0
雪    币: 75
活跃值: (688)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
olldbg了下cmd程序,cmd的输入 是:" unicode字符串"+0D 00 +0A 00 (1)
socket发送的命令是 :"ascci字符串"+0D+0A

把发送命令修改成 格式(1)后 发送 dir命令(64 00 69 00 72 00 0D 00 0A 00)  ,cmd有回显了,但可惜 不是想要的输出结果,它给我返回了一个 "more?"
郁闷錒,又卡住了
2009-12-21 22:22
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还是分析telnet看看吧,有人好像讨论过类似问题
2009-12-21 22:29
0
雪    币: 56
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我还没有想到什么办法 同求解.
2009-12-22 08:41
0
雪    币: 297
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
汇编代码开着辛苦啊。
这里有个c++的程序,你看是不是要这效果,代码暂时还没找到。
要是这个效果,再给你找代码吧:)
上传的附件:
2009-12-22 09:28
0
雪    币: 75
活跃值: (688)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
非常感谢楼上的各位
我 跟踪了下 netcat,发现 socket发送的命令格式是:"命令的ascci码"+0A
发送dir命令,即是 "64  69  72  0A ",能顺利得到回显结果
终于搞定,自己debug软件能力不到家,还要多学学,友情送分了--!
2009-12-22 10:20
0
游客
登录 | 注册 方可回帖
返回
//