diff --git a/lxc/executors/nasm64 b/lxc/executors/nasm64 new file mode 100755 index 0000000..8723995 --- /dev/null +++ b/lxc/executors/nasm64 @@ -0,0 +1,4 @@ +cd /tmp/$2 +timeout -s KILL 10 nasm -f elf64 -o binary.o code.code +timeout -s KILL 10 ld -m elf_x86_64 binary.o -o binary +runuser runner$1 -c "cd /tmp/$2 ; cat args.args | xargs -d '\n' timeout -s KILL 3 ./binary" diff --git a/lxc/tests/test64.nasm b/lxc/tests/test64.nasm new file mode 100644 index 0000000..191b8d3 --- /dev/null +++ b/lxc/tests/test64.nasm @@ -0,0 +1,18 @@ +SECTION .data + good: db "good", 0x0a, 0x0 + txtlen: equ $ - good + +SECTION .text +GLOBAL _start + +_start: + ;sys_write + mov rax, 1 + mov rdi, 1 + mov rsi, good + mov rdx, txtlen + syscall + ;sys_exit + mov rax, 60 + mov rdi, 0 + syscall