Linux ssh字符流处理

yu275184637 2014-05-23 11:25:44
修改openssh,捕获openssh回显的字符流,发现里边包含了所有操作的数据,但是最终我通过终端看到的却是最后的结果数据。我该如何处理一下捕获的数据,将它处理成最终的数据。如下:

捕获的数据:
fjsdlfsdlfsadjlfdsjaflksad^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[[K^[[D^[
[K^[[D^[[K^[[D^[[K^[[D^[[Kfds^[[D^[[Kaf^[[D^[[Kdsaf^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[7Pexit^[[D^[[D^[[D^[[D^[[2Plsf^[[D^[[D^[[Dexitsd^Gafds^[[D^[[D^[[D^[[D^[[D^[[D
^[[D^[[D^[[D^[[Dlsf^[[Kf^[[D^[[D^[[D^[[Dexit^[[D^[[D^[[D^[[D^[[1Plsf^[[D^[[D^[[Dexit^[[D^[[D^[[D^[[Dfjsdfdadsaf^G^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[7Pexit^[[D^[[D^[
[D^[[Dfjsdfdadsaf^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[7Pexit^[[D^[[D^[[D^[[D^[[1Plsf^[[D^[[D^[[Dexitsd^G^G^G^[[D^[[D^[[D^[[D^[[D^[[D^[[3Plsf^[[D^[[D^[[Dexitsd^[[D^[[D
^[[D^[[D^[[D^[[D^[[3Plsf^[[D^[[D^[[Dexit^[[D^[[D^[[D^[[D^[[1Plsf^[[D^[[D^[[Dexitsd^[[D^[[D^[[D^[[D^[[D^[[D^[[3Plsf^[[D^[[D^[[Dexitsd^[[D^[[D^[[D^[[D^[[D^[[D^[[3Plsf^[[D^[[D^[[D
exit


终端显示的数据:
exit


我发现在终端使用cat命令 cat捕获数据文件显示的也是exit 。如下图:

其实tmp1.c中数据是捕获的数据。如下图:


所以我认为是终端标准输出处理了字符串数据,现在找不到方法切入。请问我该从哪方面下手,google什么关键词。或者有什么开源程序能够处理这样的字符串可供参阅。 求助!求助!求助!
...全文
207 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu275184637 2014-05-28
  • 打赏
  • 举报
回复
引用 5 楼 justkk 的回复:
man forkpty
大神,我用forkpty试了,不管用,子进程给父进程发送的数据仍然是原数据。。。。
yu275184637 2014-05-27
  • 打赏
  • 举报
回复
引用 5 楼 justkk 的回复:
man forkpty
你好,昨天看了一下forkpty,没有弄明白如何用伪终端来处理程序。恳请大哥写一段小例子回复我帖子上可以么?不胜感激!!! 例如,使用伪终端方法读一个文件数据,然后处理完再输出到另一个文件。谢谢!
justkk 2014-05-23
  • 打赏
  • 举报
回复
能不能使用伪终端技术?
在程序中模拟一个终端,执行你的命令,然后写入输入,读取输出

这样你读到的数据都是终端处理过的,应该没有控制字符了
yu275184637 2014-05-23
  • 打赏
  • 举报
回复
引用 1 楼 justkk 的回复:
这应该就是终端设备的一些控制属性了。 那个文件里面有一些控制字符,估计是控制退格什么的 找找终端控制字符或终端属性
谢谢您,是这样的。 我现在想在程序中直接写一个函数处理一下这些捕获的字符串,然后记录成操作日志。请问有没有什么处理这类型数据的源码?
justkk 2014-05-23
  • 打赏
  • 举报
回复
这应该就是终端设备的一些控制属性了。
那个文件里面有一些控制字符,估计是控制退格什么的

找找终端控制字符或终端属性
yu275184637 2014-05-23
  • 打赏
  • 举报
回复
引用 5 楼 justkk 的回复:
man forkpty
谢谢,我研究一下
justkk 2014-05-23
  • 打赏
  • 举报
回复
man forkpty
yu275184637 2014-05-23
  • 打赏
  • 举报
回复
引用 3 楼 justkk 的回复:
能不能使用伪终端技术? 在程序中模拟一个终端,执行你的命令,然后写入输入,读取输出 这样你读到的数据都是终端处理过的,应该没有控制字符了
为终端技术,不了解啊,有没有什么相关参考给一下,不胜感激

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧