mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:37:34 +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
|
@ -10,11 +10,12 @@ set(ELF_SOURCES ${ELF_SOURCES} ../Libraries/LibELF/Arch/i386/plt_trampoline.S)
|
|||
file(GLOB LIBC_SOURCES1 "../Libraries/LibC/*.cpp")
|
||||
file(GLOB LIBC_SOURCES2 "../Libraries/LibC/*/*.cpp")
|
||||
file(GLOB LIBC_SOURCES3 "../Libraries/LibC/*.S")
|
||||
file(GLOB LIBSYSTEM_SOURCES "../Libraries/LibSystem/*.cpp")
|
||||
|
||||
list(FILTER LIBC_SOURCES1 EXCLUDE REGEX ".+crt0.cpp")
|
||||
list(FILTER LIBC_SOURCES1 EXCLUDE REGEX ".+crt0.+.cpp")
|
||||
|
||||
set(SOURCES ${LOADER_SOURCES} ${AK_SOURCES} ${ELF_SOURCES} ${LIBC_SOURCES1} ${LIBC_SOURCES2} ${LIBC_SOURCES3})
|
||||
set(SOURCES ${LOADER_SOURCES} ${AK_SOURCES} ${ELF_SOURCES} ${LIBC_SOURCES1} ${LIBC_SOURCES2} ${LIBC_SOURCES3} ${LIBSYSTEM_SOURCES})
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -nostdlib -pie -fpic -DNO_TLS")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue