Berkeley Packet Filter (BPF) assembler.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
maze 348e672a15 Docfix před 11 měsíci
cmd/bpfasm Added Program.Verify method před 11 měsíci
internal/parser Cleanup před 11 měsíci
testdata Initial import před 11 měsíci
.gitignore Renamed BPF ANTLR module to Assembler před 11 měsíci
LICENSE Updated license před 11 měsíci
Makefile Renamed BPF ANTLR module to Assembler před 11 měsíci
README.md Docfix před 11 měsíci
assembler.go Added Program.Verify method před 11 měsíci
bpf.go Supply type aliases for the bpf package před 11 měsíci
doc.go Initial import před 11 měsíci
go.mod More representable bpfasm command line tool před 11 měsíci
go.sum More representable bpfasm command line tool před 11 měsíci
parse.go Updated license před 11 měsíci
program.go Added Program.Verify method před 11 měsíci
vm.go Added Program.Verify method před 11 měsíci
vm_alu_test.go Updated license před 11 měsíci
vm_debug.go Updated license před 11 měsíci
vm_extension_test.go Updated license před 11 měsíci
vm_jump_test.go Updated license před 11 měsíci
vm_load_test.go Ported the bpf vm with pluggable extensions před 11 měsíci
vm_registers.go Ported the bpf vm with pluggable extensions před 11 měsíci
vm_ret_test.go Ported the bpf vm with pluggable extensions před 11 měsíci
vm_scratch_test.go Updated license před 11 měsíci
vm_test.go Updated license před 11 měsíci

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.