mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 06:57:45 +00:00
Userland: Add LibSystem and funnel all syscalls through it
This achieves two things: - Programs can now intentionally perform arbitrary syscalls by calling syscall(). This allows us to work on things like syscall fuzzing. - It restricts the ability of userspace to make syscalls to a single 4KB page of code. In order to call the kernel directly, an attacker must now locate this page and call through it.
This commit is contained in:
parent
4df3a34bc2
commit
e87eac9273
47 changed files with 164 additions and 47 deletions
|
@ -27,13 +27,13 @@
|
|||
|
||||
#include <AK/Function.h>
|
||||
#include <AK/String.h>
|
||||
#include <Kernel/API/Syscall.h>
|
||||
#include <Kernel/IO.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/wait.h>
|
||||
#include <syscall.h>
|
||||
|
||||
#pragma GCC optimize("O0")
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <AK/NonnullOwnPtr.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <AK/kmalloc.h>
|
||||
#include <Kernel/API/Syscall.h>
|
||||
#include <LibC/sys/arch/i386/regs.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/File.h>
|
||||
|
@ -45,6 +44,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static OwnPtr<Debug::DebugSession> g_debug_session;
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <Kernel/API/Syscall.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <serenity.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <AK/Assertions.h>
|
||||
#include <AK/LogStream.h>
|
||||
#include <AK/Types.h>
|
||||
#include <Kernel/API/Syscall.h>
|
||||
#include <LibC/sys/arch/i386/regs.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/File.h>
|
||||
|
@ -37,6 +36,7 @@
|
|||
#include <string.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/wait.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static int g_pid = -1;
|
||||
|
|
|
@ -24,13 +24,13 @@
|
|||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <Kernel/API/Syscall.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if !defined __ENUMERATE_SYSCALL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue