Berkeley Packet Filter (BPF) assembler.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
maze 348e672a15 Docfix vor 11 Monaten
cmd/bpfasm Added Program.Verify method vor 11 Monaten
internal/parser Cleanup vor 11 Monaten
testdata Initial import vor 11 Monaten
.gitignore Renamed BPF ANTLR module to Assembler vor 11 Monaten
LICENSE Updated license vor 11 Monaten
Makefile Renamed BPF ANTLR module to Assembler vor 11 Monaten
README.md Docfix vor 11 Monaten
assembler.go Added Program.Verify method vor 11 Monaten
bpf.go Supply type aliases for the bpf package vor 11 Monaten
doc.go Initial import vor 11 Monaten
go.mod More representable bpfasm command line tool vor 11 Monaten
go.sum More representable bpfasm command line tool vor 11 Monaten
parse.go Updated license vor 11 Monaten
program.go Added Program.Verify method vor 11 Monaten
vm.go Added Program.Verify method vor 11 Monaten
vm_alu_test.go Updated license vor 11 Monaten
vm_debug.go Updated license vor 11 Monaten
vm_extension_test.go Updated license vor 11 Monaten
vm_jump_test.go Updated license vor 11 Monaten
vm_load_test.go Ported the bpf vm with pluggable extensions vor 11 Monaten
vm_registers.go Ported the bpf vm with pluggable extensions vor 11 Monaten
vm_ret_test.go Ported the bpf vm with pluggable extensions vor 11 Monaten
vm_scratch_test.go Updated license vor 11 Monaten
vm_test.go Updated license vor 11 Monaten

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

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.