正在加载视频...

视频加载失败

Memory safe Linux demo

54,432 次观看 • 1 年前 •via X (Twitter)

30 条评论

Igor Klopov 的头像
Igor Klopov1 年前

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 的头像
Filip Jerzy Pizło1 年前

Like this?

Igor Klopov 的头像
Igor Klopov1 年前

Yeah right! Missed that

𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】 的头像
𝒫𝑒𝓇 𝒜𝓇𝓃𝑒𝓃𝑔 【🐧λ🦀⎈】1 年前

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 的头像
Filip Jerzy Pizło1 年前

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

molleweide 的头像
molleweide1 年前

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

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło1 年前

@per_arneng Yeah. Games for example

Slendi 的头像
Slendi1 年前

Is this also memory safe with things like data races?

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło1 年前

@xslendix Yes

Nyx 的头像
Nyx1 年前

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 的头像
Filip Jerzy Pizło1 年前

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 的头像
Nyx1 年前

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 的头像
muxcore1 年前

Very cool!

iru@localhot 的头像
iru@localhot1 年前

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

spacemonkey 的头像
spacemonkey1 年前

Awesome

Darren Shepherd 的头像
Darren Shepherd1 年前

@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 的头像
t1 年前

why does rust even exist XD

Richard L ✈ 的头像
Richard L ✈1 年前

@chromatic_x @xorloser

Daniel Cook 的头像
Daniel Cook1 年前

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

Filip Jerzy Pizło 的头像
Filip Jerzy Pizło1 年前

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 的头像
Daniel Cook1 年前

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

2disbetter 的头像
2disbetter1 年前

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 的头像
Filip Jerzy Pizło1 年前

Next step is web browser

𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@geebee@bsd.network 的头像
𝒢𝒾𝒷𝓇𝒶𝓃 😈 🏴‍☠️@[email protected]1 年前

@awesomekling Great work 👏

Max Kupriianov 的头像
Max Kupriianov1 年前

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

John Doe 的头像
John Doe1 年前

👀

𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧 的头像
𝐃𝐫. 𝐀𝐛𝐢𝐢𝐫𝐚 𝐍𝐚𝐭𝐡𝐚𝐧1 年前

Video quality too low.

Sal ꙮ 的头像
Sal ꙮ1 年前

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 的头像
Shantanu Gadgil1 年前

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

Richard L ✈ 的头像
Richard L ✈1 年前

@ooPo

相关视频