That said, I have no idea what works and what doesn't for security. I'm just asking questions, too. :)
That said, I have no idea what works and what doesn't for security. I'm just asking questions, too. :)
Can you explain in a bit more detail how I navigate this randomized table as a syscall user to call the right one? I call socket(), say. And that is mapped to index 12 of the randomized syscall table. How is it found at runtime?
One drawback here is that your simple hello-world write/printf in assembly becomes complicated, because you need to get the table address so you can access the write/exit information. As far as what this would help for security, I have no idea, other than making it harder to exploit cases where you don't have a lot of room.
We don't hear a lot about all the exploits that didn't happen because of all the extra hoops you have to jump through with each change over the years.