Berkeley Packet Filter (BPF) assembler. https://godoc.org/maze.io/x/bpf
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
maze 348e672a15 Docfix 5ヶ月前
cmd/bpfasm Added Program.Verify method 5ヶ月前
internal/parser Cleanup 5ヶ月前
testdata Initial import 5ヶ月前
.gitignore Renamed BPF ANTLR module to Assembler 5ヶ月前
LICENSE Updated license 5ヶ月前
Makefile Renamed BPF ANTLR module to Assembler 5ヶ月前
README.md Docfix 5ヶ月前
assembler.go Added Program.Verify method 5ヶ月前
bpf.go Supply type aliases for the bpf package 5ヶ月前
doc.go Initial import 5ヶ月前
go.mod More representable bpfasm command line tool 5ヶ月前
go.sum More representable bpfasm command line tool 5ヶ月前
parse.go Updated license 5ヶ月前
program.go Added Program.Verify method 5ヶ月前
vm.go Added Program.Verify method 5ヶ月前
vm_alu_test.go Updated license 5ヶ月前
vm_debug.go Updated license 5ヶ月前
vm_extension_test.go Updated license 5ヶ月前
vm_jump_test.go Updated license 5ヶ月前
vm_load_test.go Ported the bpf vm with pluggable extensions 5ヶ月前
vm_registers.go Ported the bpf vm with pluggable extensions 5ヶ月前
vm_ret_test.go Ported the bpf vm with pluggable extensions 5ヶ月前
vm_scratch_test.go Updated license 5ヶ月前
vm_test.go Updated license 5ヶ月前

README.md

bpf

Berkeley Packet Filter (BPF) assembler.

Installation

Easy as running go get:

~$ go get maze.io/x/bpf/cmd/bpfasm

Usage

Compiling an assembly file:

demo.asm contents:

; icmp random packet sampling, 1 in 4
        ldh 	[12]
        jne 	#0x800, drop
        ldb 	[23]
        jneq 	#1, drop
        ; get a random uint32 number
        ld      rand
        mod 	#4
        jneq 	#1, drop
        ret 	#-1
drop:	ret 	#0

Assembling to (big endian) binary:

~$ bpfasm assemble demo.asm
writing to demo.asm.bin

Disassembling:

~$ bpfasm disassemble demo.asm.bin
ld     #12
jne    #2048,6
ld     #23
jneq   #1,4
ld     #rand
mod    #4
jneq   #1,1
ret    #4294967295
ret    #0

Copyright

The assembler parser and compiler are © 2019 Wijnand Modderman-Lenstra.

The assembler virtual machine and opcode assembler are © 2009, 2016 The Go Authors.

For more details, see the LICENSE.