小编Jan*_*cki的帖子

如何使用Golang组合原始TCP数据包(使用gopacket)并通过原始套接字发送它

我想使用gopacket制作客户端TCP数据包,然后使用原始套接字发送它们.

这是一个简短易读的示例程序,演示了我想要做的事情:

package main

import (
    "code.google.com/p/gopacket"
    "code.google.com/p/gopacket/examples/util"
    "code.google.com/p/gopacket/layers"
    "log"
    "net"
)

func main() {
    defer util.Run()()

    // XXX create tcp/ip packet
    srcIP := net.ParseIP("127.0.0.1")
    dstIP := net.ParseIP("192.168.0.1")
    //srcIPaddr := net.IPAddr{
    //  IP: srcIP,
    //}
    dstIPaddr := net.IPAddr{
        IP: dstIP,
    }
    ipLayer := layers.IPv4{
        SrcIP:    srcIP,
        DstIP:    dstIP,
        Protocol: layers.IPProtocolTCP,
    }
    tcpLayer := layers.TCP{
        SrcPort: layers.TCPPort(666),
        DstPort: layers.TCPPort(22),
        SYN:     true,
    }
    tcpLayer.SetNetworkLayerForChecksum(&ipLayer)
    buf := gopacket.NewSerializeBuffer()
    opts := gopacket.SerializeOptions{
        FixLengths:       true,
        ComputeChecksums: true,
    }
    err := gopacket.SerializeLayers(buf, opts, &ipLayer, &tcpLayer)
    if …
Run Code Online (Sandbox Code Playgroud)

sockets tcp raw-sockets go gopacket

7
推荐指数
1
解决办法
1万
查看次数

在Windows 64bit上编译gopacket

我正在尝试在我的Windows 10上使用gopacket.
我正在使用它来嗅探并直接向NIC注入数据包.
我可以使用GOARCH = 386轻松编译和运行我的代码,但不能在GOARCH = amd64中.

值得注意的是:我不是在尝试交叉编译.
我正在使用go1.6.windows-386来编译32位版本,当我尝试用GOARCH = amd64编译时,我使用go1.6.windows-amd64.

我使用TDM-GCC作为linux编译工具.
该错误不是指示性的.它只是说

c:/WpdPack/Lib/x64/wpcap.lib: error adding symbols: File in wrong format collect2.exe: error ld returned 1 exit status

有没有人设法建立这个,如果它甚至可能?

winpcap go cgo gopacket

7
推荐指数
1
解决办法
4848
查看次数

使用货物构建箱子时无效的SSL证书

在定义依赖项(rand="0.3.0")之后尝试从教程(猜谜游戏)中的示例时,我得到了这个:

$ cargo build --verbose
    Updating registry `https://github.com/rust-lang/crates.io-index`
Unable to update registry https://github.com/rust-lang/crates.io-index

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  [16] The SSL certificate is invalid
Run Code Online (Sandbox Code Playgroud)

将此添加到货物注册表git repo,但没有成功:

[http]
    sslVerify = false
Run Code Online (Sandbox Code Playgroud)

在哪里挖?

ssl github ssl-certificate rust rust-cargo

6
推荐指数
1
解决办法
1256
查看次数

标签 统计

go ×2

gopacket ×2

cgo ×1

github ×1

raw-sockets ×1

rust ×1

rust-cargo ×1

sockets ×1

ssl ×1

ssl-certificate ×1

tcp ×1

winpcap ×1