Loading video...

Video Failed to Load

Go Home

54,432 views • 1 year ago •via X (Twitter)

30 Comments

Igor Klopov's profile picture
Igor Klopov1 year 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ło1 year ago

Like this?

Igor Klopov's profile picture
Igor Klopov1 year ago

Yeah right! Missed that

𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】's profile picture
𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】1 year 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ło1 year 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
molleweide1 year 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ło1 year ago

@per_arneng Yeah. Games for example

Slendi's profile picture
Slendi1 year ago

Is this also memory safe with things like data races?

Filip Jerzy Pizło's profile picture
Filip Jerzy Pizło1 year ago

@xslendix Yes

Nyx's profile picture
Nyx1 year 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ło1 year 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
Nyx1 year 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
muxcore1 year ago

Very cool!

iru@localhot's profile picture
iru@localhot1 year ago

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

spacemonkey's profile picture
spacemonkey1 year ago

Awesome

Darren Shepherd's profile picture
Darren Shepherd1 year 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
t1 year ago

why does rust even exist XD

Richard L ✈'s profile picture
Richard L ✈1 year ago

@chromatic_x @xorloser

Daniel Cook's profile picture
Daniel Cook1 year 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ło1 year 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 Cook1 year 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
2disbetter1 year 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ło1 year ago

Next step is web browser

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

@awesomekling Great work 👏

Max Kupriianov's profile picture
Max Kupriianov1 year ago

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

John Doe's profile picture
John Doe1 year ago

👀

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

Video quality too low.

Sal ꙮ's profile picture
Sal ꙮ1 year 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 Gadgil1 year 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 ✈1 year ago

@ooPo

Related Videos