Tweets
- Tweets, current page.
- Tweets & replies
- Media
You blocked @fasterthanlime
Are you sure you want to view these Tweets? Viewing Tweets won't unblock @fasterthanlime
-
Pinned Tweet
New #rustlang series
Making our own executable packer
In these articles, we dive into ELF, x86 instructions, memory mapping, gdb, dynamic loaders, and more.
The first article simply asks the question: What's in a Linux executable?https://fasterthanli.me/blog/2020/whats-in-a-linux-executable/ …Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
fasterthanlime Retweeted
Meanwhile, for $10+ Patreon supporters, Part 7 of "Making our own executable packer" just came out - it talks about dynamic symbol resolution, and performs cross-object relocations. By that point, we have a pretty solid understanding of what's going on!https://fasterthanli.me/blog/2020/dynamic-symbol-resolution/ …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
fasterthanlime Retweeted
How do ELF relocations work?
Previously, we've found one way a position-independent executable finds its data: RIP-relative addressing.
Now, we discuss *another way*: by straight up modifying the executable section, according to the relocation table!https://fasterthanli.me/blog/2020/elf-relocations/ …Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
tl;dr we need a "unfuckingsafe" keyword for the https://crates.io/crates/mmap crate
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The worst part is that you can't really write a sanitizer for mmap mis-use because remapping regions is 100% legitimate usage and something the dynamic linker does a bunch
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
There was another subtle bug btw: malloc/free misuse is SO EASY to identify as compared to mmap misuse. The memory manager will happily unmap crucial stuff from under you and it'll blow up way later.pic.twitter.com/Z4UANRnq6g
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Okay, after some additional bug-hunting, https://fasterthanli.me/blog/2020/dynamic-symbol-resolution/ … is all fixed up and our codebase should *not* blow up the minute we run it on real-world executables
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
lessons learned: - don't write articles while extremely tired
- mmap with MAP_FIXED is *way dangerous*
- using LLDB for day-to-day stuff sounds worth it
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
my current working theory is that one of my `mmap` calls is accidentally unmapping a previously-mapped region used as backing memory for a `Vec`, and when dropping the `Vec`, well, all hell breaks loose This only happens with large enough Vecs, so it didn't happen beforepic.twitter.com/QGyNt7TpiY
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
ooh, LLDB shows more deets, looks like it crashes when dropping `delf::ProgramHeader`pic.twitter.com/UeSoWrYsSG
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
it's trying to free a bit of memory that belongs to a region mmapped from a file whatpic.twitter.com/Tpfszoc8m5
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
I just got a free(): invalid pointer in a rust program (while unwinding) so, yeah, I need a quick break
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Meanwhile, for $10+ Patreon supporters, Part 7 of "Making our own executable packer" just came out - it talks about dynamic symbol resolution, and performs cross-object relocations. By that point, we have a pretty solid understanding of what's going on!https://fasterthanli.me/blog/2020/dynamic-symbol-resolution/ …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
How do ELF relocations work?
Previously, we've found one way a position-independent executable finds its data: RIP-relative addressing.
Now, we discuss *another way*: by straight up modifying the executable section, according to the relocation table!https://fasterthanli.me/blog/2020/elf-relocations/ …Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
fasterthanlime RetweetedThanks. Twitter will use this to make your timeline better. UndoUndo
-
Btw
#rustlang definitely allows you to do that because#rustlang knows you have stuff to do (and also doesn't make promises it can't keep)pic.twitter.com/UgwxYBtXy4
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
rust, go, compilers, music, gamedev
donate:
watch:
he/him
