Open SolalPirelli opened 1 year ago
BPF programs might be a good showcase.
Good idea, I'll check with the hierachy :)
Hoo, a bunch of existing programs to try klint on: https://github.com/zoidbergwill/awesome-ebpf#examples Correct me if I'm wrong, there is (or was) support for eBPF Maps in code?
There was indeed, IIRC the main difference from Klint's map_* stuff is that BPF maps copy keys and values rather than partially owning key poiners.
quick update: the hierarchy validated :partying_face:
support for eBPF in angr is in progress at https://github.com/angr/angr-platforms/pull/55
@tharvik any news on this?
upstream isn't really proactive, I bumped them, hopefully we'll have some news this week.
anyway, the PR is working (minus relocation & some specials instructions), feel free to use it, I'm happy to help with/fix any issue you might encounter.
I see the PR was merged 🎉 I guess angr-platforms should become a dependency of klint now? I don't know how the packaging of it works (so that we can point Klint to an ebpf binary and it "just works")
yeah, it took a while but it finally landed :partying_face:
I guess angr-platforms should become a dependency of klint now?
yep, it's quite easy in fact. as each angr arch register itself on import, you simply have to import angr_platforms.ebpf
to support it.
and for the dep itself, it seems that it's not available via pip.. but you can depend on its git by adding a
"angr-platforms @ git+https://github.com/angr/angr-platforms.git"
item in the dependencies' array.
@tharvik in case that's in line with the C4DT's priorities, having Klint work on BPF programs directly (not the hacky stuff from the paper) might be a good showcase.
A student had almost finished BPF ISA support for angr in a semester project with me, but some issues cropped up in the actual PR and I guess there wasn't time after the semester to finish it. Maybe it can be resurrected? https://github.com/angr/angr-platforms/pull/46