Loading video...

Video Failed to Load

Go Home

54,417 views • 11 months ago •via X (Twitter)

30 Comments

Igor Klopov's profile picture
Igor Klopov11 months ago

Awesome! I wonder if it's easy for you to compile a vulnerable version of some software with regular C, run an exploit agaist it, get an RCE or so, and then do the same but compile that software with FilC first. This way you show the practical purpose of your memory safety

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

Like this?

Igor Klopov's profile picture
Igor Klopov11 months ago

Yeah right! Missed that

𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】's profile picture
𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】11 months ago

Nice work 💪 interesting to see it action 🤩 what would you estimate on average in % slower than C and memory usage compared to C? This could initially be very interesting for security critical systems.

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

It’s measurably slower and uses measurably more memory. But like my demo shows, you won’t notice it as a user

molleweide's profile picture
molleweide11 months ago

@per_arneng Are there any user domains where it would be noticeable assuming FilC would become more widespread?

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

@per_arneng Yeah. Games for example

Slendi's profile picture
Slendi11 months ago

Is this also memory safe with things like data races?

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

@xslendix Yes

Nyx's profile picture
Nyx11 months ago

Very nice demo, and this looks great. I’m curious what the output of that stack traces is when you don’t include debug information, or does fil-c always embed debug information?

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

The file name and line number become “<somewhere>” Inline frames are collapsed. But at least currently, I still keep function names. I might add an option to strip those (folks wanting minimum footprint will appreciate that)

Nyx's profile picture
Nyx11 months ago

I do have a concern though that it would open the executable up to easier reverse engineering. But that is a different issue and the goal is memory safety.

muxcore's profile picture
muxcore11 months ago

Very cool!

iru@localhot's profile picture
iru@localhot11 months ago

> mfw I heard SystemV. > mfw I have no face

spacemonkey's profile picture
spacemonkey11 months ago

Awesome

Darren Shepherd's profile picture
Darren Shepherd11 months ago

@awesomekling I'm gonna be the guy that ignores all this incredible work that clearly took an immense amount of time to create and only comment on the squeaky chair.

t's profile picture
t11 months ago

why does rust even exist XD

Richard L ✈'s profile picture
Richard L ✈11 months ago

@chromatic_x @xorloser

Daniel Cook's profile picture
Daniel Cook11 months ago

Probably would be even more useful to have a fil-c user space in a docker container

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

What would be the value of having the memory safe stuff inside a container? I imagine you might want the opposite: - Your host OS has a memory safe userland - If you want to run unsafe code (for perf reasons) you do it in a container

Daniel Cook's profile picture
Daniel Cook11 months ago

To make it easier to cross compile stuff when you need access to a bunch of system packages through pkg-config

2disbetter's profile picture
2disbetter11 months ago

Excellent work and thanks for sharing! Any chance you wanna take on another DE / composter and push further into userland? If that is a silly question, let me rephrase: what is the next step?

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło11 months ago

Next step is web browser

𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@geebee@bsd.network's profile picture
𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@[email protected]11 months ago

@awesomekling Great work 👏

Max Kupriianov's profile picture
Max Kupriianov11 months ago

Awesome background!! but, with all seriousness thanks for the rundown, really provides very useful context for understanding.

John Doe's profile picture
John Doe11 months ago

👀

𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧's profile picture
𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧11 months ago

Video quality too low.

Sal ꙮ's profile picture
Sal ꙮ11 months ago

This is great! Is there a write up somewhere describing how invisicaps are actually implemented? IIUC, they are created/used at runtime, not compile time.

Shantanu Gadgil's profile picture
Shantanu Gadgil11 months ago

Would you consider uploading this to YouTube as well? (easier to share a "here, watch this" link with folks) 🙂

Richard L ✈'s profile picture
Richard L ✈11 months ago

@ooPo

Related Videos