如何从程序集生成 BPF 可执行文件

问题描述 投票:0回答:1

我想将 BPF 程序集转换为可执行文件。 例如,我得到了

entrypoint:
    div32 r1, 1768515945
    exit

我可以获得它的可执行文件吗?它应该由 bpf 虚拟机加载并执行。

llvm bpf
1个回答
0
投票

每条指令都是 64 位。这应该组装为:

00:  69 69 69 69 00 00 01 34
08:  00 00 00 00 00 00 00 90

第一个指令来自

BPF_DIV | BPF_K | BPF_ALU | (1 << 8) | (1768515945 << 32)
。第二个只是
BPF_EXIT
。有关更多信息,请参阅内核文档。请注意,
exit
期望
r0
包含返回代码,但您尚未明确设置任何返回代码。它应该默认为 0。

© www.soinside.com 2019 - 2024. All rights reserved.