summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Röhling <roehling@debian.org>2024-02-23 13:39:24 +0100
committerTimo Röhling <roehling@debian.org>2024-02-23 13:39:24 +0100
commitbf07a3fede1178819e5699877969ddfea6bfe162 (patch)
tree0732e068f6b043ed48131ff0a427a082691b0686
parent7745254e7cb467a85aa218bc6b5c75e5b964190e (diff)
parent70db2e389ba403523b371449969d4d13b71aeb60 (diff)
Update upstream source from tag 'upstream/4.12.0'
Update to upstream version '4.12.0' with Debian dir b6979a7809540c2456d6af2db12254ee40b91933
-rw-r--r--.coveragerc12
-rw-r--r--.github/dependabot.yml8
-rw-r--r--.github/workflows/android.yml2
-rw-r--r--.github/workflows/changelog.yml2
-rw-r--r--.github/workflows/ci.yml45
-rw-r--r--.github/workflows/docker.yml64
-rw-r--r--.github/workflows/lint.yml2
-rw-r--r--.github/workflows/merge-conflict.yml2
-rw-r--r--.github/workflows/pylint.yml2
-rw-r--r--.travis.yml67
-rw-r--r--CHANGELOG.md75
-rw-r--r--README.md1
-rwxr-xr-xdocs/requirements.txt2
-rw-r--r--docs/source/elf/elf.rst1
-rw-r--r--docs/source/install/binutils.rst2
-rw-r--r--extra/docker/base/Dockerfile2
-rw-r--r--extra/docker/develop/Dockerfile2
-rw-r--r--pwnlib/adb/adb.py21
-rw-r--r--pwnlib/commandline/hex.py29
-rwxr-xr-xpwnlib/commandline/template.py24
-rw-r--r--pwnlib/data/syscalls/generate.py8
-rw-r--r--pwnlib/data/templates/pwnup.mako32
-rw-r--r--pwnlib/elf/corefile.py3
-rw-r--r--pwnlib/elf/elf.py123
-rw-r--r--pwnlib/filepointer.py2
-rw-r--r--pwnlib/fmtstr.py22
-rw-r--r--pwnlib/libcdb.py309
-rw-r--r--pwnlib/rop/rop.py4
-rw-r--r--pwnlib/runner.py12
-rw-r--r--pwnlib/shellcraft/__init__.py4
l---------pwnlib/shellcraft/templates/aarch64/linux/sleep.asm1
-rw-r--r--pwnlib/shellcraft/templates/amd64/freebsd/amd64_to_i386.asm10
-rw-r--r--pwnlib/shellcraft/templates/amd64/linux/amd64_to_i386.asm3
-rw-r--r--pwnlib/shellcraft/templates/amd64/linux/migrate_stack.asm2
l---------pwnlib/shellcraft/templates/amd64/linux/sleep.asm1
l---------pwnlib/shellcraft/templates/arm/linux/sleep.asm1
-rw-r--r--pwnlib/shellcraft/templates/common/linux/sleep.asm29
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/_llseek.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/_newselect.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/_sysctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/accept.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/accept4.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/access.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/acct.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/add_key.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/adjtimex.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/afs_syscall.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/alarm.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/arch_prctl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/arch_specific_syscall.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/arm_fadvise64_64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/arm_sync_file_range.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/bdflush.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/bind.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/bpf.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/break_.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/brk.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/cachectl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/cacheflush.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/capget.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/capset.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/chdir.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/chmod.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/chown.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/chown32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/chroot.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clone.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/clone3.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/close.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/connect.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/copy_file_range.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/creat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/create_module.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/delete_module.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/dup.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/dup2.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/dup3.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create1.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl_old.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_pwait.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait_old.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/eventfd.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/eventfd2.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/execve.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/execveat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/exit.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/exit_group.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/faccessat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64_64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fallocate.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_init.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_mark.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchdir.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchmod.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchmodat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchown.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchown32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fchownat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fcntl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fcntl64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fdatasync.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fgetxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/finit_module.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/flistxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/flock.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fork.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fremovexattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fsconfig.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fsetxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fsmount.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fsopen.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fspick.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstat64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstatat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstatat64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/fsync.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ftime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/futex.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/futex_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/futimesat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/get_kernel_syms.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/get_mempolicy.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/get_robust_list.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/get_thread_area.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getcpu.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getcwd.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getdents.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getdents64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getegid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getegid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/geteuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/geteuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getgid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getgroups.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getgroups32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getitimer.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpeername.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpgrp.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getppid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getpriority.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getrandom.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getresgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getresgid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getresuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getresuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getrlimit.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getrusage.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getsid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getsockname.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getsockopt.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/gettid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/gettimeofday.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/getxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/gtty.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ia32_arch_prctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ia32_io_pgetevents.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ia32_rseq.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ia32_statx.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/idle.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/init_module.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/inotify_add_watch.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init1.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/inotify_rm_watch.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_cancel.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_destroy.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_getevents.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_setup.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_submit.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_enter.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_register.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_setup.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ioctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ioperm.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/iopl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_get.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_set.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ipc.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/kcmp.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/kexec_file_load.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/kexec_load.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/keyctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lchown.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lchown32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lgetxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/link.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/linkat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/listen.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/listxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/llistxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lock.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lookup_dcookie.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lremovexattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lseek.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lsetxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lstat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/lstat64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/madvise.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/madvise1.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mbind.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/membarrier.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/memfd_create.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/migrate_pages.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mincore.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mkdir.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mkdirat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mknod.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mknodat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mlock.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mlock2.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mlockall.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mmap.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mmap2.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/modify_ldt.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mount.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/move_mount.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/move_pages.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mprotect.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mpx.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_getsetattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_notify.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_open.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mq_unlink.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/mremap.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/msgctl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/msgget.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/msgrcv.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/msgsnd.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/msync.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/munlock.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/munlockall.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/munmap.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/name_to_handle_at.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/nanosleep.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/newfstatat.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/nfsservctl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/nice.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/oldfstat.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/oldlstat.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/oldolduname.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/oldstat.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/olduname.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/open.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/open_by_handle_at.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/open_tree.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/openat.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/openat2.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pause.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_iobase.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_read.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_write.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/perf_event_open.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/personality.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_getfd.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_open.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_send_signal.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pipe.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pipe2.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pivot_root.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pkey_alloc.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pkey_free.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pkey_mprotect.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/poll.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ppoll.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ppoll_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/prctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pread.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pread64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/preadv.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/preadv2.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/prlimit64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_readv.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_writev.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/prof.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/profil.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pselect6.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pselect6_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ptrace.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/putpmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pwrite.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pwrite64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pwritev.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/pwritev2.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/query_module.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/quotactl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/read.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/readahead.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/readdir.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/readlink.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/readlinkat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/readv.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/reboot.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/recv.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/recvfrom.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/recvmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/remap_file_pages.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/removexattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/rename.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/renameat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/renameat2.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/request_key.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/reserved221.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/reserved82.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/restart_syscall.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/rmdir.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/rseq.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_max.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_min.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_getaffinity.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_getattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_getparam.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_getscheduler.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_setaffinity.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_setattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_setparam.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_setscheduler.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sched_yield.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/seccomp.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/security.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/select.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/semctl.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/semget.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/semop.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/send.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sendfile.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sendfile64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sendmmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sendmsg.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sendto.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/set_mempolicy.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/set_robust_list.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/set_thread_area.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/set_tid_address.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setdomainname.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setgid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setgroups.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setgroups32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sethostname.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setitimer.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setns.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setpgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setpriority.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setregid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setregid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setresgid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setresgid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setresuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setresuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setreuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setreuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setrlimit.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setsid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setsockopt.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/settimeofday.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setuid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setuid32.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/setxattr.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sgetmask.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/shmat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/shmctl.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/shmdt.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/shmget.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/shutdown.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigaction.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigaltstack.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/signal.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/signalfd.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/signalfd4.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigpending.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigprocmask.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigqueueinfo.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigreturn.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigsuspend.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socket.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_accept.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_bind.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_connect.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getpeername.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockname.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockopt.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_listen.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recv.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvfrom.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvmsg.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_send.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendmsg.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendto.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_setsockopt.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_shutdown.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socket.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socketpair.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/socketpair.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/splice.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ssetmask.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/stat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/stat64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/statfs.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/statfs64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/statx.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/stime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/stty.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/swapoff.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/swapon.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/symlink.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/symlinkat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sync.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sync_file_range.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/syncfs.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sys_kexec_load.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/syscall.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sysfs.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sysinfo.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/syslog.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/sysmips.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/tee.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/tgkill.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/tgsigqueueinfo.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/time.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_create.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_delete.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_getoverrun.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_create.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/times.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/tkill.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/truncate.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/truncate64.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/tuxcall.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ugetrlimit.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ulimit.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/umask.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/umount.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/umount2.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/uname.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/unlink.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/unlinkat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/unshare.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/uselib.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/userfaultfd.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/ustat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/utime.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/utimensat.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/utimensat_time64.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/utimes.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vfork.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vhangup.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vm86.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vm86old.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vmsplice.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/vserver.asm14
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/wait4.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/waitid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/waitpid.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/write.asm6
-rw-r--r--pwnlib/shellcraft/templates/common/linux/syscalls/writev.asm6
-rw-r--r--pwnlib/shellcraft/templates/i386/freebsd/i386_to_amd64.asm11
-rw-r--r--pwnlib/shellcraft/templates/i386/linux/i386_to_amd64.asm3
l---------pwnlib/shellcraft/templates/i386/linux/sleep.asm1
-rw-r--r--pwnlib/shellcraft/templates/i386/mov.asm4
-rw-r--r--pwnlib/shellcraft/templates/i386/stackhunter.asm26
-rw-r--r--pwnlib/shellcraft/templates/i386/stackhunter_helper.asm17
l---------pwnlib/shellcraft/templates/mips/linux/sleep.asm1
-rw-r--r--pwnlib/shellcraft/templates/mips/linux/syscall.asm21
-rw-r--r--pwnlib/shellcraft/templates/mips/mov.asm4
l---------pwnlib/shellcraft/templates/thumb/linux/sleep.asm1
-rw-r--r--pwnlib/term/readline.py9
-rw-r--r--pwnlib/tubes/listen.py3
-rw-r--r--pwnlib/tubes/remote.py3
-rw-r--r--pwnlib/tubes/serialtube.py35
-rw-r--r--pwnlib/tubes/ssh.py104
-rw-r--r--pwnlib/tubes/tube.py8
-rw-r--r--pwnlib/util/misc.py4
-rw-r--r--pwnlib/util/safeeval.py4
-rw-r--r--pwnlib/version.py2
-rw-r--r--pyproject.toml17
-rwxr-xr-xsetup.py8
-rw-r--r--travis/docker/Dockerfile67
-rw-r--r--travis/docker/Dockerfile.travis38
-rw-r--r--travis/setup_avd_fast.sh6
533 files changed, 2940 insertions, 2292 deletions
diff --git a/.coveragerc b/.coveragerc
deleted file mode 100644
index 1a8847c..0000000
--- a/.coveragerc
+++ /dev/null
@@ -1,12 +0,0 @@
-[run]
-branch = True
-parallel = True
-concurrency = thread,multiprocessing
-omit =
- */constants/*
-source =
- pwn
- pwnlib
- ~/.cache/.pwntools-cache-2.7/
- ~/.cache/.pwntools-cache-3.8/
-disable_warnings = module-not-imported
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..df4d15b
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,8 @@
+version: 2
+updates:
+
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ # Check for updates to GitHub Actions every week
+ interval: "weekly"
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 1a5f6aa..76cae56 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Cache for pip
uses: actions/cache@v3
diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
index 2550110..49816a6 100644
--- a/.github/workflows/changelog.yml
+++ b/.github/workflows/changelog.yml
@@ -15,7 +15,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 5
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 0
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 321457a..3011b94 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,14 +5,14 @@ jobs:
test:
strategy:
matrix:
- python_version: [2.7, 3.8]
+ python_version: ['2.7', '3.10']
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
- fetch-depth: 0
+ fetch-depth: 20
- name: Git History
run: |
@@ -74,7 +74,8 @@ jobs:
binutils-sparc64-linux-gnu \
gcc-multilib \
libc6-dbg \
- elfutils
+ elfutils \
+ patchelf
- name: Testing Corefiles
run: |
@@ -151,6 +152,11 @@ jobs:
pwn disasm --color ff3424c3ebfe
pwn asm -f hex nop
+ pwn hex ABCD
+ pwn hex ABCD --separator ' '
+ pwn hex ABCD --prefix '\x'
+ pwn hex ABCD -p '0x' -s ' '
+
pwn hex abcd
pwn unhex 4141 4141
@@ -176,22 +182,46 @@ jobs:
run: |
python -m build
- - uses: actions/upload-artifact@v2
+ - uses: actions/upload-artifact@v3
with:
name: packages
path: dist/
+ - uses: actions/upload-artifact@v3
+ with:
+ name: coverage
+ path: .coverage*
+
+
+ upload-coverage:
+ runs-on: ubuntu-latest
+ needs: test
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 20
+
+ - uses: actions/download-artifact@v3
+ with:
+ name: coverage
+ path: .
+
+ - name: Install coveralls
+ run: |
+ pip install tomli coveralls
+
- name: Upload coverage to coveralls.io
run: |
coverage combine
COVERALLS_REPO_TOKEN=PP20MEgztXIQJJTguQwe2jeCh6Bm4lkbv coveralls
+
staging-merge:
runs-on: ubuntu-latest
if: github.repository_owner == 'Gallopsled' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/heads/') && endsWith(github.event.ref, '-staging')
needs: test
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
fetch-depth: 20
- name: Push changes to protected branch
@@ -204,6 +234,7 @@ jobs:
git push origin "$TARGET"
git push origin --delete "$BRANCH"
+
pypi:
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
@@ -212,7 +243,7 @@ jobs:
needs: test
steps:
- name: Download artifacts
- uses: actions/download-artifact@v2
+ uses: actions/download-artifact@v3
with:
name: packages
path: dist
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 0000000..7474cc4
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -0,0 +1,64 @@
+name: Publish Docker images
+on:
+ push:
+ branches:
+ - dev
+ - beta
+ - stable
+ workflow_dispatch:
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ if: github.repository_owner == 'Gallopsled'
+ steps:
+ # Required for subdirectories in Git context
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_PASSWORD }}
+
+ - name: Build and push base image
+ uses: docker/build-push-action@v4
+ if: github.event_name == 'workflow_dispatch'
+ with:
+ context: "{{defaultContext}}:extra/docker/base"
+ push: true
+ tags: pwntools/pwntools:base
+
+ - name: Build and push stable image
+ uses: docker/build-push-action@v4
+ if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/stable')
+ with:
+ context: "{{defaultContext}}:extra/docker/stable"
+ push: true
+ tags: pwntools/pwntools:stable
+
+ - name: Build and push beta image
+ uses: docker/build-push-action@v4
+ if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/beta')
+ with:
+ context: "{{defaultContext}}:extra/docker/beta"
+ push: true
+ tags: pwntools/pwntools:beta
+
+ - name: Build and push dev image
+ uses: docker/build-push-action@v4
+ if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
+ with:
+ context: "{{defaultContext}}:extra/docker/dev"
+ push: true
+ tags: |
+ pwntools/pwntools:dev
+ pwntools/pwntools:latest
+
+ - name: Build and push ci image
+ uses: docker/build-push-action@v4
+ if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
+ with:
+ context: "{{defaultContext}}:travis/docker"
+ push: true
+ tags: pwntools/pwntools:ci
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index ac7f9ca..52508eb 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Cache for pip
uses: actions/cache@v3
id: cache-pip
diff --git a/.github/workflows/merge-conflict.yml b/.github/workflows/merge-conflict.yml
index 984c438..b2cc802 100644
--- a/.github/workflows/merge-conflict.yml
+++ b/.github/workflows/merge-conflict.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 5
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
fetch-depth: 0
diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml
index 9e95784..b70becc 100644
--- a/.github/workflows/pylint.yml
+++ b/.github/workflows/pylint.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Cache for pip
uses: actions/cache@v3
id: cache-pip
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 9d9f4f0..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-language: python
-addons:
- apt:
- packages:
- - lib32stdc++6
- - ash
- - bash
- - dash
- - ksh
- - mksh
- - zsh
- - pandoc
- - gdb
- - socat
- - sshpass
- - binutils
- - qemu-user-static
- - binutils-multiarch
- - binutils-aarch64-linux-gnu
- - binutils-arm-linux-gnueabihf
- - binutils-mips-linux-gnu
- - binutils-msp430
- - binutils-powerpc-linux-gnu
- - binutils-s390x-linux-gnu
- - binutils-sparc64-linux-gnu
- - bash-static
- - python3-pip
- - elfutils
-cache:
- - pip
- - directories:
- - usr
- - /home/travis/virtualenv/python2.7.15/lib/python2.7/site-packages/
- - /home/travis/virtualenv/python2.7.15/bin/
- - /home/travis/virtualenv/python3.8.*/lib/python3.8/site-packages/
- - /home/travis/virtualenv/python3.8.*/bin/
- - docs/build/doctest/.doctrees
-python:
- - "2.7"
- - "3.8"
-before_install:
- - echo $-
- - source travis/install.sh
- - source travis/ssh_setup.sh
- - echo $-
-install:
- - /usr/bin/python3 -m pip install rpyc # for GDB
- - pip install --upgrade pip
- - pip install --upgrade flake8 appdirs # https://github.com/ActiveState/appdirs/issues/89#issuecomment-282326570
- - python setup.py egg_info # pypa/pip#6275
- - pip install --upgrade --editable .
- - pip install --upgrade --requirement docs/requirements.txt
-before_script:
- - PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
- - PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
- - PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
- - PWNLIB_NOTERM=1 python -c 'from pwn import *; print(pwnlib.term.term_mode)'
- - sudo sh -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
-script:
- # stop the build if there are Python syntax errors or undefined names
- - flake8 . --count --select=E9,F63,F7 --show-source --statistics --exclude=android-?dk # TODO: Add F82
- # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
- - PWNLIB_NOTERM=1 coverage run -m sphinx -b doctest docs/source docs/build/doctest
- - coverage combine
-after_success:
- - coveralls
- - source travis/update_demo.sh
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4f835c2..c62a27b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,9 +9,10 @@ The table below shows which release corresponds to each branch, and what date th
| Version | Branch | Release Date |
| ---------------- | -------- | ---------------------- |
-| [4.13.0](#4130-dev) | `dev` |
-| [4.12.0](#4120-beta) | `beta` |
-| [4.11.1](#4111-stable) | `stable` | Nov 14, 2023
+| [4.14.0](#4140-dev) | `dev` |
+| [4.13.0](#4130-beta) | `beta` |
+| [4.12.0](#4120-stable) | `stable` | Feb 22, 2024
+| [4.11.1](#4111) | | Nov 14, 2023
| [4.11.0](#4110) | | Sep 15, 2023
| [4.10.0](#4100) | | May 21, 2023
| [4.9.0](#490) | | Dec 29, 2022
@@ -68,12 +69,68 @@ The table below shows which release corresponds to each branch, and what date th
| [3.0.0](#300) | | Aug 20, 2016
| [2.2.0](#220) | | Jan 5, 2015
-## 4.13.0 (`dev`)
-- [#2281][2281] FIX: Getting right amount of data for search fix
+## 4.14.0 (`dev`)
+
+## 4.13.0 (`beta`)
+
+- [#2242][2242] Term module revamp: activating special handling of terminal only when necessary
+- [#2277][2277] elf: Resolve more relocations into GOT entries
+- [#2281][2281] FIX: Getting right amount of data for search fix
+- [#2293][2293] Add x86 CET status to checksec output
+- [#1763][1763] Allow to add to the existing environment in `process` instead of replacing it
+- [#2307][2307] Fix `pwn libcdb file` crashing if "/bin/sh" string was not found
+- [#2309][2309] Detect challenge binary and libc in `pwn template`
+- [#2308][2308] Fix WinExec shellcraft to make sure it's 16 byte aligned
+- [#2279][2279] Make `pwn template` always set context.binary
+- [#2310][2310] Add support to start a process on Windows
+- [#2335][2335] Add lookup optimizations in DynELF
+- [#2334][2334] Speed up disasm commandline tool with colored output
+- [#2328][2328] Lookup using $PATHEXT file extensions in `which` on Windows
+- [#2189][2189] Explicitly define p64/u64 functions for IDE support
+- [#2339][2339] Fix: Allow setting attributes on gdb Breakpoints
+- [#2323][2323] Retry failed lookups after one week in libcdb
+- [#2325][2325] Match against local system libc first in libcdb
+- [#2336][2336] Add `ELF.stripped` and `ELF.debuginfo` properties
+- [#2161][2161] Add basic support for darwin shellcraft/asm/disasm/run_shellcode/run_assembly
+- [#2161][2161] Fix freebsd amd64 SyscallABI
+- [#2160][2161] Fix invalid shellcraft.mov on arm64
+- [#2284][2161] Fix invalid shellcraft.pushstr_array on arm64
+- [#2345][2345] Fix pwn constgrep when it matches a non-constant type
+- [#2338][2338] Fix: follow symlink for libs on ssh connection
+- [#2341][2341] Launch GDB correctly in iTerm on Mac
+- [#2268][2268] Add a `flatten` argument to `ssh.libs`
+- [#2347][2347] Fix/workaround Unicorn Engine 1GB limit that calls exit()
+- [#2233][2233] Fix gdb.debug: exe parameter now respected, allow empty argv
+
+[2242]: https://github.com/Gallopsled/pwntools/pull/2242
+[2277]: https://github.com/Gallopsled/pwntools/pull/2277
[2281]: https://github.com/Gallopsled/pwntools/pull/2281
+[2293]: https://github.com/Gallopsled/pwntools/pull/2293
+[1763]: https://github.com/Gallopsled/pwntools/pull/1763
+[2307]: https://github.com/Gallopsled/pwntools/pull/2307
+[2309]: https://github.com/Gallopsled/pwntools/pull/2309
+[2308]: https://github.com/Gallopsled/pwntools/pull/2308
+[2279]: https://github.com/Gallopsled/pwntools/pull/2279
+[2310]: https://github.com/Gallopsled/pwntools/pull/2310
+[2335]: https://github.com/Gallopsled/pwntools/pull/2335
+[2334]: https://github.com/Gallopsled/pwntools/pull/2334
+[2328]: https://github.com/Gallopsled/pwntools/pull/2328
+[2189]: https://github.com/Gallopsled/pwntools/pull/2189
+[2339]: https://github.com/Gallopsled/pwntools/pull/2339
+[2323]: https://github.com/Gallopsled/pwntools/pull/2323
+[2325]: https://github.com/Gallopsled/pwntools/pull/2325
+[2336]: https://github.com/Gallopsled/pwntools/pull/2336
+[2161]: https://github.com/Gallopsled/pwntools/pull/2161
+[2345]: https://github.com/Gallopsled/pwntools/pull/2345
+[2338]: https://github.com/Gallopsled/pwntools/pull/2338
+[2341]: https://github.com/Gallopsled/pwntools/pull/2341
+[2268]: https://github.com/Gallopsled/pwntools/pull/2268
+[2347]: https://github.com/Gallopsled/pwntools/pull/2347
+[2233]: https://github.com/Gallopsled/pwntools/pull/2233
+
+## 4.12.0 (`stable`)
-## 4.12.0 (`beta`)
- [#2202][2202] Fix `remote` and `listen` in sagemath
- [#2117][2117] Add -p (--prefix) and -s (--separator) arguments to `hex` command
- [#2221][2221] Add shellcraft.sleep template wrapping SYS_nanosleep
@@ -81,6 +138,8 @@ The table below shows which release corresponds to each branch, and what date th
- [#2212][2212] Add `--libc libc.so` argument to `pwn template` command
- [#2257][2257] Allow creation of custom templates for `pwn template` command
- [#2225][2225] Allow empty argv in ssh.process()
+- [#2349][2349] Fix term.readline omitting a trailing \n
+- [#2352][2352] add `RETURN_CONST` as an allowed `_const_code` in safeeval
[2202]: https://github.com/Gallopsled/pwntools/pull/2202
[2117]: https://github.com/Gallopsled/pwntools/pull/2117
@@ -89,8 +148,10 @@ The table below shows which release corresponds to each branch, and what date th
[2212]: https://github.com/Gallopsled/pwntools/pull/2212
[2257]: https://github.com/Gallopsled/pwntools/pull/2257
[2225]: https://github.com/Gallopsled/pwntools/pull/2225
+[2349]: https://github.com/Gallopsled/pwntools/pull/2349
+[2352]: https://github.com/Gallopsled/pwntools/pull/2352
-## 4.11.1 (`stable`)
+## 4.11.1
- [#2271][2271] FIX: Generated shebang with path to python invalid if path contains spaces
- [#2272][2272] Fix `tube.clean_and_log` not logging buffered data
diff --git a/README.md b/README.md
index c6bbf92..c9d31bf 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@
[![PyPI](https://img.shields.io/pypi/v/pwntools?style=flat)](https://pypi.python.org/pypi/pwntools/)
[![Docs](https://readthedocs.org/projects/pwntools/badge/?version=stable)](https://docs.pwntools.com/)
-[![Travis](https://img.shields.io/travis/Gallopsled/pwntools/dev?logo=Travis)](https://travis-ci.org/Gallopsled/pwntools)
[![GitHub Workflow Status (dev)](https://img.shields.io/github/actions/workflow/status/Gallopsled/pwntools/ci.yml?branch=dev&logo=GitHub)](https://github.com/Gallopsled/pwntools/actions/workflows/ci.yml?query=branch%3Adev)
[![Coveralls](https://img.shields.io/coveralls/github/Gallopsled/pwntools/dev?logo=coveralls)](https://coveralls.io/github/Gallopsled/pwntools?branch=dev)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://choosealicense.com/licenses/mit/)
diff --git a/docs/requirements.txt b/docs/requirements.txt
index d44363c..cca0641 100755
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,5 +1,5 @@
capstone
-coveralls
+coverage[toml]
python-dateutil
doc2dash
docutils<0.18
diff --git a/docs/source/elf/elf.rst b/docs/source/elf/elf.rst
index c7f0ea4..b54e9a3 100644
--- a/docs/source/elf/elf.rst
+++ b/docs/source/elf/elf.rst
@@ -3,6 +3,7 @@
from pwn import *
from glob import glob
from pwnlib.elf.maps import CAT_PROC_MAPS_EXIT
+ import shutil
:mod:`pwnlib.elf.elf` --- ELF Files
===========================================================
diff --git a/docs/source/install/binutils.rst b/docs/source/install/binutils.rst
index a04543f..d802701 100644
--- a/docs/source/install/binutils.rst
+++ b/docs/source/install/binutils.rst
@@ -54,7 +54,7 @@ OSes, ``binutils`` is simple to build by hand.
V=2.38 # Binutils Version
ARCH=arm # Target architecture
- cd $TMP
+ cd ${TMPDIR:-/tmp}
wget -nc https://ftp.gnu.org/gnu/binutils/binutils-$V.tar.gz
wget -nc https://ftp.gnu.org/gnu/binutils/binutils-$V.tar.gz.sig
diff --git a/extra/docker/base/Dockerfile b/extra/docker/base/Dockerfile
index ea0879f..2755d14 100644
--- a/extra/docker/base/Dockerfile
+++ b/extra/docker/base/Dockerfile
@@ -26,6 +26,7 @@ RUN apt-get update \
python3 \
python3-pip \
python3-dev \
+ python-is-python3 \
qemu-user-static \
binutils-arm-linux-gnueabihf \
binutils-aarch64-linux-gnu \
@@ -34,6 +35,7 @@ RUN apt-get update \
binutils-powerpc-linux-gnu \
binutils-powerpc64-linux-gnu \
binutils-sparc64-linux-gnu \
+ binutils-riscv64-linux-gnu \
tmux \
patchelf \
&& locale-gen en_US.UTF-8 \
diff --git a/extra/docker/develop/Dockerfile b/extra/docker/develop/Dockerfile
index e51986a..c2845c5 100644
--- a/extra/docker/develop/Dockerfile
+++ b/extra/docker/develop/Dockerfile
@@ -34,7 +34,7 @@ RUN python2.7 -m pip install -U ipython ipdb \
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ="UTC"
RUN sudo apt-get update && sudo -E apt-get install -y \
- tzdata \
+ tzdata \
ash \
bash \
bash-static \
diff --git a/pwnlib/adb/adb.py b/pwnlib/adb/adb.py
index 789546f..84bb892 100644
--- a/pwnlib/adb/adb.py
+++ b/pwnlib/adb/adb.py
@@ -66,6 +66,7 @@ from pwnlib import tubes
from pwnlib.context import LocalContext
from pwnlib.context import context
from pwnlib.device import Device
+from pwnlib.exception import PwnlibException
from pwnlib.log import getLogger
from pwnlib.protocols.adb import AdbClient
from pwnlib.util.packing import _decode
@@ -122,7 +123,7 @@ def current_device(any=False):
>>> device = adb.current_device(any=True)
>>> device # doctest: +ELLIPSIS
- AdbDevice(serial='emulator-5554', type='device', port='emulator', product='sdk_...phone_armv7', model='sdk ...phone armv7', device='generic')
+ AdbDevice(serial='emulator-5554', type='device', port='emulator', product='sdk_...phone_...', model='...', device='generic...')
>>> device.port
'emulator'
"""
@@ -252,13 +253,13 @@ class AdbDevice(Device):
>>> device = adb.wait_for_device()
>>> device.arch
- 'arm'
+ 'amd64'
>>> device.bits
- 32
+ 64
>>> device.os
'android'
>>> device.product # doctest: +ELLIPSIS
- 'sdk_...phone_armv7'
+ 'sdk_...phone_...'
>>> device.serial
'emulator-5554'
"""
@@ -1364,7 +1365,7 @@ def compile(source):
>>> filename = adb.compile(temp)
>>> sent = adb.push(filename, "/data/local/tmp")
>>> adb.process(sent).recvall() # doctest: +ELLIPSIS
- b'... /system/bin/linker\n...'
+ b'... /system/lib64/libc.so\n...'
"""
ndk_build = misc.which('ndk-build')
@@ -1490,8 +1491,9 @@ class Partitions(object):
@context.quietfunc
def by_name_dir(self):
try:
- return next(find('/dev/block/platform','by-name'))
- except StopIteration:
+ with context.local(log_level=logging.FATAL):
+ return next(find('/dev/block/platform','by-name'))
+ except (StopIteration, PwnlibException):
return '/dev/block'
@context.quietfunc
@@ -1591,7 +1593,10 @@ def uninstall(package, *arguments):
@context.quietfunc
def packages():
"""Returns a list of packages installed on the system"""
- packages = process(['pm', 'list', 'packages']).recvall()
+ # Decodes the received bytes as UTF-8 per:
+ # https://developer.android.com/reference/java/nio/charset/Charset#defaultCharset()
+ # where it is specified that UTF-8 is the default charset for Android.
+ packages = process(['pm', 'list', 'packages']).recvall().decode('utf-8')
return [line.split('package:', 1)[-1] for line in packages.splitlines()]
@context.quietfunc
diff --git a/pwnlib/commandline/hex.py b/pwnlib/commandline/hex.py
index 6f9ccf1..136106c 100644
--- a/pwnlib/commandline/hex.py
+++ b/pwnlib/commandline/hex.py
@@ -7,6 +7,7 @@ import sys
from pwnlib.commandline import common
from pwnlib.util.fiddling import enhex
+from pwnlib.util.lists import group
parser = common.parser_commands.add_parser(
'hex',
@@ -16,14 +17,38 @@ parser = common.parser_commands.add_parser(
parser.add_argument('data', nargs='*',
help='Data to convert into hex')
+parser.add_argument(
+ '-p', '--prefix',
+ metavar = 'prefix',
+ type = str,
+ default = '',
+ help = 'Insert a prefix before each byte',
+)
+
+parser.add_argument(
+ '-s', '--separator',
+ metavar = 'separator',
+ type = str,
+ default = '',
+ help = 'Add a separator between each byte',
+)
+
+def format_hex(hex_string, prefix, separator):
+ return separator.join([prefix + x for x in group(2, hex_string)])
+
def main(args):
if not args.data:
- print(enhex(getattr(sys.stdin, 'buffer', sys.stdin).read()))
+ encoded = enhex(getattr(sys.stdin, 'buffer', sys.stdin).read())
else:
data = ' '.join(args.data)
if not hasattr(data, 'decode'):
data = data.encode('utf-8', 'surrogateescape')
- print(enhex(data))
+ encoded = enhex(data)
+
+ if args.prefix or args.separator:
+ encoded = format_hex(encoded, args.prefix, args.separator)
+
+ print(encoded)
if __name__ == '__main__':
common.main(__file__)
diff --git a/pwnlib/commandline/template.py b/pwnlib/commandline/template.py
index 6bbb118..a8f480d 100755
--- a/pwnlib/commandline/template.py
+++ b/pwnlib/commandline/template.py
@@ -5,7 +5,7 @@ from __future__ import division
from pwn import *
from pwnlib.commandline import common
-from mako.lookup import TemplateLookup
+from mako.lookup import TemplateLookup, Template
parser = common.parser_commands.add_parser(
'template',
@@ -13,18 +13,29 @@ parser = common.parser_commands.add_parser(
description = 'Generate an exploit template'
)
+# change path to hardcoded one when building the documentation
+printable_data_path = "pwnlib/data" if 'sphinx' in sys.modules else pwnlib.data.path
+
parser.add_argument('exe', nargs='?', help='Target binary')
parser.add_argument('--host', help='Remote host / SSH server')
parser.add_argument('--port', help='Remote port / SSH port', type=int)
parser.add_argument('--user', help='SSH Username')
parser.add_argument('--pass', '--password', help='SSH Password', dest='password')
+parser.add_argument('--libc', help='Path to libc binary to use')
parser.add_argument('--path', help='Remote path of file on SSH server')
parser.add_argument('--quiet', help='Less verbose template comments', action='store_true')
parser.add_argument('--color', help='Print the output in color', choices=['never', 'always', 'auto'], default='auto')
+parser.add_argument('--template', help='Path to a custom template. Tries to use \'~/.config/pwntools/templates/pwnup.mako\', if it exists. '
+ 'Check \'%s\' for the default template shipped with pwntools.' %
+ os.path.join(printable_data_path, "templates", "pwnup.mako"))
def main(args):
+
lookup = TemplateLookup(
- directories = [os.path.join(pwnlib.data.path, 'templates')],
+ directories = [
+ os.path.expanduser('~/.config/pwntools/templates/'),
+ os.path.join(pwnlib.data.path, 'templates')
+ ],
module_directory = None
)
@@ -47,12 +58,18 @@ def main(args):
if not args.exe:
args.exe = os.path.basename(args.path)
- template = lookup.get_template('pwnup.mako')
+
+ if args.template:
+ template = Template(filename=args.template) # Failing on invalid file is ok
+ else:
+ template = lookup.get_template('pwnup.mako')
+
output = template.render(args.exe,
args.host,
args.port,
args.user,
args.password,
+ args.libc,
args.path,
args.quiet)
@@ -75,3 +92,4 @@ def main(args):
if __name__ == '__main__':
pwnlib.commandline.common.main(__file__)
+
diff --git a/pwnlib/data/syscalls/generate.py b/pwnlib/data/syscalls/generate.py
index b10d38a..4ddfdc5 100644
--- a/pwnlib/data/syscalls/generate.py
+++ b/pwnlib/data/syscalls/generate.py
@@ -72,7 +72,7 @@ CALL = """
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -100,7 +100,7 @@ CALL = """
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -108,7 +108,7 @@ CALL = """
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % {syscalls!r})
%>
/* {name}(${{', '.join(syscall_repr)}}) */
%for name, arg in string_arguments.items():
@@ -249,7 +249,7 @@ def generate_one(target):
# Mako is unable to use *vararg and *kwarg, so we just stub in
# a whole bunch of additional arguments.
if argname == 'vararg':
- for j in range(5):
+ for j in range(6):
argname = 'vararg_%i' % j
argument_names.append(argname)
argument_names_.append(argname)
diff --git a/pwnlib/data/templates/pwnup.mako b/pwnlib/data/templates/pwnup.mako
index 5690e26..e472170 100644
--- a/pwnlib/data/templates/pwnup.mako
+++ b/pwnlib/data/templates/pwnup.mako
@@ -1,4 +1,4 @@
-<%page args="binary, host=None, port=None, user=None, password=None, remote_path=None, quiet=False"/>\
+<%page args="binary, host=None, port=None, user=None, password=None, libc=None, remote_path=None, quiet=False"/>\
<%
import os
import sys
@@ -31,6 +31,7 @@ elif host and not port:
remote_path = remote_path or exe
password = password or 'secret1234'
binary_repr = repr(binary)
+libc_repr = repr(libc)
%>\
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
@@ -83,6 +84,35 @@ if not args.LOCAL:
shell.set_working_directory(symlink=True)
%endif
+%if libc:
+%if not quiet:
+# Use the specified remote libc version unless explicitly told to use the
+# local system version with the `LOCAL_LIBC` argument.
+# ./exploit.py LOCAL LOCAL_LIBC
+%endif
+if args.LOCAL_LIBC:
+ libc = exe.libc
+%if host:
+elif args.LOCAL:
+%else:
+else:
+%endif
+ library_path = libcdb.download_libraries(${libc_repr})
+ if library_path:
+ %if ctx.binary:
+ exe = context.binary = ELF.patch_custom_libraries(${binary_repr}, library_path)
+ %else:
+ exe = ELF.patch_custom_libraries(exe, library_path)
+ %endif
+ libc = exe.libc
+ else:
+ libc = ELF(${libc_repr})
+%if host:
+else:
+ libc = ELF(${libc_repr})
+%endif
+%endif
+
%if host:
def start_local(argv=[], *a, **kw):
'''Execute the target binary locally'''
diff --git a/pwnlib/elf/corefile.py b/pwnlib/elf/corefile.py
index b5a248a..b4d0e9d 100644
--- a/pwnlib/elf/corefile.py
+++ b/pwnlib/elf/corefile.py
@@ -531,7 +531,6 @@ class Corefile(ELF):
>>> io = elf.process()
>>> io.wait(2)
>>> core = io.corefile
- [!] End of the stack is corrupted, skipping stack parsing (got: 41414141)
>>> core.argc, core.argv, core.env
(0, [], {})
>>> core.stack.data.endswith(b'AAAA')
@@ -667,7 +666,7 @@ class Corefile(ELF):
log.warn('Could not find the stack!')
self.stack = None
- with context.local(bytes=self.bytes, log_level='warn'):
+ with context.local(bytes=self.bytes):
try:
self._parse_stack()
except ValueError:
diff --git a/pwnlib/elf/elf.py b/pwnlib/elf/elf.py
index 0fae91d..4a24372 100644
--- a/pwnlib/elf/elf.py
+++ b/pwnlib/elf/elf.py
@@ -82,7 +82,7 @@ from pwnlib.tubes.process import process
from pwnlib.util import misc
from pwnlib.util import packing
from pwnlib.util.fiddling import unhex
-from pwnlib.util.misc import align, align_down
+from pwnlib.util.misc import align, align_down, which
from pwnlib.util.sh_string import sh_string
log = getLogger(__name__)
@@ -1191,7 +1191,7 @@ class ELF(ELFFile):
segments = self.executable_segments
else:
segments = self.segments
-
+ needle = packing._need_bytes(needle)
for seg in segments:
addr = seg.header.p_vaddr
memsz = seg.header.p_memsz
@@ -2247,3 +2247,122 @@ class ELF(ELFFile):
return
log.error("Could not find PT_GNU_STACK, stack should already be executable")
+
+ @staticmethod
+ def set_runpath(exepath, runpath):
+ r"""set_runpath(str, str) -> ELF
+
+ Patches the RUNPATH of the ELF to the given path using the `patchelf utility <https://github.com/NixOS/patchelf>`_.
+
+ The dynamic loader will look for any needed shared libraries in the given path first,
+ before trying the system library paths. This is useful to run a binary with a different
+ libc binary.
+
+ Arguments:
+ exepath(str): Path to the binary to patch.
+ runpath(str): Path containing the needed libraries.
+
+ Returns:
+ A new ELF instance is returned after patching the binary with the external ``patchelf`` tool.
+
+ Example:
+
+ >>> tmpdir = tempfile.mkdtemp()
+ >>> ls_path = os.path.join(tmpdir, 'ls')
+ >>> _ = shutil.copy(which('ls'), ls_path)
+ >>> e = ELF.set_runpath(ls_path, './libs')
+ >>> e.runpath == b'./libs'
+ True
+ """
+ if not which('patchelf'):
+ log.error('"patchelf" tool not installed. See https://github.com/NixOS/patchelf')
+ return None
+ try:
+ subprocess.check_output(['patchelf', '--set-rpath', runpath, exepath], stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ log.failure('Patching RUNPATH failed (%d): %r', e.returncode, e.stdout)
+ return ELF(exepath, checksec=False)
+
+ @staticmethod
+ def set_interpreter(exepath, interpreter_path):
+ r"""set_interpreter(str, str) -> ELF
+
+ Patches the interpreter of the ELF to the given binary using the `patchelf utility <https://github.com/NixOS/patchelf>`_.
+
+ When running the binary, the new interpreter will be used to load the ELF.
+
+ Arguments:
+ exepath(str): Path to the binary to patch.
+ interpreter_path(str): Path to the ld.so dynamic loader.
+
+ Returns:
+ A new ELF instance is returned after patching the binary with the external ``patchelf`` tool.
+
+ Example:
+ >>> tmpdir = tempfile.mkdtemp()
+ >>> ls_path = os.path.join(tmpdir, 'ls')
+ >>> _ = shutil.copy(which('ls'), ls_path)
+ >>> e = ELF.set_interpreter(ls_path, '/tmp/correct_ld.so')
+ >>> e.linker == b'/tmp/correct_ld.so'
+ True
+ """
+ # patch the interpreter
+ if not which('patchelf'):
+ log.error('"patchelf" tool not installed. See https://github.com/NixOS/patchelf')
+ return None
+ try:
+ subprocess.check_output(['patchelf', '--set-interpreter', interpreter_path, exepath], stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ log.failure('Patching interpreter failed (%d): %r', e.returncode, e.stdout)
+ return ELF(exepath, checksec=False)
+
+ @staticmethod
+ def patch_custom_libraries(exe_path, custom_library_path, create_copy=True, suffix='_remotelibc'):
+ r"""patch_custom_libraries(str, str, bool, str) -> ELF
+
+ Looks for the interpreter binary in the given path and patches the binary to use
+ it if available. Also patches the RUNPATH to the given path using the `patchelf utility <https://github.com/NixOS/patchelf>`_.
+
+ Arguments:
+ exe_path(str): Path to the binary to patch.
+ custom_library_path(str): Path to a folder containing the libraries.
+ create_copy(bool): Create a copy of the binary and apply the patches to the copy.
+ suffix(str): Suffix to append to the filename when creating the copy to patch.
+
+ Returns:
+ A new ELF instance is returned after patching the binary with the external ``patchelf`` tool.
+
+ Example:
+
+ >>> tmpdir = tempfile.mkdtemp()
+ >>> linker_path = os.path.join(tmpdir, 'ld-mock.so')
+ >>> write(linker_path, b'loader')
+ >>> ls_path = os.path.join(tmpdir, 'ls')
+ >>> _ = shutil.copy(which('ls'), ls_path)
+ >>> e = ELF.patch_custom_libraries(ls_path, tmpdir)
+ >>> e.runpath.decode() == tmpdir
+ True
+ >>> e.linker.decode() == linker_path
+ True
+ """
+ if not which('patchelf'):
+ log.error('"patchelf" tool not installed. See https://github.com/NixOS/patchelf')
+ return None
+
+ # Create a copy of the ELF to patch instead of the original file.
+ if create_copy:
+ import shutil
+ patched_path = exe_path + suffix
+ shutil.copy2(exe_path, patched_path)
+ exe_path = patched_path
+
+ # Set interpreter in ELF to the one in the library path.
+ interpreter_name = [filename for filename in os.listdir(custom_library_path) if filename.startswith('ld-')]
+ if interpreter_name:
+ interpreter_path = os.path.realpath(os.path.join(custom_library_path, interpreter_name[0]))
+ ELF.set_interpreter(exe_path, interpreter_path)
+ else:
+ log.warn("Couldn't find ld.so in library path. Interpreter not set.")
+
+ # Set RUNPATH to library path in order to find other libraries.
+ return ELF.set_runpath(exe_path, custom_library_path)
diff --git a/pwnlib/filepointer.py b/pwnlib/filepointer.py
index 6c69a5f..8b05781 100644
--- a/pwnlib/filepointer.py
+++ b/pwnlib/filepointer.py
@@ -176,7 +176,7 @@ class FileStructure(object):
def __repr__(self):
structure=[]
for i in self.vars_:
- structure.append(" %s: %s" % (i,hex(getattr(self, i))))
+ structure.append(" %s: %#x" % (i, getattr(self, i)))
return "{"+ "\n".join(structure)+"}"
def __len__(self):
diff --git a/pwnlib/fmtstr.py b/pwnlib/fmtstr.py
index 8dddc21..fa765e0 100644
--- a/pwnlib/fmtstr.py
+++ b/pwnlib/fmtstr.py
@@ -304,14 +304,15 @@ def make_atoms_simple(address, data, badbytes=frozenset()):
i = 0
out = []
+ end = address + len(data)
while i < len(data):
candidate = AtomWrite(address + i, 1, data[i])
- while i + candidate.size < len(data) and any(x in badbytes for x in pack(candidate.end)):
+ while candidate.end < end and any(x in badbytes for x in pack(candidate.end)):
candidate = candidate.union(AtomWrite(candidate.end, 1, data[i + candidate.size]))
sz = min([s for s in SPECIFIER if s >= candidate.size] + [float("inf")])
- if i + sz > len(data):
- raise RuntimeError("impossible to avoid badbytes starting after offset %d (address %x)" % (i, i + address))
+ if candidate.start + sz > end:
+ raise RuntimeError("impossible to avoid badbytes starting after offset %d (address %#x)" % (i, i + address))
i += candidate.size
candidate = candidate.union(AtomWrite(candidate.end, sz - candidate.size, 0, 0))
out.append(candidate)
@@ -498,7 +499,7 @@ def merge_atoms_overlapping(atoms, sz, szmax, numbwritten, overflows):
# the best write is the one which sets the largest number of target
# bytes correctly
candidate = AtomWrite(atom.start, 0, 0)
- best = (0, None)
+ best = (atom.size, idx, atom)
for nextidx, nextatom in enumerate(atoms[idx:], idx):
# if there is no atom immediately following the current candidate
# that we haven't written yet, stop
@@ -527,6 +528,8 @@ def merge_atoms_overlapping(atoms, sz, szmax, numbwritten, overflows):
_, nextidx, best_candidate = best
numbwritten_here += best_candidate.compute_padding(numbwritten_here)
+ if numbwritten_here > maxwritten:
+ maxwritten = numbwritten_here
offset = 0
# for all atoms that we merged, check if all bytes are written already to update `done``
@@ -799,7 +802,7 @@ def make_atoms(writes, sz, szmax, numbwritten, overflows, strategy, badbytes):
all_atoms += atoms
return all_atoms
-def fmtstr_split(offset, writes, numbwritten=0, write_size='byte', write_size_max='long', overflows=16, strategy="small", badbytes=frozenset()):
+def fmtstr_split(offset, writes, numbwritten=0, write_size='byte', write_size_max='long', overflows=16, strategy="small", badbytes=frozenset(), no_dollars=False):
"""
Build a format string like fmtstr_payload but return the string and data separately.
"""
@@ -813,7 +816,7 @@ def fmtstr_split(offset, writes, numbwritten=0, write_size='byte', write_size_ma
szmax = WRITE_SIZE[write_size_max]
atoms = make_atoms(writes, sz, szmax, numbwritten, overflows, strategy, badbytes)
- return make_payload_dollar(offset, atoms, numbwritten)
+ return make_payload_dollar(offset, atoms, numbwritten, no_dollars=no_dollars)
def fmtstr_payload(offset, writes, numbwritten=0, write_size='byte', write_size_max='long', overflows=16, strategy="small", badbytes=frozenset(), offset_bytes=0, no_dollars=False):
r"""fmtstr_payload(offset, writes, numbwritten=0, write_size='byte') -> str
@@ -844,6 +847,8 @@ def fmtstr_payload(offset, writes, numbwritten=0, write_size='byte', write_size_
b'%47806c%5$lln%22649c%6$hnaaaabaa\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00'
>>> fmtstr_payload(1, {0x0: 0x1337babe}, write_size='byte')
b'%190c%7$lln%85c%8$hhn%36c%9$hhn%131c%10$hhnaaaab\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'
+ >>> fmtstr_payload(6, {0x8: 0x55d15d2004a0}, badbytes=b'\n')
+ b'%1184c%14$lln%49c%15$hhn%6963c%16$hn%81c%17$hhn%8c%18$hhnaaaabaa\x08\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00'
>>> context.clear(arch = 'i386')
>>> fmtstr_payload(1, {0x0: 0x1337babe}, write_size='int')
b'%322419390c%5$na\x00\x00\x00\x00'
@@ -900,11 +905,12 @@ class FmtStr(object):
"""
- def __init__(self, execute_fmt, offset=None, padlen=0, numbwritten=0):
+ def __init__(self, execute_fmt, offset=None, padlen=0, numbwritten=0, badbytes=frozenset()):
self.execute_fmt = execute_fmt
self.offset = offset
self.padlen = padlen
self.numbwritten = numbwritten
+ self.badbytes = badbytes
if self.offset is None:
self.offset, self.padlen = self.find_offset()
@@ -968,7 +974,7 @@ class FmtStr(object):
"""
fmtstr = randoms(self.padlen).encode()
- fmtstr += fmtstr_payload(self.offset, self.writes, numbwritten=self.padlen + self.numbwritten, write_size='byte')
+ fmtstr += fmtstr_payload(self.offset, self.writes, numbwritten=self.padlen + self.numbwritten, badbytes=self.badbytes, write_size='byte')
self.execute_fmt(fmtstr)
self.writes = {}
diff --git a/pwnlib/libcdb.py b/pwnlib/libcdb.py
index 932f295..0fb186b 100644
--- a/pwnlib/libcdb.py
+++ b/pwnlib/libcdb.py
@@ -4,22 +4,18 @@ Fetch a LIBC binary based on some heuristics.
from __future__ import absolute_import
from __future__ import division
-import codecs
-import json
import os
+import six
import tempfile
from pwnlib.context import context
from pwnlib.elf import ELF
from pwnlib.log import getLogger
from pwnlib.tubes.process import process
-from pwnlib.util.fiddling import b64d
from pwnlib.util.fiddling import enhex
-from pwnlib.util.fiddling import hexdump
from pwnlib.util.misc import read
from pwnlib.util.misc import which
from pwnlib.util.misc import write
-from pwnlib.util.safeeval import const
from pwnlib.util.web import wget
log = getLogger(__name__)
@@ -62,40 +58,46 @@ def provider_libcdb(hex_encoded_id, hash_type):
log.warn_once("Failed to fetch libc for %s %s from libcdb: %s", hash_type, hex_encoded_id, e)
return data
-# https://libc.rip/
-def provider_libc_rip(hex_encoded_id, hash_type):
+def query_libc_rip(params):
# Deferred import because it's slow
import requests
+ url = "https://libc.rip/api/find"
+ try:
+ result = requests.post(url, json=params, timeout=20)
+ result.raise_for_status()
+ if result.status_code != 200:
+ log.debug("Error: %s", result.text)
+ return None
+ return result.json()
+ except requests.RequestException as e:
+ log.warn_once("Failed to fetch libc info from libc.rip: %s", e)
+ return None
+
+# https://libc.rip/
+def provider_libc_rip(hex_encoded_id, hash_type):
# Build the request for the hash type
# https://github.com/niklasb/libc-database/blob/master/searchengine/api.yml
if hash_type == 'build_id':
hash_type = 'buildid'
- url = "https://libc.rip/api/find"
params = {hash_type: hex_encoded_id}
- data = b""
- try:
- result = requests.post(url, json=params, timeout=20)
- result.raise_for_status()
- libc_match = result.json()
- if not libc_match:
- log.warn_once("Could not find libc for %s %s on libc.rip", hash_type, hex_encoded_id)
- return None
+ libc_match = query_libc_rip(params)
+ if not libc_match:
+ log.warn_once("Could not find libc info for %s %s on libc.rip", hash_type, hex_encoded_id)
+ return None
- if len(libc_match) > 1:
- log.debug("Received multiple matches. Choosing the first match and discarding the others.")
- log.debug("%r", libc_match)
+ if len(libc_match) > 1:
+ log.debug("Received multiple matches. Choosing the first match and discarding the others.")
+ log.debug("%r", libc_match)
- url = libc_match[0]['download_url']
- log.debug("Downloading data from libc.rip: %s", url)
- data = wget(url, timeout=20)
+ url = libc_match[0]['download_url']
+ log.debug("Downloading data from libc.rip: %s", url)
+ data = wget(url, timeout=20)
- if not data:
- log.warn_once("Could not fetch libc for %s %s from libc.rip", hash_type, hex_encoded_id)
- return None
- except requests.RequestException as e:
- log.warn_once("Failed to fetch libc for %s %s from libc.rip: %s", hash_type, hex_encoded_id, e)
+ if not data:
+ log.warn_once("Could not fetch libc binary for %s %s from libc.rip", hash_type, hex_encoded_id)
+ return None
return data
PROVIDERS = [provider_libcdb, provider_libc_rip]
@@ -255,6 +257,211 @@ def unstrip_libc(filename):
return True
+def _extract_tarfile(cache_dir, data_filename, tarball):
+ from six import BytesIO
+ import tarfile
+ # Handle zstandard compression, since tarfile only supports gz, bz2, and xz.
+ if data_filename.endswith('.zst') or data_filename.endswith('.zstd'):
+ import zstandard
+ dctx = zstandard.ZstdDecompressor()
+ decompressed_tar = BytesIO()
+ dctx.copy_stream(tarball, decompressed_tar)
+ decompressed_tar.seek(0)
+ tarball.close()
+ tarball = decompressed_tar
+
+ if six.PY2 and data_filename.endswith('.xz'):
+ # Python 2's tarfile doesn't support xz, so we need to decompress it first.
+ # Shell out to xz, since the Python 2 pylzma module is broken.
+ # (https://github.com/fancycode/pylzma/issues/67)
+ if not which('xz'):
+ log.error('Couldn\'t find "xz" in PATH. Please install xz first.')
+ import subprocess
+ try:
+ uncompressed_tarball = subprocess.check_output(['xz', '--decompress', '--stdout', tarball.name])
+ tarball = BytesIO(uncompressed_tarball)
+ except subprocess.CalledProcessError:
+ log.error('Failed to decompress xz archive.')
+
+ with tarfile.open(fileobj=tarball) as tar_file:
+ # Find the library folder in the archive (e.g. /lib/x86_64-linux-gnu/)
+ lib_dir = None
+ libc_name = None
+ for member in tar_file.getmembers():
+ if not member.isfile():
+ continue
+ libc_name = os.path.basename(member.name)
+ if libc_name == 'libc.so.6' or (libc_name.startswith('libc') and libc_name.endswith('.so')):
+ lib_dir = os.path.dirname(member.name)
+ break
+ else:
+ log.error('Couldn\'t find library folder containing the libc in the archive.')
+
+ # Extract everything in the library folder
+ for member in tar_file.getmembers():
+ if os.path.dirname(member.name) != lib_dir:
+ continue
+ if not member.isfile() and not member.issym():
+ continue
+ # Extract while keeping file permissions
+ tar_file.extract(member, cache_dir)
+
+ # Move the files up to the cache root
+ target_dir = os.path.join(cache_dir, lib_dir)
+ for file in os.listdir(target_dir):
+ os.rename(os.path.join(target_dir, file), os.path.join(cache_dir, file))
+ os.removedirs(target_dir)
+
+ return os.path.join(cache_dir, libc_name)
+
+def _extract_debfile(cache_dir, package_filename, package):
+ # Extract data.tar in the .deb archive.
+ if six.PY2:
+ if not which('ar'):
+ log.error('Missing command line tool "ar" to extract .deb archive. Please install "ar" first.')
+
+ import atexit
+ import shutil
+ import subprocess
+
+ # Use mkdtemp instead of TemporaryDirectory because the latter is not available in Python 2.
+ tempdir = tempfile.mkdtemp(prefix=".pwntools-tmp")
+ atexit.register(shutil.rmtree, tempdir)
+ with tempfile.NamedTemporaryFile(mode='wb', dir=tempdir) as debfile:
+ debfile.write(package)
+ debfile.flush()
+ try:
+ files_in_deb = subprocess.check_output(['ar', 't', debfile.name]).split(b'\n')
+ except subprocess.CalledProcessError:
+ log.error('Failed to list files in .deb archive.')
+ [data_filename] = filter(lambda f: f.startswith(b'data.tar'), files_in_deb)
+
+ try:
+ subprocess.check_call(['ar', 'x', debfile.name, data_filename], cwd=tempdir)
+ except subprocess.CalledProcessError:
+ log.error('Failed to extract data.tar from .deb archive.')
+
+ with open(os.path.join(tempdir, data_filename), 'rb') as tarball:
+ return _extract_tarfile(cache_dir, data_filename, tarball)
+ else:
+ import unix_ar
+ from six import BytesIO
+ ar_file = unix_ar.open(BytesIO(package))
+ try:
+ data_filename = next(filter(lambda f: f.name.startswith(b'data.tar'), ar_file.infolist())).name.decode()
+ tarball = ar_file.open(data_filename)
+ return _extract_tarfile(cache_dir, data_filename, tarball)
+ finally:
+ ar_file.close()
+
+def _extract_pkgfile(cache_dir, package_filename, package):
+ from six import BytesIO
+ return _extract_tarfile(cache_dir, package_filename, BytesIO(package))
+
+def _find_libc_package_lib_url(libc):
+ # Check https://libc.rip for the libc package
+ libc_match = query_libc_rip({'buildid': enhex(libc.buildid)})
+ if libc_match is not None:
+ for match in libc_match:
+ yield match['libs_url']
+
+ # Check launchpad.net if it's an Ubuntu libc
+ # GNU C Library (Ubuntu GLIBC 2.36-0ubuntu4)
+ import re
+ version = re.search(br'GNU C Library \(Ubuntu E?GLIBC ([^\)]+)\)', libc.data)
+ if version is not None:
+ libc_version = version.group(1).decode()
+ yield 'https://launchpad.net/ubuntu/+archive/primary/+files/libc6_{}_{}.deb'.format(libc_version, libc.arch)
+
+def download_libraries(libc_path, unstrip=True):
+ """download_libraries(str, bool) -> str
+ Download the matching libraries for the given libc binary and cache
+ them in a local directory. The libraries are looked up using `libc.rip <https://libc.rip>`_
+ and fetched from the official package repositories if available.
+
+ This commonly includes the ``ld-linux-x86-64.so.2`` and ``libpthread.so.0`` binaries
+ which can be used to execute the program locally when the given libc is
+ incompatible with the local dynamic loader.
+
+ Note: Only .deb and .pkg.tar.* packages are currently supported (Debian/Ubuntu, Arch).
+
+ Arguments:
+ libc_path(str):
+ The path the libc binary.
+ unstrip(bool):
+ Try to fetch debug info for the libc and apply it to the downloaded file.
+
+ Returns:
+ The path to the cached directory containing the downloaded libraries.
+
+ Example:
+ >>> libc_path = ELF(which('ls'), checksec=False).libc.path
+ >>> lib_path = download_libraries(libc_path)
+ >>> lib_path is not None
+ True
+ >>> os.path.exists(os.path.join(lib_path, 'libc.so.6'))
+ True
+ >>> os.path.exists(os.path.join(lib_path, 'ld-linux-x86-64.so.2'))
+ True
+ """
+
+ libc = ELF(libc_path, checksec=False)
+ if not libc.buildid:
+ log.warn_once('Given libc does not have a buildid.')
+ return None
+
+ # Handle caching and don't redownload if it already exists.
+ cache_dir = os.path.join(context.cache_dir, 'libcdb_libs')
+ if not os.path.isdir(cache_dir):
+ os.makedirs(cache_dir)
+
+ cache_dir = os.path.join(cache_dir, enhex(libc.buildid))
+ if os.path.exists(cache_dir):
+ return cache_dir
+
+ for package_url in _find_libc_package_lib_url(libc):
+ extension_handlers = {
+ '.deb': _extract_debfile,
+ '.pkg.tar.xz': _extract_pkgfile,
+ '.pkg.tar.zst': _extract_pkgfile,
+ }
+
+ package_filename = os.path.basename(package_url)
+ for extension, handler in extension_handlers.items():
+ if package_filename.endswith(extension):
+ break
+ else:
+ log.failure('Cannot handle %s (%s)', package_filename, package_url)
+ continue
+
+ # Download the package
+ package = wget(package_url, timeout=20)
+ if not package:
+ continue
+
+ # Create target cache directory to extract files into
+ if not os.path.isdir(cache_dir):
+ os.makedirs(cache_dir)
+
+ try:
+ # Extract the archive
+ libc_path = handler(cache_dir, package_filename, package)
+ except Exception as e:
+ os.removedirs(cache_dir)
+ log.failure('Failed to extract %s: %s', package_filename, e)
+ continue
+ # Unstrip the libc binary
+ try:
+ if unstrip:
+ unstrip_libc(libc_path)
+ except Exception:
+ pass
+
+ return cache_dir
+
+ log.warn_once('Failed to find matching libraries for provided libc.')
+ return None
+
def _handle_multiple_matching_libcs(matching_libcs):
from pwnlib.term import text
from pwnlib.ui import options
@@ -311,41 +518,33 @@ def search_by_symbol_offsets(symbols, select_index=None, unstrip=True, return_as
>>> for buildid in matched_libcs: # doctest +SKIP
... libc = ELF(search_by_build_id(buildid)) # doctest +SKIP
"""
- import requests
for symbol, address in symbols.items():
if isinstance(address, int):
symbols[symbol] = hex(address)
- try:
- params = {'symbols': symbols}
- url = "https://libc.rip/api/find"
- log.debug('Request: %s', params)
- result = requests.post(url, json=params, timeout=20)
- result.raise_for_status()
- matching_libcs = result.json()
- log.debug('Result: %s', matching_libcs)
- if len(matching_libcs) == 0:
- log.warn_once("No matching libc for symbols %r on libc.rip", symbols)
- return None
+ params = {'symbols': symbols}
+ log.debug('Request: %s', params)
+ matching_libcs = query_libc_rip(params)
+ log.debug('Result: %s', matching_libcs)
+ if matching_libcs is None or len(matching_libcs) == 0:
+ log.warn_once("No matching libc for symbols %r on libc.rip", symbols)
+ return None
- if return_as_list:
- return [libc['buildid'] for libc in matching_libcs]
+ if return_as_list:
+ return [libc['buildid'] for libc in matching_libcs]
- if len(matching_libcs) == 1:
- return search_by_build_id(matching_libcs[0]['buildid'], unstrip=unstrip)
+ if len(matching_libcs) == 1:
+ return search_by_build_id(matching_libcs[0]['buildid'], unstrip=unstrip)
- if select_index is not None:
- if select_index > 0 and select_index <= len(matching_libcs):
- return search_by_build_id(matching_libcs[select_index - 1]['buildid'], unstrip=unstrip)
- else:
- log.error('Invalid selected libc index. %d is not in the range of 1-%d.', select_index, len(matching_libcs))
- return None
+ if select_index is not None:
+ if select_index > 0 and select_index <= len(matching_libcs):
+ return search_by_build_id(matching_libcs[select_index - 1]['buildid'], unstrip=unstrip)
+ else:
+ log.error('Invalid selected libc index. %d is not in the range of 1-%d.', select_index, len(matching_libcs))
+ return None
- selected_libc = _handle_multiple_matching_libcs(matching_libcs)
- return search_by_build_id(selected_libc['buildid'], unstrip=unstrip)
- except requests.RequestException as e:
- log.warn_once("Failed to lookup libc for symbols %r from libc.rip: %s", symbols, e)
- return None
+ selected_libc = _handle_multiple_matching_libcs(matching_libcs)
+ return search_by_build_id(selected_libc['buildid'], unstrip=unstrip)
def search_by_build_id(hex_encoded_id, unstrip=True):
"""
@@ -503,4 +702,4 @@ def get_build_id_offsets():
}.get(context.arch, [])
-__all__ = ['get_build_id_offsets', 'search_by_build_id', 'search_by_sha1', 'search_by_sha256', 'search_by_md5', 'unstrip_libc', 'search_by_symbol_offsets']
+__all__ = ['get_build_id_offsets', 'search_by_build_id', 'search_by_sha1', 'search_by_sha256', 'search_by_md5', 'unstrip_libc', 'search_by_symbol_offsets', 'download_libraries']
diff --git a/pwnlib/rop/rop.py b/pwnlib/rop/rop.py
index 2c99282..0992373 100644
--- a/pwnlib/rop/rop.py
+++ b/pwnlib/rop/rop.py
@@ -1037,10 +1037,6 @@ class ROP(object):
return stack
-
- def find_stack_adjustment(self, slots):
- self.search(move=slots * context.bytes)
-
def chain(self, base=None):
"""Build the ROP chain
diff --git a/pwnlib/runner.py b/pwnlib/runner.py
index eebf7d6..b501e58 100644
--- a/pwnlib/runner.py
+++ b/pwnlib/runner.py
@@ -39,14 +39,14 @@ def run_shellcode(bytes, **kw):
Example:
- >>> bytes = asm('mov ebx, 3; mov eax, SYS_exit; int 0x80;')
- >>> p = run_shellcode(bytes)
+ >>> insn_bytes = asm('mov ebx, 3; mov eax, SYS_exit; int 0x80;')
+ >>> p = run_shellcode(insn_bytes)
>>> p.wait_for_close()
>>> p.poll()
3
- >>> bytes = asm('mov r0, #12; mov r7, #1; svc #0', arch='arm')
- >>> p = run_shellcode(bytes, arch='arm')
+ >>> insn_bytes = asm('mov r0, #12; mov r7, #1; svc #0', arch='arm')
+ >>> p = run_shellcode(insn_bytes, arch='arm')
>>> p.wait_for_close()
>>> p.poll()
12
@@ -84,8 +84,8 @@ def run_shellcode_exitcode(bytes):
Example:
- >>> bytes = asm('mov ebx, 3; mov eax, SYS_exit; int 0x80;')
- >>> run_shellcode_exitcode(bytes)
+ >>> insn_bytes = asm('mov ebx, 3; mov eax, SYS_exit; int 0x80;')
+ >>> run_shellcode_exitcode(insn_bytes)
3
"""
p = run_shellcode(bytes)
diff --git a/pwnlib/shellcraft/__init__.py b/pwnlib/shellcraft/__init__.py
index 592766c..de11274 100644
--- a/pwnlib/shellcraft/__init__.py
+++ b/pwnlib/shellcraft/__init__.py
@@ -153,9 +153,9 @@ class module(ModuleType):
if comment: return '%s /* %s */' % (n,self.pretty(int(n)))
else: return '%s (%s)' % (n,self.pretty(int(n)))
elif abs(n) < 10:
- return str(n)
+ return '%d' % n
else:
- return hex(n)
+ return '%#x' % n
def okay(self, s, *a, **kw):
if isinstance(s, six.integer_types):
diff --git a/pwnlib/shellcraft/templates/aarch64/linux/sleep.asm b/pwnlib/shellcraft/templates/aarch64/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/aarch64/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/shellcraft/templates/amd64/freebsd/amd64_to_i386.asm b/pwnlib/shellcraft/templates/amd64/freebsd/amd64_to_i386.asm
new file mode 100644
index 0000000..aeaaffa
--- /dev/null
+++ b/pwnlib/shellcraft/templates/amd64/freebsd/amd64_to_i386.asm
@@ -0,0 +1,10 @@
+<%docstring>Returns code to switch from amd64 to i386 mode. Trashes eax, ecx, edx.
+
+Note that you most surely want to set up some stack (and place this code)
+in low address space before (or afterwards).</%docstring>
+.code64
+ call $+4
+ .byte 0xc0 /* inc eax */
+ mov byte ptr [rsp+4], 0x33 /* This is the segment we want to go to */
+ retfd
+.code32
diff --git a/pwnlib/shellcraft/templates/amd64/linux/amd64_to_i386.asm b/pwnlib/shellcraft/templates/amd64/linux/amd64_to_i386.asm
index a2ca950..296ac47 100644
--- a/pwnlib/shellcraft/templates/amd64/linux/amd64_to_i386.asm
+++ b/pwnlib/shellcraft/templates/amd64/linux/amd64_to_i386.asm
@@ -1,5 +1,4 @@
-<% from pwnlib.shellcraft import common %>
-<%docstring>Returns code to switch from amd64 to i386 mode.
+<%docstring>Returns code to switch from amd64 to i386 mode. Trashes eax, ecx, edx.
Note that you most surely want to set up some stack (and place this code)
in low address space before (or afterwards).</%docstring>
diff --git a/pwnlib/shellcraft/templates/amd64/linux/migrate_stack.asm b/pwnlib/shellcraft/templates/amd64/linux/migrate_stack.asm
index f2c07eb..ca81b6a 100644
--- a/pwnlib/shellcraft/templates/amd64/linux/migrate_stack.asm
+++ b/pwnlib/shellcraft/templates/amd64/linux/migrate_stack.asm
@@ -5,4 +5,4 @@
${amd64.linux.mmap_rwx(size)}
${amd64.mov('rsp', 'rax')}
- add rsp, ${hex((size * 3 // 4) & ~7)}
+ add rsp, ${'%#x' % ((size * 3 // 4) & ~7)}
diff --git a/pwnlib/shellcraft/templates/amd64/linux/sleep.asm b/pwnlib/shellcraft/templates/amd64/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/amd64/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/shellcraft/templates/arm/linux/sleep.asm b/pwnlib/shellcraft/templates/arm/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/arm/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/shellcraft/templates/common/linux/sleep.asm b/pwnlib/shellcraft/templates/common/linux/sleep.asm
new file mode 100644
index 0000000..cb53d40
--- /dev/null
+++ b/pwnlib/shellcraft/templates/common/linux/sleep.asm
@@ -0,0 +1,29 @@
+<%
+ import pwnlib.abi
+ from pwnlib import shellcraft
+%>
+<%page args="seconds"/>
+<%docstring>
+Sleeps for the specified amount of seconds.
+
+Uses SYS_nanosleep under the hood.
+Doesn't check for interrupts and doesn't retry with the remaining time.
+
+Args:
+ seconds (int,float): The time to sleep in seconds.
+</%docstring>
+<%
+ # struct timespec {
+ # time_t tv_sec; /* Seconds */
+ # long tv_nsec; /* Nanoseconds */
+ # };
+ tv_sec = int(seconds)
+ tv_nsec = int((seconds % 1) * 1000000000)
+
+ abi = pwnlib.abi.ABI.syscall()
+ stack = abi.stack
+%>
+ /* sleep(${seconds}) */
+ ${shellcraft.push(tv_nsec)}
+ ${shellcraft.push(tv_sec)}
+ ${shellcraft.nanosleep(stack, 0)}
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/_llseek.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/_llseek.asm
index 8b9765b..3eedc9c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/_llseek.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/_llseek.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>_llseek(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>_llseek(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall _llseek.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS__llseek'])
%>
/* _llseek(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/_newselect.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/_newselect.asm
index 55bdd02..59d3f45 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/_newselect.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/_newselect.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>_newselect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>_newselect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall _newselect.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS__newselect'])
%>
/* _newselect(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/_sysctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/_sysctl.asm
index b128433..c3084db 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/_sysctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/_sysctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>_sysctl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>_sysctl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall _sysctl.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS__sysctl'])
%>
/* _sysctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/accept.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/accept.asm
index a336423..e4810e1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/accept.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/accept.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_accept'])
%>
/* accept(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/accept4.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/accept4.asm
index d12c39d..d6a635d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/accept4.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/accept4.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_accept4'])
%>
/* accept4(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/access.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/access.asm
index 8239555..f3fd88e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/access.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/access.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_access'])
%>
/* access(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/acct.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/acct.asm
index 2f96efc..c62eb38 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/acct.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/acct.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_acct'])
%>
/* acct(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/add_key.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/add_key.asm
index 23b0d9a..a9133a0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/add_key.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/add_key.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_add_key'])
%>
/* add_key(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/adjtimex.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/adjtimex.asm
index 954fd5d..b170de6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/adjtimex.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/adjtimex.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_adjtimex'])
%>
/* adjtimex(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/afs_syscall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/afs_syscall.asm
index fa5912c..1da0133 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/afs_syscall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/afs_syscall.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>afs_syscall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>afs_syscall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall afs_syscall.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_afs_syscall'])
%>
/* afs_syscall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/alarm.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/alarm.asm
index 2233fe7..df6c709 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/alarm.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/alarm.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_alarm'])
%>
/* alarm(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/arch_prctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/arch_prctl.asm
index d90e675..9b8f42e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/arch_prctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/arch_prctl.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_arch_prctl'])
%>
/* arch_prctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/arch_specific_syscall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/arch_specific_syscall.asm
index 9791ffe..35736ab 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/arch_specific_syscall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/arch_specific_syscall.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>arch_specific_syscall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>arch_specific_syscall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall arch_specific_syscall.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_arch_specific_syscall'])
%>
/* arch_specific_syscall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/arm_fadvise64_64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/arm_fadvise64_64.asm
index d525555..b1d4aa1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/arm_fadvise64_64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/arm_fadvise64_64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_arm_fadvise64_64'])
%>
/* arm_fadvise64_64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/arm_sync_file_range.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/arm_sync_file_range.asm
index 3446a8e..e65f4af 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/arm_sync_file_range.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/arm_sync_file_range.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>arm_sync_file_range(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>arm_sync_file_range(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall arm_sync_file_range.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_arm_sync_file_range'])
%>
/* arm_sync_file_range(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/bdflush.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/bdflush.asm
index dbc3cf3..27eff52 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/bdflush.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/bdflush.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_bdflush'])
%>
/* bdflush(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/bind.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/bind.asm
index 7a91892..0d4823e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/bind.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/bind.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_bind'])
%>
/* bind(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/bpf.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/bpf.asm
index 85d4528..ef07430 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/bpf.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/bpf.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_bpf'])
%>
/* bpf(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/break_.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/break_.asm
index e133fcc..1a3154c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/break_.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/break_.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>break(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>break(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall break.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_break'])
%>
/* break(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/brk.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/brk.asm
index 38a3d8c..8d0004d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/brk.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/brk.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_brk'])
%>
/* brk(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/cachectl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/cachectl.asm
index c19084d..bdf6660 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/cachectl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/cachectl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>cachectl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>cachectl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall cachectl.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_cachectl'])
%>
/* cachectl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/cacheflush.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/cacheflush.asm
index 44c0c67..9515bf4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/cacheflush.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/cacheflush.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_cacheflush'])
%>
/* cacheflush(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/capget.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/capget.asm
index 7f79f3e..ba76793 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/capget.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/capget.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_capget'])
%>
/* capget(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/capset.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/capset.asm
index e1ee3d8..446741a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/capset.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/capset.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_capset'])
%>
/* capset(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/chdir.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/chdir.asm
index 5251afb..0ae1b46 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/chdir.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/chdir.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_chdir'])
%>
/* chdir(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/chmod.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/chmod.asm
index c66230a..894bd3f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/chmod.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/chmod.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_chmod'])
%>
/* chmod(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/chown.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/chown.asm
index 727df1c..df3b319 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/chown.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/chown.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_chown'])
%>
/* chown(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/chown32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/chown32.asm
index 66b8ce7..037bcb4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/chown32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/chown32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>chown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>chown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall chown32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_chown32'])
%>
/* chown32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/chroot.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/chroot.asm
index 7c28931..eabaf7f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/chroot.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/chroot.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_chroot'])
%>
/* chroot(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime.asm
index b028252..203d9ee 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_adjtime'])
%>
/* clock_adjtime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime64.asm
index 0c2b8ff..99f2c5d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_adjtime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clock_adjtime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clock_adjtime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clock_adjtime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_adjtime64'])
%>
/* clock_adjtime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres.asm
index 2dfc885..1d457df 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_getres'])
%>
/* clock_getres(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres_time64.asm
index b8cadfa..8498e48 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_getres_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clock_getres_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clock_getres_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clock_getres_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_getres_time64'])
%>
/* clock_getres_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime.asm
index 29b5511..248180a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_gettime'])
%>
/* clock_gettime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime64.asm
index 24e520e..89d1596 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_gettime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clock_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clock_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clock_gettime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_gettime64'])
%>
/* clock_gettime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep.asm
index 5e79cbb..bd9b1df 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_nanosleep'])
%>
/* clock_nanosleep(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep_time64.asm
index 5d3e6b1..85bda7c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_nanosleep_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clock_nanosleep_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clock_nanosleep_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clock_nanosleep_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_nanosleep_time64'])
%>
/* clock_nanosleep_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime.asm
index 9762008..03addde 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_settime'])
%>
/* clock_settime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime64.asm
index 049f12a..c5f9f77 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clock_settime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clock_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clock_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clock_settime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clock_settime64'])
%>
/* clock_settime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clone.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clone.asm
index 9153544..00a037d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clone.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clone.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clone(fn, child_stack, flags, arg, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clone(fn, child_stack, flags, arg, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clone.
@@ -20,7 +20,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="fn=0, child_stack=0, flags=0, arg=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="fn=0, child_stack=0, flags=0, arg=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -30,8 +30,8 @@ Returns:
can_pushstr = ['child_stack', 'arg']
can_pushstr_array = []
- argument_names = ['fn', 'child_stack', 'flags', 'arg', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [fn, child_stack, flags, arg, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['fn', 'child_stack', 'flags', 'arg', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [fn, child_stack, flags, arg, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clone'])
%>
/* clone(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/clone3.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/clone3.asm
index 26fe1d6..11003f6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/clone3.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/clone3.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>clone3(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>clone3(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall clone3.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_clone3'])
%>
/* clone3(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/close.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/close.asm
index 836b0ef..ea9c2c6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/close.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/close.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_close'])
%>
/* close(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/connect.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/connect.asm
index ca6810a..a52f149 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/connect.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/connect.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_connect'])
%>
/* connect(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/copy_file_range.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/copy_file_range.asm
index 1c29e3e..98554b2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/copy_file_range.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/copy_file_range.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>copy_file_range(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>copy_file_range(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall copy_file_range.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_copy_file_range'])
%>
/* copy_file_range(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/creat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/creat.asm
index 8c819ad..960f620 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/creat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/creat.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_creat'])
%>
/* creat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/create_module.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/create_module.asm
index 466c985..945cf24 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/create_module.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/create_module.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_create_module'])
%>
/* create_module(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/delete_module.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/delete_module.asm
index b96619a..922a3d0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/delete_module.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/delete_module.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_delete_module'])
%>
/* delete_module(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/dup.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/dup.asm
index dada79b..60b0d8b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/dup.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/dup.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_dup'])
%>
/* dup(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/dup2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/dup2.asm
index 4cab6e8..f235bc3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/dup2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/dup2.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_dup2'])
%>
/* dup2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/dup3.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/dup3.asm
index 614c4a2..e5f6488 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/dup3.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/dup3.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_dup3'])
%>
/* dup3(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create.asm
index 87413ab..a5fa95d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_create'])
%>
/* epoll_create(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create1.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create1.asm
index af24f84..aa174e1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create1.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_create1.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_create1'])
%>
/* epoll_create1(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl.asm
index c6924a6..09a3bcf 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_ctl'])
%>
/* epoll_ctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl_old.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl_old.asm
index ed7f267..a90c18a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl_old.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_ctl_old.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>epoll_ctl_old(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>epoll_ctl_old(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall epoll_ctl_old.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_ctl_old'])
%>
/* epoll_ctl_old(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_pwait.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_pwait.asm
index 9dd6fdb..fd8e87f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_pwait.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_pwait.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_pwait'])
%>
/* epoll_pwait(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait.asm
index 6daa30a..f6f44ba 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_wait'])
%>
/* epoll_wait(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait_old.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait_old.asm
index 5098656..49d2afe 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait_old.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/epoll_wait_old.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>epoll_wait_old(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>epoll_wait_old(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall epoll_wait_old.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_epoll_wait_old'])
%>
/* epoll_wait_old(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd.asm
index d696689..6291327 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_eventfd'])
%>
/* eventfd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd2.asm
index 83f9d22..c280701 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/eventfd2.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>eventfd2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>eventfd2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall eventfd2.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_eventfd2'])
%>
/* eventfd2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/execve.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/execve.asm
index 1f74b73..56df88b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/execve.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/execve.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_execve'])
%>
/* execve(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/execveat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/execveat.asm
index a394a06..473eee7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/execveat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/execveat.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_execveat'])
%>
/* execveat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/exit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/exit.asm
index 08e080d..60b8d4a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/exit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/exit.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_exit'])
%>
/* exit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/exit_group.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/exit_group.asm
index 17f11c4..f2e5ed3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/exit_group.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/exit_group.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_exit_group'])
%>
/* exit_group(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/faccessat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/faccessat.asm
index a7ab426..a1c0155 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/faccessat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/faccessat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_faccessat'])
%>
/* faccessat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64.asm
index 376241b..d364aa0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fadvise64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fadvise64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fadvise64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fadvise64'])
%>
/* fadvise64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64_64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64_64.asm
index 4713703..4d4f996 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64_64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fadvise64_64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fadvise64_64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fadvise64_64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fadvise64_64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fadvise64_64'])
%>
/* fadvise64_64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fallocate.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fallocate.asm
index 26ab425..9a4fae4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fallocate.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fallocate.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fallocate'])
%>
/* fallocate(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_init.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_init.asm
index c8fc0bf..8e26f9f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_init.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_init.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fanotify_init'])
%>
/* fanotify_init(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_mark.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_mark.asm
index bf04fa9..573f017 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_mark.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fanotify_mark.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fanotify_mark'])
%>
/* fanotify_mark(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchdir.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchdir.asm
index 7ee8236..b15b46a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchdir.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchdir.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchdir'])
%>
/* fchdir(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchmod.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchmod.asm
index e3fe75a..1e0f14d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchmod.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchmod.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchmod'])
%>
/* fchmod(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchmodat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchmodat.asm
index e75a087..e1505fa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchmodat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchmodat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchmodat'])
%>
/* fchmodat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchown.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchown.asm
index 6bf6778..b7ece23 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchown.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchown.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchown'])
%>
/* fchown(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchown32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchown32.asm
index e2c97b2..5dd88c2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchown32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchown32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fchown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fchown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fchown32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchown32'])
%>
/* fchown32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fchownat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fchownat.asm
index 1b3449d..ff3b2ce 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fchownat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fchownat.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fchownat'])
%>
/* fchownat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl.asm
index 3da502f..9a51d22 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fcntl(fd, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fcntl(fd, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fcntl.
@@ -18,7 +18,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="fd=0, cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="fd=0, cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -28,8 +28,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['fd', 'cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [fd, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['fd', 'cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [fd, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fcntl'])
%>
/* fcntl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl64.asm
index cdcc94e..c237bb2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fcntl64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fcntl64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fcntl64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fcntl64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fcntl64'])
%>
/* fcntl64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fdatasync.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fdatasync.asm
index b1bff4f..39ed0e3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fdatasync.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fdatasync.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fdatasync'])
%>
/* fdatasync(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fgetxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fgetxattr.asm
index bf7ea28..804d7dd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fgetxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fgetxattr.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fgetxattr'])
%>
/* fgetxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/finit_module.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/finit_module.asm
index 39fc0c5..645f36f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/finit_module.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/finit_module.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_finit_module'])
%>
/* finit_module(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/flistxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/flistxattr.asm
index c2d8bf0..4e0bd4f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/flistxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/flistxattr.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_flistxattr'])
%>
/* flistxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/flock.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/flock.asm
index 81e4590..3670f5a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/flock.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/flock.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_flock'])
%>
/* flock(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fork.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fork.asm
index 135dae2..dedebd9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fork.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fork.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fork'])
%>
/* fork(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fremovexattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fremovexattr.asm
index f362621..019d675 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fremovexattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fremovexattr.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fremovexattr'])
%>
/* fremovexattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fsconfig.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fsconfig.asm
index b742917..80bb588 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fsconfig.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fsconfig.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fsconfig(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fsconfig(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fsconfig.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fsconfig'])
%>
/* fsconfig(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fsetxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fsetxattr.asm
index d1659ca..8ea8791 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fsetxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fsetxattr.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fsetxattr'])
%>
/* fsetxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fsmount.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fsmount.asm
index 376f649..5b9c1c2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fsmount.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fsmount.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fsmount(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fsmount(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fsmount.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fsmount'])
%>
/* fsmount(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fsopen.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fsopen.asm
index bbaa4bc..fe1ea36 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fsopen.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fsopen.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fsopen(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fsopen(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fsopen.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fsopen'])
%>
/* fsopen(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fspick.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fspick.asm
index 5346180..e415cb9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fspick.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fspick.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>fspick(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>fspick(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall fspick.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fspick'])
%>
/* fspick(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstat.asm
index d1f5268..62b18ab 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstat.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstat'])
%>
/* fstat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstat64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstat64.asm
index 9b79586..610dbca 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstat64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstat64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstat64'])
%>
/* fstat64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat.asm
index 78fd899..9996e8b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstatat'])
%>
/* fstatat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat64.asm
index e05b980..1ba1bd2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatat64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstatat64'])
%>
/* fstatat64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs.asm
index 4d8d2de..36b4f7f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstatfs'])
%>
/* fstatfs(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs64.asm
index 1b56eab..9f35328 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fstatfs64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fstatfs64'])
%>
/* fstatfs64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/fsync.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/fsync.asm
index 2ee6279..ef0d541 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/fsync.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/fsync.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_fsync'])
%>
/* fsync(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ftime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ftime.asm
index 9d4f87f..6064868 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ftime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ftime.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ftime'])
%>
/* ftime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate.asm
index c86439e..f8fe31d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ftruncate'])
%>
/* ftruncate(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate64.asm
index 52777a1..0b0a56a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ftruncate64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ftruncate64'])
%>
/* ftruncate64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/futex.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/futex.asm
index ddce930..6512f2f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/futex.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/futex.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_futex'])
%>
/* futex(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/futex_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/futex_time64.asm
index e5917f3..2aff8eb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/futex_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/futex_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>futex_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>futex_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall futex_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_futex_time64'])
%>
/* futex_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/futimesat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/futimesat.asm
index 697beb5..6f8df45 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/futimesat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/futimesat.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_futimesat'])
%>
/* futimesat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/get_kernel_syms.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/get_kernel_syms.asm
index 49bc875..5caafed 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/get_kernel_syms.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/get_kernel_syms.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_get_kernel_syms'])
%>
/* get_kernel_syms(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/get_mempolicy.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/get_mempolicy.asm
index ca2d18b..a9295e4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/get_mempolicy.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/get_mempolicy.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_get_mempolicy'])
%>
/* get_mempolicy(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/get_robust_list.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/get_robust_list.asm
index c2c2161..2c86b91 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/get_robust_list.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/get_robust_list.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_get_robust_list'])
%>
/* get_robust_list(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/get_thread_area.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/get_thread_area.asm
index a14b9ef..14bb85b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/get_thread_area.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/get_thread_area.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_get_thread_area'])
%>
/* get_thread_area(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getcpu.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getcpu.asm
index d6a236e..02f86d4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getcpu.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getcpu.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getcpu'])
%>
/* getcpu(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getcwd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getcwd.asm
index 88e0d7c..f98346b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getcwd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getcwd.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getcwd'])
%>
/* getcwd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getdents.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getdents.asm
index 95b7d89..0a1818a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getdents.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getdents.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getdents'])
%>
/* getdents(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getdents64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getdents64.asm
index 8a60ffb..ea51af8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getdents64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getdents64.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getdents64'])
%>
/* getdents64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getegid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getegid.asm
index 8960341..f2e01cf 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getegid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getegid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getegid'])
%>
/* getegid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getegid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getegid32.asm
index c142f89..fde842a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getegid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getegid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getegid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getegid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getegid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getegid32'])
%>
/* getegid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid.asm
index 390c87e..ae78ab7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_geteuid'])
%>
/* geteuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid32.asm
index e0ff5dd..2aed2b3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/geteuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>geteuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>geteuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall geteuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_geteuid32'])
%>
/* geteuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getgid.asm
index 13bab87..2e800d3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getgid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getgid'])
%>
/* getgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getgid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getgid32.asm
index 8bc36f9..74bb0f5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getgid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getgid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getgid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getgid32'])
%>
/* getgid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups.asm
index dcbd4ae..5b8a42e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getgroups'])
%>
/* getgroups(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups32.asm
index 33bb00a..be26952 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getgroups32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getgroups32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getgroups32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getgroups32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getgroups32'])
%>
/* getgroups32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getitimer.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getitimer.asm
index 245703e..8f40e60 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getitimer.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getitimer.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getitimer'])
%>
/* getitimer(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpeername.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpeername.asm
index c04c199..f9a0ea4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpeername.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpeername.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpeername'])
%>
/* getpeername(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpgid.asm
index 660c8d5..7663b28 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpgid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpgid'])
%>
/* getpgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpgrp.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpgrp.asm
index a10949c..6b39026 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpgrp.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpgrp.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpgrp'])
%>
/* getpgrp(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpid.asm
index 82f8ba0..60b16f9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpid'])
%>
/* getpid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpmsg.asm
index c0df60f..db65c32 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpmsg.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpmsg'])
%>
/* getpmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getppid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getppid.asm
index 6b837f8..0d53284 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getppid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getppid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getppid'])
%>
/* getppid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getpriority.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getpriority.asm
index d5bd712..8087531 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getpriority.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getpriority.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getpriority'])
%>
/* getpriority(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getrandom.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getrandom.asm
index 8c3f6d2..67aa065 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getrandom.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getrandom.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getrandom'])
%>
/* getrandom(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid.asm
index 0472f33..7dbf29d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getresgid'])
%>
/* getresgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid32.asm
index 65fbdfa..f44acdb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getresgid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getresgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getresgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getresgid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getresgid32'])
%>
/* getresgid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid.asm
index 4d03539..88bfbf3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getresuid'])
%>
/* getresuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid32.asm
index c3632dd..ee04bbd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getresuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getresuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getresuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getresuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getresuid32'])
%>
/* getresuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getrlimit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getrlimit.asm
index 51e8daf..9ad22ff 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getrlimit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getrlimit.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getrlimit'])
%>
/* getrlimit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getrusage.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getrusage.asm
index 40b71e9..bee4d43 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getrusage.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getrusage.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getrusage'])
%>
/* getrusage(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getsid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getsid.asm
index 4a3b01f..07a0f6b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getsid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getsid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getsid'])
%>
/* getsid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getsockname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getsockname.asm
index c68b6a5..b2334aa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getsockname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getsockname.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getsockname'])
%>
/* getsockname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getsockopt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getsockopt.asm
index 358127a..c8f07d5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getsockopt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getsockopt.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getsockopt'])
%>
/* getsockopt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/gettid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/gettid.asm
index 0ef18b4..da4575b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/gettid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/gettid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_gettid'])
%>
/* gettid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/gettimeofday.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/gettimeofday.asm
index a9a77d2..7be2da3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/gettimeofday.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/gettimeofday.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_gettimeofday'])
%>
/* gettimeofday(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getuid.asm
index 82aeffe..69c3a0b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getuid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getuid'])
%>
/* getuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getuid32.asm
index 327e127..9f9dc2d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>getuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>getuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall getuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getuid32'])
%>
/* getuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/getxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/getxattr.asm
index 4ad4c9b..74c9b57 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/getxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/getxattr.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_getxattr'])
%>
/* getxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/gtty.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/gtty.asm
index 39cbc6c..33eacdc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/gtty.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/gtty.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_gtty'])
%>
/* gtty(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_arch_prctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_arch_prctl.asm
index d14971c..189916c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_arch_prctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_arch_prctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ia32_arch_prctl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ia32_arch_prctl(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ia32_arch_prctl.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ia32_arch_prctl'])
%>
/* ia32_arch_prctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_io_pgetevents.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_io_pgetevents.asm
index 59b47e8..4b69552 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_io_pgetevents.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_io_pgetevents.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ia32_io_pgetevents(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ia32_io_pgetevents(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ia32_io_pgetevents.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ia32_io_pgetevents'])
%>
/* ia32_io_pgetevents(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_rseq.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_rseq.asm
index 098d955..b6c1e2a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_rseq.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_rseq.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ia32_rseq(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ia32_rseq(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ia32_rseq.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ia32_rseq'])
%>
/* ia32_rseq(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_statx.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_statx.asm
index 215fa22..e4102c4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_statx.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ia32_statx.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ia32_statx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ia32_statx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ia32_statx.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ia32_statx'])
%>
/* ia32_statx(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/idle.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/idle.asm
index b002de5..3b95bd5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/idle.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/idle.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_idle'])
%>
/* idle(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/init_module.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/init_module.asm
index 3caeb5d..fd9f994 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/init_module.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/init_module.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_init_module'])
%>
/* init_module(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_add_watch.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_add_watch.asm
index c5a6ceb..4475ac4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_add_watch.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_add_watch.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_inotify_add_watch'])
%>
/* inotify_add_watch(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init.asm
index 6a8da34..50ecf6f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_inotify_init'])
%>
/* inotify_init(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init1.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init1.asm
index 88f1412..438d17a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init1.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_init1.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_inotify_init1'])
%>
/* inotify_init1(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_rm_watch.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_rm_watch.asm
index d1e230c..0dcf795 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_rm_watch.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/inotify_rm_watch.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_inotify_rm_watch'])
%>
/* inotify_rm_watch(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_cancel.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_cancel.asm
index acc12be..1a058fe 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_cancel.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_cancel.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_cancel'])
%>
/* io_cancel(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_destroy.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_destroy.asm
index 432749b..d2227f9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_destroy.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_destroy.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_destroy'])
%>
/* io_destroy(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_getevents.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_getevents.asm
index 27104e9..45e5309 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_getevents.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_getevents.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_getevents'])
%>
/* io_getevents(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents.asm
index cb31291..bd04fa7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>io_pgetevents(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>io_pgetevents(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall io_pgetevents.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_pgetevents'])
%>
/* io_pgetevents(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents_time64.asm
index ad968fc..a710c44 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_pgetevents_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>io_pgetevents_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>io_pgetevents_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall io_pgetevents_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_pgetevents_time64'])
%>
/* io_pgetevents_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_setup.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_setup.asm
index fe69062..d1b89c2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_setup.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_setup.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_setup'])
%>
/* io_setup(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_submit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_submit.asm
index 75a4eba..3d7ee93 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_submit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_submit.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_submit'])
%>
/* io_submit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_enter.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_enter.asm
index ab85548..fd6c60c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_enter.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_enter.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>io_uring_enter(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>io_uring_enter(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall io_uring_enter.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_uring_enter'])
%>
/* io_uring_enter(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_register.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_register.asm
index cb41e47..1e8fbe0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_register.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_register.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>io_uring_register(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>io_uring_register(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall io_uring_register.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_uring_register'])
%>
/* io_uring_register(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_setup.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_setup.asm
index a735f54..8003817 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_setup.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/io_uring_setup.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>io_uring_setup(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>io_uring_setup(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall io_uring_setup.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_io_uring_setup'])
%>
/* io_uring_setup(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ioctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ioctl.asm
index 114bfc7..5d6ddf9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ioctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ioctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ioctl(fd, request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ioctl(fd, request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ioctl.
@@ -18,7 +18,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="fd=0, request=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="fd=0, request=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -28,8 +28,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['fd', 'request', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [fd, request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['fd', 'request', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [fd, request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ioctl'])
%>
/* ioctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ioperm.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ioperm.asm
index f523bca..b07f0ff 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ioperm.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ioperm.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ioperm'])
%>
/* ioperm(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/iopl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/iopl.asm
index 003d84a..e3a9068 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/iopl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/iopl.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_iopl'])
%>
/* iopl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_get.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_get.asm
index 4da84d1..8115fdd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_get.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_get.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ioprio_get'])
%>
/* ioprio_get(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_set.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_set.asm
index 977f192..e0e8450 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_set.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ioprio_set.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ioprio_set'])
%>
/* ioprio_set(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ipc.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ipc.asm
index c823284..0fe71e4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ipc.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ipc.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ipc'])
%>
/* ipc(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/kcmp.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/kcmp.asm
index 38f532f..5dccefe 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/kcmp.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/kcmp.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_kcmp'])
%>
/* kcmp(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_file_load.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_file_load.asm
index 0442bbd..bc83985 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_file_load.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_file_load.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_kexec_file_load'])
%>
/* kexec_file_load(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_load.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_load.asm
index 671f860..92820b4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_load.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/kexec_load.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_kexec_load'])
%>
/* kexec_load(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/keyctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/keyctl.asm
index a873651..77603e9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/keyctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/keyctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>keyctl(cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>keyctl(cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall keyctl.
@@ -17,7 +17,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -27,8 +27,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_keyctl'])
%>
/* keyctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm
index b6febc0..05a1ca3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/kill.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_kill'])
%>
/* kill(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lchown.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lchown.asm
index 33cf2ef..1698624 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lchown.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lchown.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lchown'])
%>
/* lchown(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lchown32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lchown32.asm
index 452737c..768ab66 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lchown32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lchown32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>lchown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>lchown32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall lchown32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lchown32'])
%>
/* lchown32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lgetxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lgetxattr.asm
index 4460b1b..8917d52 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lgetxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lgetxattr.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lgetxattr'])
%>
/* lgetxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/link.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/link.asm
index e71fb80..e334411 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/link.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/link.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_link'])
%>
/* link(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/linkat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/linkat.asm
index 404b95c..d297b2a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/linkat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/linkat.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_linkat'])
%>
/* linkat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/listen.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/listen.asm
index 493f4b2..27e6530 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/listen.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/listen.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_listen'])
%>
/* listen(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/listxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/listxattr.asm
index 940c01c..f575949 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/listxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/listxattr.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_listxattr'])
%>
/* listxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/llistxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/llistxattr.asm
index bc8f5d6..e88e1e0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/llistxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/llistxattr.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_llistxattr'])
%>
/* llistxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lock.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lock.asm
index 7d425fc..db1075c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lock.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lock.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>lock(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>lock(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall lock.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lock'])
%>
/* lock(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lookup_dcookie.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lookup_dcookie.asm
index df06eff..3413214 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lookup_dcookie.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lookup_dcookie.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lookup_dcookie'])
%>
/* lookup_dcookie(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lremovexattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lremovexattr.asm
index cf88115..58a8ad7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lremovexattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lremovexattr.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lremovexattr'])
%>
/* lremovexattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lseek.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lseek.asm
index a5f6917..f367e15 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lseek.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lseek.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lseek'])
%>
/* lseek(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lsetxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lsetxattr.asm
index 5ea6abb..f7956d9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lsetxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lsetxattr.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lsetxattr'])
%>
/* lsetxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lstat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lstat.asm
index 8d33296..9bb908c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lstat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lstat.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lstat'])
%>
/* lstat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/lstat64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/lstat64.asm
index 6ede119..b03993f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/lstat64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/lstat64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_lstat64'])
%>
/* lstat64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/madvise.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/madvise.asm
index 44938a1..622c466 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/madvise.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/madvise.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_madvise'])
%>
/* madvise(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/madvise1.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/madvise1.asm
index 7650df9..d9e067a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/madvise1.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/madvise1.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>madvise1(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>madvise1(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall madvise1.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_madvise1'])
%>
/* madvise1(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mbind.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mbind.asm
index db359e1..c5b8ee2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mbind.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mbind.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mbind'])
%>
/* mbind(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/membarrier.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/membarrier.asm
index 38cfca3..6dc94e1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/membarrier.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/membarrier.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_membarrier'])
%>
/* membarrier(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/memfd_create.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/memfd_create.asm
index 4f78162..63cbd15 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/memfd_create.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/memfd_create.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_memfd_create'])
%>
/* memfd_create(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/migrate_pages.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/migrate_pages.asm
index 3f9bd31..56b1d95 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/migrate_pages.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/migrate_pages.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_migrate_pages'])
%>
/* migrate_pages(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mincore.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mincore.asm
index ea26c5b..f11c171 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mincore.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mincore.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mincore'])
%>
/* mincore(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mkdir.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mkdir.asm
index 563c652..6d41840 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mkdir.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mkdir.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mkdir'])
%>
/* mkdir(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mkdirat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mkdirat.asm
index 1f70bbe..ad58eb5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mkdirat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mkdirat.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mkdirat'])
%>
/* mkdirat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mknod.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mknod.asm
index 77125bd..ea011ba 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mknod.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mknod.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mknod'])
%>
/* mknod(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mknodat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mknodat.asm
index 26a8721..283b824 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mknodat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mknodat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mknodat'])
%>
/* mknodat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mlock.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mlock.asm
index b636a93..a033065 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mlock.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mlock.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mlock'])
%>
/* mlock(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mlock2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mlock2.asm
index 077c570..8ee17fe 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mlock2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mlock2.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mlock2'])
%>
/* mlock2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mlockall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mlockall.asm
index 4e8a505..92cbe1a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mlockall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mlockall.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mlockall'])
%>
/* mlockall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mmap.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mmap.asm
index 984ce52..266bb7d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mmap.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mmap.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mmap2', 'SYS_mmap'])
%>
/* mmap(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mmap2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mmap2.asm
index 5f048f0..b510af4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mmap2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mmap2.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mmap2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mmap2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mmap2.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mmap2'])
%>
/* mmap2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/modify_ldt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/modify_ldt.asm
index 4222979..d1f7e1f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/modify_ldt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/modify_ldt.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_modify_ldt'])
%>
/* modify_ldt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mount.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mount.asm
index f2986d9..4b8edba 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mount.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mount.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mount'])
%>
/* mount(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/move_mount.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/move_mount.asm
index 99991d7..df5d047 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/move_mount.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/move_mount.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>move_mount(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>move_mount(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall move_mount.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_move_mount'])
%>
/* move_mount(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/move_pages.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/move_pages.asm
index f445328..2642cd9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/move_pages.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/move_pages.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_move_pages'])
%>
/* move_pages(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mprotect.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mprotect.asm
index d015302..9a17360 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mprotect.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mprotect.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mprotect'])
%>
/* mprotect(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mpx.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mpx.asm
index a28def3..9cf1c12 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mpx.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mpx.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mpx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mpx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mpx.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mpx'])
%>
/* mpx(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_getsetattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_getsetattr.asm
index e7e57d7..fd25c20 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_getsetattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_getsetattr.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_getsetattr'])
%>
/* mq_getsetattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_notify.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_notify.asm
index 53c07a1..0173bd9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_notify.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_notify.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_notify'])
%>
/* mq_notify(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_open.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_open.asm
index 9aa895c..d01e5c3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_open.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_open.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mq_open(name, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mq_open(name, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mq_open.
@@ -18,7 +18,7 @@ Arguments:
Returns:
mqd_t
</%docstring>
-<%page args="name=0, oflag=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="name=0, oflag=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -28,8 +28,8 @@ Returns:
can_pushstr = ['name']
can_pushstr_array = []
- argument_names = ['name', 'oflag', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [name, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['name', 'oflag', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [name, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_open'])
%>
/* mq_open(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive.asm
index 4b9d2a1..9923b11 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_timedreceive'])
%>
/* mq_timedreceive(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive_time64.asm
index cc1de9f..5471891 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedreceive_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mq_timedreceive_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mq_timedreceive_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mq_timedreceive_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_timedreceive_time64'])
%>
/* mq_timedreceive_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend.asm
index 22c5a65..0d955e2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_timedsend'])
%>
/* mq_timedsend(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend_time64.asm
index 709a674..7d8f3dc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_timedsend_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mq_timedsend_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mq_timedsend_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mq_timedsend_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_timedsend_time64'])
%>
/* mq_timedsend_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_unlink.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_unlink.asm
index a2f62a2..210664e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mq_unlink.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mq_unlink.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mq_unlink'])
%>
/* mq_unlink(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/mremap.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/mremap.asm
index 08e6c00..68c3312 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/mremap.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/mremap.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>mremap(addr, old_len, new_len, flags, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>mremap(addr, old_len, new_len, flags, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall mremap.
@@ -20,7 +20,7 @@ Arguments:
Returns:
void*
</%docstring>
-<%page args="addr=0, old_len=0, new_len=0, flags=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="addr=0, old_len=0, new_len=0, flags=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -30,8 +30,8 @@ Returns:
can_pushstr = ['addr']
can_pushstr_array = []
- argument_names = ['addr', 'old_len', 'new_len', 'flags', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [addr, old_len, new_len, flags, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['addr', 'old_len', 'new_len', 'flags', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [addr, old_len, new_len, flags, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_mremap'])
%>
/* mremap(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/msgctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/msgctl.asm
index 0ab4d8b..4ea7f03 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/msgctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/msgctl.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_msgctl'])
%>
/* msgctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/msgget.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/msgget.asm
index 10e8d1a..56a6deb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/msgget.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/msgget.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_msgget'])
%>
/* msgget(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/msgrcv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/msgrcv.asm
index 4b3c399..adcb1b2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/msgrcv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/msgrcv.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_msgrcv'])
%>
/* msgrcv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/msgsnd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/msgsnd.asm
index 5c1c89b..9656f0c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/msgsnd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/msgsnd.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_msgsnd'])
%>
/* msgsnd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/msync.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/msync.asm
index e678e48..7e7bd22 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/msync.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/msync.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_msync'])
%>
/* msync(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/munlock.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/munlock.asm
index 594b481..ce5e529 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/munlock.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/munlock.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_munlock'])
%>
/* munlock(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/munlockall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/munlockall.asm
index 3d1122b..89c2cb6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/munlockall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/munlockall.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_munlockall'])
%>
/* munlockall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/munmap.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/munmap.asm
index 6193043..9fe5f20 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/munmap.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/munmap.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_munmap'])
%>
/* munmap(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/name_to_handle_at.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/name_to_handle_at.asm
index 9f4c8f2..5890a00 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/name_to_handle_at.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/name_to_handle_at.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_name_to_handle_at'])
%>
/* name_to_handle_at(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/nanosleep.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/nanosleep.asm
index 283d0c2..7605a85 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/nanosleep.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/nanosleep.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_nanosleep'])
%>
/* nanosleep(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/newfstatat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/newfstatat.asm
index 5ed8bf4..caac21d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/newfstatat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/newfstatat.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>newfstatat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>newfstatat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall newfstatat.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_newfstatat'])
%>
/* newfstatat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/nfsservctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/nfsservctl.asm
index 0ea3545..0e703ef 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/nfsservctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/nfsservctl.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_nfsservctl'])
%>
/* nfsservctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/nice.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/nice.asm
index b395f8d..50f1698 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/nice.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/nice.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_nice'])
%>
/* nice(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/oldfstat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/oldfstat.asm
index 2823994..f6e6e8c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/oldfstat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/oldfstat.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>oldfstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>oldfstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall oldfstat.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_oldfstat'])
%>
/* oldfstat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/oldlstat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/oldlstat.asm
index 9455592..630e68a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/oldlstat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/oldlstat.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>oldlstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>oldlstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall oldlstat.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_oldlstat'])
%>
/* oldlstat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/oldolduname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/oldolduname.asm
index 8d2b210..edd8ba6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/oldolduname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/oldolduname.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>oldolduname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>oldolduname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall oldolduname.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_oldolduname'])
%>
/* oldolduname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/oldstat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/oldstat.asm
index 4d5f373..eb6cdb9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/oldstat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/oldstat.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>oldstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>oldstat(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall oldstat.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_oldstat'])
%>
/* oldstat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/olduname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/olduname.asm
index 3fd8a0f..0b64e97 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/olduname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/olduname.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>olduname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>olduname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall olduname.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_olduname'])
%>
/* olduname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/open.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/open.asm
index 66c09a4..297ee94 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/open.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/open.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_open'])
%>
/* open(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/open_by_handle_at.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/open_by_handle_at.asm
index 9d30309..ace6e88 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/open_by_handle_at.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/open_by_handle_at.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_open_by_handle_at'])
%>
/* open_by_handle_at(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/open_tree.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/open_tree.asm
index 803267b..39360db 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/open_tree.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/open_tree.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>open_tree(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>open_tree(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall open_tree.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_open_tree'])
%>
/* open_tree(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/openat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/openat.asm
index 5846aae..bb4c119 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/openat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/openat.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>openat(fd, file, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>openat(fd, file, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall openat.
@@ -19,7 +19,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="fd=0, file=0, oflag=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="fd=0, file=0, oflag=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -29,8 +29,8 @@ Returns:
can_pushstr = ['file']
can_pushstr_array = []
- argument_names = ['fd', 'file', 'oflag', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [fd, file, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['fd', 'file', 'oflag', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [fd, file, oflag, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_openat'])
%>
/* openat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/openat2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/openat2.asm
index 8e186b4..b32d8b1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/openat2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/openat2.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>openat2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>openat2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall openat2.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_openat2'])
%>
/* openat2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pause.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pause.asm
index 7758c87..ede24fa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pause.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pause.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pause'])
%>
/* pause(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_iobase.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_iobase.asm
index 3c264e1..f9e9555 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_iobase.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_iobase.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pciconfig_iobase'])
%>
/* pciconfig_iobase(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_read.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_read.asm
index 491e432..f43526b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_read.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_read.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pciconfig_read'])
%>
/* pciconfig_read(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_write.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_write.asm
index 2956829..866f30c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_write.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pciconfig_write.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pciconfig_write'])
%>
/* pciconfig_write(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/perf_event_open.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/perf_event_open.asm
index 75c2f43..963e506 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/perf_event_open.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/perf_event_open.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_perf_event_open'])
%>
/* perf_event_open(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/personality.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/personality.asm
index 635f001..8337eae 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/personality.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/personality.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_personality'])
%>
/* personality(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_getfd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_getfd.asm
index 2a3c5b9..0ae267b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_getfd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_getfd.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pidfd_getfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pidfd_getfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pidfd_getfd.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pidfd_getfd'])
%>
/* pidfd_getfd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_open.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_open.asm
index b9aedac..cbc7241 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_open.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_open.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pidfd_open(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pidfd_open(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pidfd_open.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pidfd_open'])
%>
/* pidfd_open(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_send_signal.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_send_signal.asm
index cac0b8e..aa7a169 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_send_signal.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pidfd_send_signal.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pidfd_send_signal(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pidfd_send_signal(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pidfd_send_signal.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pidfd_send_signal'])
%>
/* pidfd_send_signal(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pipe.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pipe.asm
index ec15773..1872488 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pipe.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pipe.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pipe'])
%>
/* pipe(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pipe2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pipe2.asm
index 346ae01..40ac960 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pipe2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pipe2.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pipe2'])
%>
/* pipe2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pivot_root.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pivot_root.asm
index e2896d5..4fb910f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pivot_root.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pivot_root.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pivot_root'])
%>
/* pivot_root(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_alloc.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_alloc.asm
index f541e72..bd8a8d5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_alloc.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_alloc.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pkey_alloc(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pkey_alloc(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pkey_alloc.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pkey_alloc'])
%>
/* pkey_alloc(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_free.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_free.asm
index 4975b52..e105aff 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_free.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_free.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pkey_free(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pkey_free(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pkey_free.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pkey_free'])
%>
/* pkey_free(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_mprotect.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_mprotect.asm
index 988ea58..e1d0416 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_mprotect.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pkey_mprotect.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pkey_mprotect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pkey_mprotect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pkey_mprotect.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pkey_mprotect'])
%>
/* pkey_mprotect(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/poll.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/poll.asm
index 6f110b5..c5dfdfd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/poll.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/poll.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_poll'])
%>
/* poll(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll.asm
index 67b06f0..0cdae79 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ppoll'])
%>
/* ppoll(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll_time64.asm
index 3b080c8..e21ad0f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ppoll_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ppoll_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ppoll_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ppoll_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ppoll_time64'])
%>
/* ppoll_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/prctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/prctl.asm
index e24465f..7b803fa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/prctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/prctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>prctl(option, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>prctl(option, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall prctl.
@@ -17,7 +17,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="option=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="option=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -27,8 +27,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['option', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [option, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['option', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [option, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_prctl'])
%>
/* prctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pread.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pread.asm
index 0e42dc7..621493e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pread.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pread.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pread'])
%>
/* pread(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pread64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pread64.asm
index 5985dd1..b18fcd3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pread64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pread64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pread64'])
%>
/* pread64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/preadv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/preadv.asm
index 4a0d084..b008afd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/preadv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/preadv.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_preadv'])
%>
/* preadv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/preadv2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/preadv2.asm
index dca4e60..dfeb1ee 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/preadv2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/preadv2.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>preadv2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>preadv2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall preadv2.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_preadv2'])
%>
/* preadv2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/prlimit64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/prlimit64.asm
index c9aba35..3ee6c82 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/prlimit64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/prlimit64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_prlimit64'])
%>
/* prlimit64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_readv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_readv.asm
index cb4b2b7..338b475 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_readv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_readv.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_process_vm_readv'])
%>
/* process_vm_readv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_writev.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_writev.asm
index 6337bcd..d621ea8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_writev.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/process_vm_writev.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_process_vm_writev'])
%>
/* process_vm_writev(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/prof.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/prof.asm
index e64b5c4..ff04c92 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/prof.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/prof.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>prof(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>prof(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall prof.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_prof'])
%>
/* prof(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/profil.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/profil.asm
index 9aa6df2..4fdf729 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/profil.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/profil.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_profil'])
%>
/* profil(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6.asm
index 1bbe4fd..bf3c006 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pselect6(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pselect6(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pselect6.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pselect6'])
%>
/* pselect6(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6_time64.asm
index 70d5515..c7d6577 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pselect6_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pselect6_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pselect6_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pselect6_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pselect6_time64'])
%>
/* pselect6_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ptrace.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ptrace.asm
index 4c60121..bb145c8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ptrace.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ptrace.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ptrace(request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ptrace(request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ptrace.
@@ -17,7 +17,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="request=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="request=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -27,8 +27,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['request', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['request', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [request, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ptrace'])
%>
/* ptrace(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/putpmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/putpmsg.asm
index c85f35b..566e216 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/putpmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/putpmsg.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_putpmsg'])
%>
/* putpmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite.asm
index 7f77c31..bf3c03c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pwrite'])
%>
/* pwrite(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite64.asm
index 826d5bb..e55e74d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pwrite64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pwrite64'])
%>
/* pwrite64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev.asm
index 08c9a12..72bd4aa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pwritev'])
%>
/* pwritev(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev2.asm
index 031db24..2f55f2d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/pwritev2.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>pwritev2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>pwritev2(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall pwritev2.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_pwritev2'])
%>
/* pwritev2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/query_module.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/query_module.asm
index bf1d931..17fac61 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/query_module.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/query_module.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_query_module'])
%>
/* query_module(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/quotactl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/quotactl.asm
index 1a83a84..486c56f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/quotactl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/quotactl.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_quotactl'])
%>
/* quotactl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/read.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/read.asm
index b4fe7b4..e6df22e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/read.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/read.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_read'])
%>
/* read(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/readahead.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/readahead.asm
index cce0a25..1efe333 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/readahead.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/readahead.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_readahead'])
%>
/* readahead(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/readdir.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/readdir.asm
index d4d9da8..a776721 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/readdir.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/readdir.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_readdir'])
%>
/* readdir(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/readlink.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/readlink.asm
index 123e93c..4c0aade 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/readlink.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/readlink.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_readlink'])
%>
/* readlink(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/readlinkat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/readlinkat.asm
index 155b2a4..e872957 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/readlinkat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/readlinkat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_readlinkat'])
%>
/* readlinkat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/readv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/readv.asm
index 52ac9b5..5369ca0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/readv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/readv.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_readv'])
%>
/* readv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/reboot.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/reboot.asm
index 9f60dd6..6864700 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/reboot.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/reboot.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_reboot'])
%>
/* reboot(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/recv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/recv.asm
index 55292c6..fdc2a03 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/recv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/recv.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_recv'])
%>
/* recv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/recvfrom.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/recvfrom.asm
index 05a8934..85621b8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/recvfrom.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/recvfrom.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_recvfrom'])
%>
/* recvfrom(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg.asm
index d09cd89..ad072d5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_recvmmsg'])
%>
/* recvmmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg_time64.asm
index 6e26d27..05d4651 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmmsg_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>recvmmsg_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>recvmmsg_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall recvmmsg_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_recvmmsg_time64'])
%>
/* recvmmsg_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmsg.asm
index 6f35ee3..a838674 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/recvmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/recvmsg.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_recvmsg'])
%>
/* recvmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/remap_file_pages.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/remap_file_pages.asm
index 61e55ee..1cd3d12 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/remap_file_pages.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/remap_file_pages.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_remap_file_pages'])
%>
/* remap_file_pages(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/removexattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/removexattr.asm
index aad4f0b..46eff93 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/removexattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/removexattr.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_removexattr'])
%>
/* removexattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/rename.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/rename.asm
index 2ab974e..a7d3574 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/rename.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/rename.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rename'])
%>
/* rename(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/renameat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/renameat.asm
index fd7b56f..1d44b10 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/renameat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/renameat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_renameat'])
%>
/* renameat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/renameat2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/renameat2.asm
index a098492..8a7ac15 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/renameat2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/renameat2.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_renameat2'])
%>
/* renameat2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/request_key.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/request_key.asm
index c24f9b0..30daef5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/request_key.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/request_key.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_request_key'])
%>
/* request_key(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/reserved221.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/reserved221.asm
index 2108215..acbd679 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/reserved221.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/reserved221.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>reserved221(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>reserved221(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall reserved221.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_reserved221'])
%>
/* reserved221(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/reserved82.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/reserved82.asm
index aaf2523..fd2d049 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/reserved82.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/reserved82.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>reserved82(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>reserved82(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall reserved82.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_reserved82'])
%>
/* reserved82(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/restart_syscall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/restart_syscall.asm
index e4dc993..36f0935 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/restart_syscall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/restart_syscall.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_restart_syscall'])
%>
/* restart_syscall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/rmdir.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/rmdir.asm
index 2775f3e..effc016 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/rmdir.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/rmdir.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rmdir'])
%>
/* rmdir(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/rseq.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/rseq.asm
index b096b36..934466f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/rseq.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/rseq.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>rseq(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>rseq(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall rseq.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rseq'])
%>
/* rseq(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_max.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_max.asm
index 0f9300c..bc7db37 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_max.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_max.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_get_priority_max'])
%>
/* sched_get_priority_max(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_min.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_min.asm
index 789b0f9..98b5f3b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_min.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_get_priority_min.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_get_priority_min'])
%>
/* sched_get_priority_min(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getaffinity.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getaffinity.asm
index 497445c..be20458 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getaffinity.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getaffinity.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_getaffinity'])
%>
/* sched_getaffinity(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getattr.asm
index 987a63d..aaa683f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getattr.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_getattr'])
%>
/* sched_getattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getparam.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getparam.asm
index 0f065da..ab2c2a2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getparam.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getparam.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_getparam'])
%>
/* sched_getparam(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getscheduler.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getscheduler.asm
index 5987e61..785352d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getscheduler.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_getscheduler.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_getscheduler'])
%>
/* sched_getscheduler(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval.asm
index fcf1657..4410a54 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_rr_get_interval'])
%>
/* sched_rr_get_interval(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval_time64.asm
index db823e9..8f8fc4d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_rr_get_interval_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>sched_rr_get_interval_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>sched_rr_get_interval_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall sched_rr_get_interval_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_rr_get_interval_time64'])
%>
/* sched_rr_get_interval_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setaffinity.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setaffinity.asm
index b4195a2..430b15c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setaffinity.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setaffinity.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_setaffinity'])
%>
/* sched_setaffinity(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setattr.asm
index 9f32598..c252381 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setattr.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_setattr'])
%>
/* sched_setattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setparam.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setparam.asm
index bb97bba..b830473 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setparam.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setparam.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_setparam'])
%>
/* sched_setparam(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setscheduler.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setscheduler.asm
index 9af1cef..70bca5a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setscheduler.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_setscheduler.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_setscheduler'])
%>
/* sched_setscheduler(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_yield.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_yield.asm
index 873f81c..ce9b5a7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sched_yield.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sched_yield.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sched_yield'])
%>
/* sched_yield(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/seccomp.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/seccomp.asm
index b72ddc6..e345611 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/seccomp.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/seccomp.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_seccomp'])
%>
/* seccomp(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/security.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/security.asm
index bb210a2..590b155 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/security.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/security.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>security(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>security(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall security.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_security'])
%>
/* security(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/select.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/select.asm
index 63964db..f79e38b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/select.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/select.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_select'])
%>
/* select(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/semctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/semctl.asm
index 4fd3c16..10f618d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/semctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/semctl.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>semctl(semid, semnum, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>semctl(semid, semnum, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall semctl.
@@ -19,7 +19,7 @@ Arguments:
Returns:
int
</%docstring>
-<%page args="semid=0, semnum=0, cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="semid=0, semnum=0, cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -29,8 +29,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['semid', 'semnum', 'cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [semid, semnum, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['semid', 'semnum', 'cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [semid, semnum, cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_semctl'])
%>
/* semctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/semget.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/semget.asm
index 9941b6c..0ebbc25 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/semget.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/semget.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_semget'])
%>
/* semget(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/semop.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/semop.asm
index 16c6f51..442c33e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/semop.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/semop.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_semop'])
%>
/* semop(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop.asm
index 5c1e2f8..d05d8ea 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_semtimedop'])
%>
/* semtimedop(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop_time64.asm
index 6bc8337..426e835 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/semtimedop_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>semtimedop_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>semtimedop_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall semtimedop_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_semtimedop_time64'])
%>
/* semtimedop_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/send.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/send.asm
index fac12ef..2004a18 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/send.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/send.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_send'])
%>
/* send(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile.asm
index 197670c..7239231 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sendfile'])
%>
/* sendfile(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile64.asm
index 5bf7738..5c2e761 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sendfile64.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sendfile64'])
%>
/* sendfile64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sendmmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sendmmsg.asm
index 655f210..f0789ce 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sendmmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sendmmsg.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sendmmsg'])
%>
/* sendmmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sendmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sendmsg.asm
index 8b0d153..b4f06d1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sendmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sendmsg.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sendmsg'])
%>
/* sendmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sendto.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sendto.asm
index 6ff284d..39d2ddd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sendto.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sendto.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sendto'])
%>
/* sendto(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/set_mempolicy.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/set_mempolicy.asm
index b2aa083..afae844 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/set_mempolicy.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/set_mempolicy.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_set_mempolicy'])
%>
/* set_mempolicy(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/set_robust_list.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/set_robust_list.asm
index bce3150..e18a6f1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/set_robust_list.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/set_robust_list.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_set_robust_list'])
%>
/* set_robust_list(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/set_thread_area.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/set_thread_area.asm
index 307828e..7338af0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/set_thread_area.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/set_thread_area.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_set_thread_area'])
%>
/* set_thread_area(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/set_tid_address.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/set_tid_address.asm
index 6c22987..11ff295 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/set_tid_address.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/set_tid_address.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_set_tid_address'])
%>
/* set_tid_address(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setdomainname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setdomainname.asm
index 6e3808d..2f6ad3a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setdomainname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setdomainname.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setdomainname'])
%>
/* setdomainname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid.asm
index 431262b..64a5f50 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setfsgid'])
%>
/* setfsgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid32.asm
index d6e8192..ca82587 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsgid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setfsgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setfsgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setfsgid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setfsgid32'])
%>
/* setfsgid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid.asm
index 342bd28..8b4b176 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setfsuid'])
%>
/* setfsuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid32.asm
index 8273aa3..d940233 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setfsuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setfsuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setfsuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setfsuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setfsuid32'])
%>
/* setfsuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setgid.asm
index b1641af..76c9671 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setgid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setgid'])
%>
/* setgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setgid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setgid32.asm
index 08754d5..68e4601 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setgid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setgid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setgid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setgid32'])
%>
/* setgid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups.asm
index 5f2fd9a..74962f6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setgroups'])
%>
/* setgroups(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups32.asm
index 8e5e3e8..e4bac60 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setgroups32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setgroups32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setgroups32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setgroups32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setgroups32'])
%>
/* setgroups32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sethostname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sethostname.asm
index 5f65c0a..f1ce026 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sethostname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sethostname.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sethostname'])
%>
/* sethostname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setitimer.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setitimer.asm
index 822512c..4c74e4c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setitimer.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setitimer.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setitimer'])
%>
/* setitimer(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setns.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setns.asm
index 44d20a3..15de2a8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setns.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setns.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setns'])
%>
/* setns(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setpgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setpgid.asm
index fc8559d..2e52b89 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setpgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setpgid.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setpgid'])
%>
/* setpgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setpriority.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setpriority.asm
index 6ab4e84..2529371 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setpriority.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setpriority.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setpriority'])
%>
/* setpriority(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setregid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setregid.asm
index 5636b76..f6a3f7a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setregid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setregid.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setregid'])
%>
/* setregid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setregid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setregid32.asm
index 4a5ada6..fa6c872 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setregid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setregid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setregid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setregid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setregid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setregid32'])
%>
/* setregid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid.asm
index d842c2d..f6dd87c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setresgid'])
%>
/* setresgid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid32.asm
index 54c42ef..437a7e7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setresgid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setresgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setresgid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setresgid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setresgid32'])
%>
/* setresgid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid.asm
index b2a6dcd..521fded 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setresuid'])
%>
/* setresuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid32.asm
index 94f8cbf..d8402fc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setresuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setresuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setresuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setresuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setresuid32'])
%>
/* setresuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid.asm
index 693b23e..1846c33 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setreuid'])
%>
/* setreuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid32.asm
index aef9135..533a719 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setreuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setreuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setreuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setreuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setreuid32'])
%>
/* setreuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setrlimit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setrlimit.asm
index bf4e840..0bec325 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setrlimit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setrlimit.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setrlimit'])
%>
/* setrlimit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setsid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setsid.asm
index 6fde434..215180f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setsid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setsid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setsid'])
%>
/* setsid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setsockopt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setsockopt.asm
index 58604e6..bf81f45 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setsockopt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setsockopt.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setsockopt'])
%>
/* setsockopt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/settimeofday.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/settimeofday.asm
index c8f75c0..c053716 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/settimeofday.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/settimeofday.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_settimeofday'])
%>
/* settimeofday(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setuid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setuid.asm
index 3ac9ce7..db7e485 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setuid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setuid.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setuid'])
%>
/* setuid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setuid32.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setuid32.asm
index 879b9df..e1a0d02 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setuid32.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setuid32.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>setuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>setuid32(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall setuid32.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setuid32'])
%>
/* setuid32(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/setxattr.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/setxattr.asm
index 5e76fbe..2b5cb11 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/setxattr.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/setxattr.asm
@@ -52,7 +52,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -80,7 +80,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -88,7 +88,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_setxattr'])
%>
/* setxattr(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sgetmask.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sgetmask.asm
index 7e9412a..3580171 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sgetmask.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sgetmask.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sgetmask'])
%>
/* sgetmask(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/shmat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/shmat.asm
index b875aef..5b15dee 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/shmat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/shmat.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_shmat'])
%>
/* shmat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/shmctl.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/shmctl.asm
index 0f52ff3..eb2a0fa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/shmctl.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/shmctl.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_shmctl'])
%>
/* shmctl(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/shmdt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/shmdt.asm
index 021ea05..932a964 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/shmdt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/shmdt.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_shmdt'])
%>
/* shmdt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/shmget.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/shmget.asm
index 6ded9b2..d4f0b84 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/shmget.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/shmget.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_shmget'])
%>
/* shmget(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/shutdown.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/shutdown.asm
index 27a8be6..581c79e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/shutdown.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/shutdown.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_shutdown'])
%>
/* shutdown(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigaction.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigaction.asm
index 05de67d..95be329 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigaction.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigaction.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigaction'])
%>
/* sigaction(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigaltstack.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigaltstack.asm
index af9d9a3..b6cc7fe 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigaltstack.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigaltstack.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigaltstack'])
%>
/* sigaltstack(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/signal.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/signal.asm
index dd13038..17d775c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/signal.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/signal.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_signal'])
%>
/* signal(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd.asm
index d64a58c..aad39bb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_signalfd'])
%>
/* signalfd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd4.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd4.asm
index 2ab84fd..e9baec7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd4.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/signalfd4.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>signalfd4(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>signalfd4(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall signalfd4.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_signalfd4'])
%>
/* signalfd4(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigpending.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigpending.asm
index f3bd04a..bdfbcfb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigpending.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigpending.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigpending'])
%>
/* sigpending(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigprocmask.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigprocmask.asm
index 5cfb11d..676b300 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigprocmask.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigprocmask.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigprocmask'])
%>
/* sigprocmask(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigqueueinfo.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigqueueinfo.asm
index 7b81d2e..8f6101b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigqueueinfo.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigqueueinfo.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rt_sigqueueinfo'])
%>
/* sigqueueinfo(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigreturn.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigreturn.asm
index d46c76b..1610c58 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigreturn.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigreturn.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigreturn', 'SYS_rt_sigreturn'])
%>
/* sigreturn(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigsuspend.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigsuspend.asm
index 8066662..8ecdf28 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigsuspend.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigsuspend.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sigsuspend'])
%>
/* sigsuspend(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait.asm
index 3d0fb73..bfd1dca 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>sigtimedwait(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>sigtimedwait(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall sigtimedwait.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rt_sigtimedwait'])
%>
/* sigtimedwait(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait_time64.asm
index 04f9f52..b8e6800 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sigtimedwait_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>sigtimedwait_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>sigtimedwait_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall sigtimedwait_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rt_sigtimedwait_time64'])
%>
/* sigtimedwait_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socket.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socket.asm
index 4eef9a3..082764e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socket.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socket.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socket'])
%>
/* socket(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall.asm
index 2a36521..7bc3fa6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall'])
%>
/* socketcall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_accept.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_accept.asm
index 448df04..f935c72 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_accept.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_accept.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_accept(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_accept(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_accept.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_accept'])
%>
/* socketcall_accept(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_bind.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_bind.asm
index 8407b02..57096bd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_bind.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_bind.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_bind(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_bind(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_bind.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_bind'])
%>
/* socketcall_bind(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_connect.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_connect.asm
index 13f6b08..a52a450 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_connect.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_connect.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_connect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_connect(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_connect.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_connect'])
%>
/* socketcall_connect(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getpeername.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getpeername.asm
index a2151b3..88366bf 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getpeername.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getpeername.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_getpeername(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_getpeername(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_getpeername.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_getpeername'])
%>
/* socketcall_getpeername(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockname.asm
index 80c56e3..8e5d864 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockname.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_getsockname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_getsockname(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_getsockname.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_getsockname'])
%>
/* socketcall_getsockname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockopt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockopt.asm
index f327c44..9a29e92 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockopt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_getsockopt.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_getsockopt(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_getsockopt(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_getsockopt.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_getsockopt'])
%>
/* socketcall_getsockopt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_listen.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_listen.asm
index 3b3dae5..a7b00be 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_listen.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_listen.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_listen(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_listen(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_listen.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_listen'])
%>
/* socketcall_listen(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recv.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recv.asm
index 2ce3df1..a85eefb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recv.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recv.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_recv(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_recv(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_recv.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_recv'])
%>
/* socketcall_recv(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvfrom.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvfrom.asm
index 3af27e2..67a461e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvfrom.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvfrom.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_recvfrom(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_recvfrom(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_recvfrom.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_recvfrom'])
%>
/* socketcall_recvfrom(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvmsg.asm
index df97f22..1701d4f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_recvmsg.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_recvmsg(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_recvmsg(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_recvmsg.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_recvmsg'])
%>
/* socketcall_recvmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_send.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_send.asm
index 7d79756..c283bd3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_send.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_send.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_send(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_send(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_send.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_send'])
%>
/* socketcall_send(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendmsg.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendmsg.asm
index e363974..602ead2 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendmsg.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendmsg.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_sendmsg(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_sendmsg(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_sendmsg.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_sendmsg'])
%>
/* socketcall_sendmsg(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendto.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendto.asm
index dd7b25e..0d8e37f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendto.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_sendto.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_sendto(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_sendto(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_sendto.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_sendto'])
%>
/* socketcall_sendto(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_setsockopt.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_setsockopt.asm
index 9d4c36d..aeda36e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_setsockopt.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_setsockopt.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_setsockopt(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_setsockopt(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_setsockopt.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_setsockopt'])
%>
/* socketcall_setsockopt(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_shutdown.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_shutdown.asm
index 102bb42..96d4b92 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_shutdown.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_shutdown.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_shutdown(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_shutdown(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_shutdown.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_shutdown'])
%>
/* socketcall_shutdown(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socket.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socket.asm
index 1166791..dbdb9e3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socket.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socket.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_socket(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_socket(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_socket.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_socket'])
%>
/* socketcall_socket(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socketpair.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socketpair.asm
index afea7f0..bd2d2cf 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socketpair.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketcall_socketpair.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>socketcall_socketpair(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>socketcall_socketpair(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall socketcall_socketpair.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketcall_socketpair'])
%>
/* socketcall_socketpair(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/socketpair.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/socketpair.asm
index ea2d976..666d0fb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/socketpair.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/socketpair.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_socketpair'])
%>
/* socketpair(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/splice.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/splice.asm
index d1e898c..df825e8 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/splice.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/splice.asm
@@ -53,7 +53,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -81,7 +81,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -89,7 +89,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_splice'])
%>
/* splice(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ssetmask.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ssetmask.asm
index b255072..9e6623c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ssetmask.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ssetmask.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ssetmask'])
%>
/* ssetmask(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/stat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/stat.asm
index 051c57d..3be17fb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/stat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/stat.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_stat'])
%>
/* stat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/stat64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/stat64.asm
index 40f4a63..2b68966 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/stat64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/stat64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_stat64'])
%>
/* stat64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/statfs.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/statfs.asm
index 681e0f9..dbf2425 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/statfs.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/statfs.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_statfs'])
%>
/* statfs(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/statfs64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/statfs64.asm
index 22008dc..30b0e5c 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/statfs64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/statfs64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_statfs64'])
%>
/* statfs64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/statx.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/statx.asm
index 7c4bb02..c8a693a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/statx.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/statx.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>statx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>statx(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall statx.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_statx'])
%>
/* statx(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/stime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/stime.asm
index f1dcd72..a729df4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/stime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/stime.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_stime'])
%>
/* stime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/stty.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/stty.asm
index 5e4ba86..5a2b8cc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/stty.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/stty.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_stty'])
%>
/* stty(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/swapoff.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/swapoff.asm
index a3a8148..7988e95 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/swapoff.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/swapoff.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_swapoff'])
%>
/* swapoff(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/swapon.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/swapon.asm
index 82384ac..966f5e7 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/swapon.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/swapon.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_swapon'])
%>
/* swapon(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/symlink.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/symlink.asm
index 341e4f3..6d7bdec 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/symlink.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/symlink.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_symlink'])
%>
/* symlink(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/symlinkat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/symlinkat.asm
index d7c7e52..44a146b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/symlinkat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/symlinkat.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_symlinkat'])
%>
/* symlinkat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sync.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sync.asm
index e2ff1c4..2448042 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sync.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sync.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sync'])
%>
/* sync(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sync_file_range.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sync_file_range.asm
index a364843..106f2cd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sync_file_range.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sync_file_range.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sync_file_range'])
%>
/* sync_file_range(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/syncfs.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/syncfs.asm
index 0374a08..7789451 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/syncfs.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/syncfs.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_syncfs'])
%>
/* syncfs(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sys_kexec_load.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sys_kexec_load.asm
index 02a650e..c67f2dd 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sys_kexec_load.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sys_kexec_load.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>sys_kexec_load(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>sys_kexec_load(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall sys_kexec_load.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sys_kexec_load'])
%>
/* sys_kexec_load(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/syscall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/syscall.asm
index 6baa476..03c6ec0 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/syscall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/syscall.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>syscall(sysno, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>syscall(sysno, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall syscall.
@@ -17,7 +17,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="sysno=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="sysno=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -27,8 +27,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['sysno', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [sysno, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['sysno', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [sysno, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_syscall'])
%>
/* syscall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sysfs.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sysfs.asm
index 540569c..c2b3aaa 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sysfs.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sysfs.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sysfs'])
%>
/* sysfs(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sysinfo.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sysinfo.asm
index 1be4ae3..a756a0b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sysinfo.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sysinfo.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sysinfo'])
%>
/* sysinfo(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/syslog.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/syslog.asm
index 220b96d..19cb3b5 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/syslog.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/syslog.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>syslog(pri, fmt, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>syslog(pri, fmt, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall syslog.
@@ -18,7 +18,7 @@ Arguments:
Returns:
void
</%docstring>
-<%page args="pri=0, fmt=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="pri=0, fmt=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -28,8 +28,8 @@ Returns:
can_pushstr = ['fmt']
can_pushstr_array = []
- argument_names = ['pri', 'fmt', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [pri, fmt, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['pri', 'fmt', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [pri, fmt, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_syslog'])
%>
/* syslog(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/sysmips.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/sysmips.asm
index 7aa8c59..cea4f4e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/sysmips.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/sysmips.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>sysmips(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>sysmips(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall sysmips.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_sysmips'])
%>
/* sysmips(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/tee.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/tee.asm
index 809b0c9..3e45f12 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/tee.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/tee.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_tee'])
%>
/* tee(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/tgkill.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/tgkill.asm
index 39127b1..f8d81c4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/tgkill.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/tgkill.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_tgkill'])
%>
/* tgkill(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/tgsigqueueinfo.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/tgsigqueueinfo.asm
index 7c2de93..2cbb2fb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/tgsigqueueinfo.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/tgsigqueueinfo.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_rt_tgsigqueueinfo'])
%>
/* tgsigqueueinfo(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/time.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/time.asm
index 335c13e..fb47c76 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/time.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/time.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_time'])
%>
/* time(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_create.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_create.asm
index fdaf775..587fffc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_create.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_create.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_create'])
%>
/* timer_create(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_delete.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_delete.asm
index 5d1702a..048c024 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_delete.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_delete.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_delete'])
%>
/* timer_delete(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_getoverrun.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_getoverrun.asm
index b1e43f8..e000976 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_getoverrun.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_getoverrun.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_getoverrun'])
%>
/* timer_getoverrun(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime.asm
index 6a7681f..6e0d9b9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_gettime'])
%>
/* timer_gettime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime64.asm
index 4e42bff..2eca153 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_gettime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>timer_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>timer_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall timer_gettime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_gettime64'])
%>
/* timer_gettime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime.asm
index 4473b43..2297b34 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_settime'])
%>
/* timer_settime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime64.asm
index 6a0ade5..6d2445a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timer_settime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>timer_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>timer_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall timer_settime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timer_settime64'])
%>
/* timer_settime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd.asm
index d325b94..b55c6a3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>timerfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>timerfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall timerfd.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd'])
%>
/* timerfd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_create.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_create.asm
index 9725fa8..5f4ffe1 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_create.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_create.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd_create'])
%>
/* timerfd_create(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime.asm
index db01cf7..eafdab3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd_gettime'])
%>
/* timerfd_gettime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime64.asm
index 4bf657f..7bb53b9 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_gettime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>timerfd_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>timerfd_gettime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall timerfd_gettime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd_gettime64'])
%>
/* timerfd_gettime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime.asm
index 79c3773..a10932e 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd_settime'])
%>
/* timerfd_settime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime64.asm
index 2045c3d..52f3375 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/timerfd_settime64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>timerfd_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>timerfd_settime64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall timerfd_settime64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_timerfd_settime64'])
%>
/* timerfd_settime64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/times.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/times.asm
index 3e150e9..055bbff 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/times.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/times.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_times'])
%>
/* times(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/tkill.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/tkill.asm
index 95e9c80..85815e6 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/tkill.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/tkill.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_tkill'])
%>
/* tkill(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/truncate.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/truncate.asm
index 421689d..5608127 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/truncate.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/truncate.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_truncate'])
%>
/* truncate(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/truncate64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/truncate64.asm
index 39c9a55..64676a3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/truncate64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/truncate64.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_truncate64'])
%>
/* truncate64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/tuxcall.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/tuxcall.asm
index d888dad..c501265 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/tuxcall.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/tuxcall.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>tuxcall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>tuxcall(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall tuxcall.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_tuxcall'])
%>
/* tuxcall(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ugetrlimit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ugetrlimit.asm
index c3c981c..33f1743 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ugetrlimit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ugetrlimit.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ugetrlimit(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ugetrlimit(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ugetrlimit.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ugetrlimit'])
%>
/* ugetrlimit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ulimit.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ulimit.asm
index 3cc2e10..dd14a95 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ulimit.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ulimit.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>ulimit(cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>ulimit(cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall ulimit.
@@ -17,7 +17,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="cmd=0, vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -27,8 +27,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['cmd', 'vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [cmd, vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ulimit'])
%>
/* ulimit(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/umask.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/umask.asm
index 45a0241..1edda3b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/umask.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/umask.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_umask'])
%>
/* umask(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/umount.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/umount.asm
index 49ca23f..6a5e71a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/umount.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/umount.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_umount'])
%>
/* umount(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/umount2.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/umount2.asm
index d0ed157..4513cc3 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/umount2.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/umount2.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_umount2'])
%>
/* umount2(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/uname.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/uname.asm
index 86145d4..4acb894 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/uname.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/uname.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_uname'])
%>
/* uname(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/unlink.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/unlink.asm
index cb63790..77c04a4 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/unlink.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/unlink.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_unlink'])
%>
/* unlink(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/unlinkat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/unlinkat.asm
index 569e34e..14044bb 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/unlinkat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/unlinkat.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_unlinkat'])
%>
/* unlinkat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/unshare.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/unshare.asm
index 23bb08c..f7bbf5b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/unshare.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/unshare.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_unshare'])
%>
/* unshare(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/uselib.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/uselib.asm
index abc23d5..8e55a87 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/uselib.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/uselib.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_uselib'])
%>
/* uselib(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/userfaultfd.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/userfaultfd.asm
index 3196fa2..bf44625 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/userfaultfd.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/userfaultfd.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>userfaultfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>userfaultfd(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall userfaultfd.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_userfaultfd'])
%>
/* userfaultfd(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/ustat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/ustat.asm
index a1b6594..36039da 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/ustat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/ustat.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_ustat'])
%>
/* ustat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/utime.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/utime.asm
index b0de2db..33aa64f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/utime.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/utime.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_utime'])
%>
/* utime(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat.asm
index 32943ae..c346e2b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_utimensat'])
%>
/* utimensat(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat_time64.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat_time64.asm
index 2b5f827..13eb784 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat_time64.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/utimensat_time64.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>utimensat_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>utimensat_time64(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall utimensat_time64.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_utimensat_time64'])
%>
/* utimensat_time64(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/utimes.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/utimes.asm
index ac4512d..30cff2a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/utimes.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/utimes.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_utimes'])
%>
/* utimes(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vfork.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vfork.asm
index e4bcf5d..0d0444f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vfork.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vfork.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vfork'])
%>
/* vfork(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vhangup.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vhangup.asm
index f232a72..b78351b 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vhangup.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vhangup.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vhangup'])
%>
/* vhangup(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vm86.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vm86.asm
index 2bc0d62..a824d14 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vm86.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vm86.asm
@@ -49,7 +49,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -77,7 +77,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -85,7 +85,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vm86'])
%>
/* vm86(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vm86old.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vm86old.asm
index 7234ff2..269fabc 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vm86old.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vm86old.asm
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vm86old'])
%>
/* vm86old(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vmsplice.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vmsplice.asm
index 8b88358..a725660 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vmsplice.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vmsplice.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vmsplice'])
%>
/* vmsplice(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/vserver.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/vserver.asm
index e9cb407..5ce055a 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/vserver.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/vserver.asm
@@ -5,7 +5,7 @@ import pwnlib.constants
import pwnlib.shellcraft
import six
%>
-<%docstring>vserver(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4) -> str
+<%docstring>vserver(vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5) -> str
Invokes the syscall vserver.
@@ -16,7 +16,7 @@ Arguments:
Returns:
long
</%docstring>
-<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None"/>
+<%page args="vararg_0=None, vararg_1=None, vararg_2=None, vararg_3=None, vararg_4=None, vararg_5=None"/>
<%
abi = pwnlib.abi.ABI.syscall()
stack = abi.stack
@@ -26,8 +26,8 @@ Returns:
can_pushstr = []
can_pushstr_array = []
- argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4']
- argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4]
+ argument_names = ['vararg_0', 'vararg_1', 'vararg_2', 'vararg_3', 'vararg_4', 'vararg_5']
+ argument_values = [vararg_0, vararg_1, vararg_2, vararg_3, vararg_4, vararg_5]
# Load all of the arguments into their destination registers / stack slots.
register_arguments = dict()
@@ -48,7 +48,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -76,7 +76,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -84,7 +84,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_vserver'])
%>
/* vserver(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/wait4.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/wait4.asm
index b48d3ea..c51f920 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/wait4.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/wait4.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_wait4'])
%>
/* wait4(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/waitid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/waitid.asm
index dcac38a..abeb66d 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/waitid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/waitid.asm
@@ -51,7 +51,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -79,7 +79,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -87,7 +87,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_waitid'])
%>
/* waitid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/waitpid.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/waitpid.asm
index 98eb274..2a9f090 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/waitpid.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/waitpid.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_waitpid'])
%>
/* waitpid(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/write.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/write.asm
index a20c069..24e7f17 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/write.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/write.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_write'])
%>
/* write(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/common/linux/syscalls/writev.asm b/pwnlib/shellcraft/templates/common/linux/syscalls/writev.asm
index 1339090..0d23c5f 100644
--- a/pwnlib/shellcraft/templates/common/linux/syscalls/writev.asm
+++ b/pwnlib/shellcraft/templates/common/linux/syscalls/writev.asm
@@ -50,7 +50,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[index] = arg
+ stack_arguments[name] = arg
# The argument is not a register. It is a string value, and we
# are expecting a string value
@@ -78,7 +78,7 @@ Returns:
target = regs[index]
register_arguments[target] = arg
elif arg is not None:
- stack_arguments[target] = arg
+ stack_arguments[name] = arg
# Some syscalls have different names on various architectures.
# Determine which syscall number to use for the current architecture.
@@ -86,7 +86,7 @@ Returns:
if hasattr(pwnlib.constants, syscall):
break
else:
- raise Exception("Could not locate any syscalls: %r" % syscalls)
+ raise Exception("Could not locate any syscalls: %r" % ['SYS_writev'])
%>
/* writev(${', '.join(syscall_repr)}) */
%for name, arg in string_arguments.items():
diff --git a/pwnlib/shellcraft/templates/i386/freebsd/i386_to_amd64.asm b/pwnlib/shellcraft/templates/i386/freebsd/i386_to_amd64.asm
index d14e1cc..ba4db79 100644
--- a/pwnlib/shellcraft/templates/i386/freebsd/i386_to_amd64.asm
+++ b/pwnlib/shellcraft/templates/i386/freebsd/i386_to_amd64.asm
@@ -1,12 +1,7 @@
-<% from pwnlib.shellcraft import common %>
-<%docstring>Returns code to switch from i386 to amd64 mode.</%docstring>
-<% helper, end = common.label("helper"), common.label("end") %>
+<%docstring>Returns code to switch from i386 to amd64 mode. Trashes eax.</%docstring>
.code32
push 0x43 /* This is the segment we want to go to */
+ /* "db 0xff; sub al,0x24" is "jmp far [esp]" by chance */
call $+4
-${helper}:
- .byte 0xc0
- add dword ptr [esp], ${end} - ${helper}
- jmp far [esp]
-${end}:
+ sub al, 0x24
.code64
diff --git a/pwnlib/shellcraft/templates/i386/linux/i386_to_amd64.asm b/pwnlib/shellcraft/templates/i386/linux/i386_to_amd64.asm
index 47d8bed..52c5a7d 100644
--- a/pwnlib/shellcraft/templates/i386/linux/i386_to_amd64.asm
+++ b/pwnlib/shellcraft/templates/i386/linux/i386_to_amd64.asm
@@ -1,5 +1,4 @@
-<% from pwnlib.shellcraft import common %>
-<%docstring>Returns code to switch from i386 to amd64 mode.</%docstring>
+<%docstring>Returns code to switch from i386 to amd64 mode. Trashes eax.</%docstring>
.code32
push 0x33 /* This is the segment we want to go to */
/* "db 0xff; sub al,0x24" is "jmp far [esp]" by chance */
diff --git a/pwnlib/shellcraft/templates/i386/linux/sleep.asm b/pwnlib/shellcraft/templates/i386/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/i386/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/shellcraft/templates/i386/mov.asm b/pwnlib/shellcraft/templates/i386/mov.asm
index 5bb0192..e3f1db5 100644
--- a/pwnlib/shellcraft/templates/i386/mov.asm
+++ b/pwnlib/shellcraft/templates/i386/mov.asm
@@ -190,8 +190,8 @@ else:
% else:
<%
a,b = fiddling.xor_pair(srcp, avoid = '\x00\n')
- a = hex(packing.unpack(a, dest.size))
- b = hex(packing.unpack(b, dest.size))
+ a = '%#x' % packing.unpack(a, dest.size)
+ b = '%#x' % packing.unpack(b, dest.size)
%>\
mov ${dest}, ${a}
xor ${dest}, ${a} ^ ${pretty(src)}
diff --git a/pwnlib/shellcraft/templates/i386/stackhunter.asm b/pwnlib/shellcraft/templates/i386/stackhunter.asm
index f836e21..a9517a0 100644
--- a/pwnlib/shellcraft/templates/i386/stackhunter.asm
+++ b/pwnlib/shellcraft/templates/i386/stackhunter.asm
@@ -1,7 +1,7 @@
<% from pwnlib.shellcraft import common %>
-<%page args="cookie = 0x7afceb58"/>
+<%page args="cookie = 0xe4fffc75"/>
<%docstring>
- stackhunter(cookie = 0x7afceb58)
+ stackhunter(cookie = 0xe4fffc75)
Returns an an egghunter, which searches from esp and upwards
for a cookie. However to save bytes, it only looks at a single
@@ -9,29 +9,33 @@
generate a suitable cookie prefix for you.
The default cookie has been chosen, because it makes it possible
- to shave a single byte, but other cookies can be used too.
+ to shave two bytes, but other cookies can be used too.
Example:
- >>> with context.local():
- ... context.arch = 'i386'
+ >>> with context.local(arch='i386'):
... print(enhex(asm(shellcraft.stackhunter())))
+ 583d75fcffe4ebfa
+ >>> with context.local(arch='i386'):
+ ... print(enhex(asm(shellcraft.stackhunter(0x7afceb58))))
3d58ebfc7a75faffe4
- >>> with context.local():
- ... context.arch = 'i386'
+ >>> with context.local(arch='i386'):
... print(enhex(asm(shellcraft.stackhunter(0xdeadbeef))))
583defbeadde75f8ffe4
</%docstring>
<% stackhunter = common.label("stackhunter") %>
-%if (cookie & 0xffffff) == 0xfceb58:
${stackhunter}:
- cmp eax, ${hex(cookie)}
+%if (cookie & 0xffffff) == 0xfceb58:
+ cmp eax, ${'%#x' % cookie}
jne ${stackhunter}+1
jmp esp
%else:
-${stackhunter}:
pop eax
- cmp eax, ${hex(cookie)}
+ cmp eax, ${'%#x' % cookie}
+%if cookie == 0xe4fffc75:
+ jmp ${stackhunter}+2
+%else:
jne ${stackhunter}
jmp esp
%endif
+%endif
diff --git a/pwnlib/shellcraft/templates/i386/stackhunter_helper.asm b/pwnlib/shellcraft/templates/i386/stackhunter_helper.asm
new file mode 100644
index 0000000..b78eaf8
--- /dev/null
+++ b/pwnlib/shellcraft/templates/i386/stackhunter_helper.asm
@@ -0,0 +1,17 @@
+<%page args="cookie = 0xe4fffc75"/>
+<%docstring>
+ stackhunter_helper(cookie = 0xe4fffc75)
+
+ The helper for the stackhunter, which prepends the cookie
+ at different alignments.
+
+Example:
+
+ >>> with context.local(arch='i386'):
+ ... print(enhex(asm(shellcraft.stackhunter_helper())))
+ 75fcffe43d75fcffe43d75fcffe43d75fcffe4
+</%docstring>
+ .int ${'%#x' % cookie}
+ cmp eax, ${'%#x' % cookie}
+ cmp eax, ${'%#x' % cookie}
+ cmp eax, ${'%#x' % cookie}
diff --git a/pwnlib/shellcraft/templates/mips/linux/sleep.asm b/pwnlib/shellcraft/templates/mips/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/mips/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/shellcraft/templates/mips/linux/syscall.asm b/pwnlib/shellcraft/templates/mips/linux/syscall.asm
index 08f246c..07cf02f 100644
--- a/pwnlib/shellcraft/templates/mips/linux/syscall.asm
+++ b/pwnlib/shellcraft/templates/mips/linux/syscall.asm
@@ -54,6 +54,12 @@ Example:
... 'MAP_PRIVATE | MAP_ANONYMOUS',
... -1, 0).rstrip())
/* call mmap2(0, 0x1000, 'PROT_READ | PROT_WRITE | PROT_EXEC', 'MAP_PRIVATE | MAP_ANONYMOUS', -1, 0) */
+ li $t0, -1
+ sw $t0, -4($sp)
+ addi $sp, $sp, -4
+ slti $t0, $zero, 0xFFFF /* $t0 = 0 */
+ sw $t0, -4($sp)
+ addi $sp, $sp, -4
slti $a0, $zero, 0xFFFF /* $a0 = 0 */
li $t9, ~0x1000
not $a1, $t9
@@ -82,7 +88,6 @@ Example:
syscall 0x40404
</%docstring>
<%
- append_cdq = False
if isinstance(syscall, (str, text_type, Constant)) and str(syscall).startswith('SYS_'):
syscall_repr = str(syscall)[4:] + "(%s)"
args = []
@@ -102,12 +107,22 @@ Example:
args.pop()
syscall_repr = syscall_repr % ', '.join(args)
+ register_arguments = dict()
+ stack_arguments = []
registers = abi.register_arguments
arguments = [syscall, arg0, arg1, arg2, arg3, arg4, arg5]
- regctx = dict(zip(registers, arguments))
+ for index, arg in enumerate(arguments):
+ if index < len(registers):
+ target = registers[index]
+ register_arguments[target] = arg
+ elif arg is not None:
+ stack_arguments.append(arg)
%>\
/* call ${syscall_repr} */
+%for arg in stack_arguments:
+ ${mips.push(arg)}
+%endfor
%if any(a is not None for a in arguments):
- ${mips.setregs(regctx)}
+ ${mips.setregs(register_arguments)}
%endif
syscall 0x40404
diff --git a/pwnlib/shellcraft/templates/mips/mov.asm b/pwnlib/shellcraft/templates/mips/mov.asm
index 28e3c77..9eb795f 100644
--- a/pwnlib/shellcraft/templates/mips/mov.asm
+++ b/pwnlib/shellcraft/templates/mips/mov.asm
@@ -130,8 +130,8 @@ if src_reg == 0:
% else:
<%
a,b = fiddling.xor_pair(srcp, avoid = '\x00\n')
-a = hex(packing.unpack(a, 32))
-b = hex(packing.unpack(b, 32))
+a = '%#x' % packing.unpack(a, 32)
+b = '%#x' % packing.unpack(b, 32)
%>
li ${tmp_reg}, ${a} ^ ${pretty(src)}
li ${dst}, ${a}
diff --git a/pwnlib/shellcraft/templates/thumb/linux/sleep.asm b/pwnlib/shellcraft/templates/thumb/linux/sleep.asm
new file mode 120000
index 0000000..5949528
--- /dev/null
+++ b/pwnlib/shellcraft/templates/thumb/linux/sleep.asm
@@ -0,0 +1 @@
+../../common/linux/sleep.asm \ No newline at end of file
diff --git a/pwnlib/term/readline.py b/pwnlib/term/readline.py
index b60b656..72082eb 100644
--- a/pwnlib/term/readline.py
+++ b/pwnlib/term/readline.py
@@ -5,6 +5,7 @@ from __future__ import print_function
import six
import sys
+import os
from pwnlib.term import keyconsts as kc
from pwnlib.term import keymap as km
@@ -404,7 +405,7 @@ def readline(_size=-1, prompt='', float=True, priority=10):
buffer = (buffer_left + buffer_right)
if buffer:
history.insert(0, buffer)
- return force_to_bytes(buffer)
+ return force_to_bytes(buffer) + b'\n'
except KeyboardInterrupt:
control_c()
finally:
@@ -432,7 +433,7 @@ def raw_input(prompt='', float=True):
float(bool): If set to `True`, prompt and input will float to the
bottom of the screen when `term.term_mode` is enabled.
"""
- return readline(-1, prompt, float)
+ return readline(-1, prompt, float).rstrip(os.linesep.encode())
def str_input(prompt='', float=True):
r"""str_input(prompt='', float=True)
@@ -445,7 +446,7 @@ def str_input(prompt='', float=True):
float(bool): If set to `True`, prompt and input will float to the
bottom of the screen when `term.term_mode` is enabled.
"""
- return readline(-1, prompt, float).decode()
+ return readline(-1, prompt, float).decode().rstrip(os.linesep)
def eval_input(prompt='', float=True):
"""eval_input(prompt='', float=True)
@@ -471,7 +472,7 @@ def eval_input(prompt='', float=True):
Favorite object? 20
"""
from pwnlib.util import safeeval
- return safeeval.const(readline(-1, prompt, float))
+ return safeeval.const(readline(-1, prompt, float).rstrip(os.linesep.encode()))
def init():
global safeeval
diff --git a/pwnlib/tubes/listen.py b/pwnlib/tubes/listen.py
index f012f9b..ecbd629 100644
--- a/pwnlib/tubes/listen.py
+++ b/pwnlib/tubes/listen.py
@@ -80,6 +80,9 @@ class listen(sock):
fam='any', typ='tcp', *args, **kwargs):
super(listen, self).__init__(*args, **kwargs)
+ # convert port to string for sagemath support
+ port = str(port)
+
fam = self._get_family(fam)
typ = self._get_type(typ)
diff --git a/pwnlib/tubes/remote.py b/pwnlib/tubes/remote.py
index 04be2cf..5800819 100644
--- a/pwnlib/tubes/remote.py
+++ b/pwnlib/tubes/remote.py
@@ -61,7 +61,8 @@ class remote(sock):
*args, **kwargs):
super(remote, self).__init__(*args, **kwargs)
- self.rport = port
+ # convert port to string for sagemath support
+ self.rport = str(port)
self.rhost = host
if sock:
diff --git a/pwnlib/tubes/serialtube.py b/pwnlib/tubes/serialtube.py
index 19ca53d..f8d7b72 100644
--- a/pwnlib/tubes/serialtube.py
+++ b/pwnlib/tubes/serialtube.py
@@ -28,19 +28,28 @@ class serialtube(tube.tube):
port = '/dev/ttyUSB0'
self.convert_newlines = convert_newlines
- self.conn = serial.Serial(
- port = port,
- baudrate = baudrate,
- bytesize = bytesize,
- parity = parity,
- stopbits = stopbits,
- timeout = 0,
- xonxoff = xonxoff,
- rtscts = rtscts,
- writeTimeout = None,
- dsrdtr = dsrdtr,
- interCharTimeout = 0
- )
+ # serial.Serial might throw an exception, which must be handled
+ # and propagated accordingly using self.exception
+ try:
+ self.conn = serial.Serial(
+ port = port,
+ baudrate = baudrate,
+ bytesize = bytesize,
+ parity = parity,
+ stopbits = stopbits,
+ timeout = 0,
+ xonxoff = xonxoff,
+ rtscts = rtscts,
+ writeTimeout = None,
+ dsrdtr = dsrdtr,
+ interCharTimeout = 0
+ )
+ except serial.SerialException:
+ # self.conn is set to None to avoid an AttributeError when
+ # initialization fails, but the program still tries closing
+ # the serial tube anyway
+ self.conn = None
+ self.exception("Could not open a serial tube on port %s", port)
# Implementation of the methods required for tube
def recv_raw(self, numb):
diff --git a/pwnlib/tubes/ssh.py b/pwnlib/tubes/ssh.py
index adda422..16a6505 100644
--- a/pwnlib/tubes/ssh.py
+++ b/pwnlib/tubes/ssh.py
@@ -882,6 +882,23 @@ class ssh(Timeout, Logger):
>>> io = s.process(['cat'], timeout=5)
>>> io.recvline()
b''
+
+ >>> # Testing that empty argv works
+ >>> io = s.process([], executable='sh')
+ >>> io.sendline(b'echo $0')
+ >>> io.recvline()
+ b'$ \n'
+ >>> # Make sure that we have a shell
+ >>> io.sendline(b'echo hello')
+ >>> io.recvline()
+ b'$ hello\n'
+
+ >>> # Testing that empty argv[0] works
+ >>> io = s.process([''], executable='sh')
+ >>> io.sendline(b'echo $0')
+ >>> io.recvline()
+ b'$ \n'
+
"""
if not argv and not executable:
self.error("Must specify argv or executable")
@@ -945,7 +962,7 @@ if env is not None:
os.environ.clear()
environ.update(env)
else:
- env = os.environ
+ env = environ
def is_exe(path):
return os.path.isfile(path) and os.access(path, os.X_OK)
@@ -1034,8 +1051,35 @@ except Exception:
%(func_src)s
%(func_name)s(*%(func_args)r)
-os.execve(exe, argv, env)
-""" % locals() # """
+""" % locals()
+
+ if len(argv) > 0 and len(argv[0]) > 0:
+ script += r"os.execve(exe, argv, env) "
+
+ # os.execve does not allow us to pass empty argv[0]
+ # Therefore we use ctypes to call execve directly
+ else:
+ script += r"""
+# Transform envp from dict to list
+env_list = [key + b"=" + value for key, value in env.items()]
+
+# ctypes helper to convert a python list to a NULL-terminated C array
+def to_carray(py_list):
+ py_list += [None] # NULL-terminated
+ return (ctypes.c_char_p * len(py_list))(*py_list)
+
+c_argv = to_carray(argv)
+c_env = to_carray(env_list)
+
+# Call execve
+libc = ctypes.CDLL('libc.so.6')
+libc.execve(exe, c_argv, c_env)
+
+# We should never get here, since we sanitized argv and env,
+# but just in case, indicate that something went wrong.
+libc.perror(b"execve")
+raise OSError("execve failed")
+""" % locals()
script = script.strip()
@@ -1054,7 +1098,7 @@ os.execve(exe, argv, env)
execve_repr = "execve(%r, %s, %s)" % (executable,
argv,
'os.environ'
- if (env in (None, os.environ))
+ if (env in (None, getattr(os, "environb", os.environ)))
else env)
# Avoid spamming the screen
if self.isEnabledFor(logging.DEBUG) and len(execve_repr) > 512:
@@ -1069,20 +1113,24 @@ os.execve(exe, argv, env)
with self.progress(msg) as h:
- script = 'echo PWNTOOLS; for py in python3 python2.7 python2 python; do test -x "$(which $py 2>&1)" && echo $py && exec $py -c %s check; done; echo 2' % sh_string(script)
+ script = 'echo PWNTOOLS; for py in python3 python2.7 python2 python; do test -x "$(command -v $py 2>&1)" && echo $py && exec $py -c %s check; done; echo 2' % sh_string(script)
with context.quiet:
python = ssh_process(self, script, tty=True, cwd=cwd, raw=True, level=self.level, timeout=timeout)
try:
- python.recvline_contains(b'PWNTOOLS') # Magic flag so that any sh/bash initialization errors are swallowed
- python.recvline() # Python interpreter that was selected
+ python.recvline_contains(b'PWNTOOLS') # Magic flag so that any sh/bash initialization errors are swallowed
+ try:
+ if b'python' not in python.recvline(): # Python interpreter that was selected
+ raise ValueError("Python not found on remote host")
+ except (EOFError, ValueError):
+ self.warn_once('Could not find a Python interpreter on %s\n' % self.host
+ + "Use ssh.system() instead of ssh.process()\n")
+ h.failure("Process creation failed")
+ return None
+
result = safeeval.const(python.recvline()) # Status flag from the Python script
except (EOFError, ValueError):
h.failure("Process creation failed")
- self.warn_once('Could not find a Python interpreter on %s\n' % self.host
- + "Use ssh.run() instead of ssh.process()\n"
- "The original error message:\n"
- + python.recvall().decode())
return None
# If an error occurred, try to grab as much output
@@ -1134,15 +1182,15 @@ os.execve(exe, argv, env)
if os.path.sep in program:
return program
- result = self.run('export PATH=$PATH:$PWD; which %s' % program).recvall().strip().decode()
+ result = self.run('export PATH=$PATH:$PWD; command -v %s' % program).recvall().strip().decode()
if ('/%s' % program) not in result:
return None
return result
- def system(self, process, tty = True, wd = None, env = None, timeout = None, raw = True):
- r"""system(process, tty = True, wd = None, env = None, timeout = Timeout.default, raw = True) -> ssh_channel
+ def system(self, process, tty = True, cwd = None, env = None, timeout = None, raw = True, wd = None):
+ r"""system(process, tty = True, cwd = None, env = None, timeout = Timeout.default, raw = True) -> ssh_channel
Open a new channel with a specific process inside. If `tty` is True,
then a TTY is requested on the remote server.
@@ -1162,20 +1210,23 @@ os.execve(exe, argv, env)
b'4\n'
>>> s.system('env | grep -a AAAA', env={'AAAA': b'\x90'}).recvall()
b'AAAA=\x90\n'
- >>> io = s.system('pwd', wd='/tmp')
+ >>> io = s.system('pwd', cwd='/tmp')
>>> io.recvall()
b'/tmp\n'
>>> io.cwd
'/tmp'
"""
-
- if wd is None:
- wd = self.cwd
+ if wd is not None:
+ self.warning_once("The 'wd' argument to ssh.system() is deprecated. Use 'cwd' instead.")
+ if cwd is None:
+ cwd = wd
+ if cwd is None:
+ cwd = self.cwd
if timeout is None:
timeout = self.timeout
- return ssh_channel(self, process, tty, wd, env, timeout = timeout, level = self.level, raw = raw)
+ return ssh_channel(self, process, tty, cwd, env, timeout = timeout, level = self.level, raw = raw)
#: Backward compatibility. Use :meth:`system`
run = system
@@ -1196,7 +1247,7 @@ from ctypes import *; libc = CDLL('libc.so.6'); print(libc.getenv(%r))
''' % variable
with context.local(log_level='error'):
- python = self.which('python')
+ python = self.which('python') or self.which('python2.7') or self.which('python3')
if not python:
self.error("Python is not installed on the remote system.")
@@ -1211,8 +1262,8 @@ from ctypes import *; libc = CDLL('libc.so.6'); print(libc.getenv(%r))
- def run_to_end(self, process, tty = False, wd = None, env = None):
- r"""run_to_end(process, tty = False, timeout = Timeout.default, env = None) -> str
+ def run_to_end(self, process, tty = False, cwd = None, env = None, wd = None):
+ r"""run_to_end(process, tty = False, cwd = None, env = None, timeout = Timeout.default) -> str
Run a command on the remote server and return a tuple with
(data, exit_status). If `tty` is True, then the command is run inside
@@ -1224,8 +1275,13 @@ from ctypes import *; libc = CDLL('libc.so.6'); print(libc.getenv(%r))
(b'Hello\n', 17)
"""
+ if wd is not None:
+ self.warning_once("The 'wd' argument to ssh.run_to_end() is deprecated. Use 'cwd' instead.")
+ if cwd is None:
+ cwd = wd
+
with context.local(log_level = 'ERROR'):
- c = self.run(process, tty, wd = wd, timeout = Timeout.default)
+ c = self.run(process, tty, cwd = cwd, env = env, timeout = Timeout.default)
data = c.recvall()
retcode = c.wait()
c.close()
@@ -1874,7 +1930,7 @@ from ctypes import *; libc = CDLL('libc.so.6'); print(libc.getenv(%r))
wd = packing._need_bytes(wd, 2, 0x80)
if not wd:
- wd, status = self.run_to_end('x=$(mktemp -d) && cd $x && chmod +x . && echo $PWD', wd='.')
+ wd, status = self.run_to_end('x=$(mktemp -d) && cd $x && chmod +x . && echo $PWD', cwd='.')
wd = wd.strip()
if status:
diff --git a/pwnlib/tubes/tube.py b/pwnlib/tubes/tube.py
index 0e5e9da..89ae3fc 100644
--- a/pwnlib/tubes/tube.py
+++ b/pwnlib/tubes/tube.py
@@ -875,7 +875,7 @@ class tube(Timeout, Logger):
go = threading.Event()
def recv_thread():
- while not go.isSet():
+ while not go.is_set():
try:
cur = self.recv(timeout = 0.05)
cur = cur.replace(self.newline, b'\n')
@@ -897,11 +897,11 @@ class tube(Timeout, Logger):
try:
os_linesep = os.linesep.encode()
to_skip = b''
- while not go.isSet():
+ while not go.is_set():
if term.term_mode:
data = term.readline.readline(prompt = prompt, float = True)
- if data:
- data += self.newline
+ if data.endswith(b'\n') and self.newline != b'\n':
+ data = data[:-1] + self.newline
else:
stdin = getattr(sys.stdin, 'buffer', sys.stdin)
data = stdin.read(1)
diff --git a/pwnlib/util/misc.py b/pwnlib/util/misc.py
index 32aa535..f0ee62d 100644
--- a/pwnlib/util/misc.py
+++ b/pwnlib/util/misc.py
@@ -229,6 +229,10 @@ def normalize_argv_env(argv, env, log, level=2):
for k,v in env_items:
if not isinstance(k, (bytes, six.text_type)):
log.error('Environment keys must be strings: %r' % k)
+ # Check if = is in the key, Required check since we sometimes call ctypes.execve directly
+ # https://github.com/python/cpython/blob/025995feadaeebeef5d808f2564f0fd65b704ea5/Modules/posixmodule.c#L6476
+ if b'=' in packing._encode(k):
+ log.error('Environment keys may not contain "=": %r' % (k))
if not isinstance(v, (bytes, six.text_type)):
log.error('Environment values must be strings: %r=%r' % (k,v))
k = packing._need_bytes(k, level, 0x80) # ASCII text is okay
diff --git a/pwnlib/util/safeeval.py b/pwnlib/util/safeeval.py
index 47ed37f..6c4a7c5 100644
--- a/pwnlib/util/safeeval.py
+++ b/pwnlib/util/safeeval.py
@@ -2,11 +2,11 @@ from __future__ import division
_const_codes = [
'POP_TOP','ROT_TWO','ROT_THREE','ROT_FOUR','DUP_TOP',
- 'BUILD_LIST','BUILD_MAP','BUILD_TUPLE','BUILD_SET',
+ 'BUILD_LIST','BUILD_MAP', 'MAP_ADD', 'BUILD_TUPLE','BUILD_SET',
'BUILD_CONST_KEY_MAP', 'BUILD_STRING',
'LOAD_CONST','RETURN_VALUE','STORE_SUBSCR', 'STORE_MAP',
'LIST_TO_TUPLE', 'LIST_EXTEND', 'SET_UPDATE', 'DICT_UPDATE', 'DICT_MERGE',
- 'COPY', 'RESUME',
+ 'COPY', 'RESUME', 'RETURN_CONST'
]
_expr_codes = _const_codes + [
diff --git a/pwnlib/version.py b/pwnlib/version.py
index efbed2e..e8de3f4 100644
--- a/pwnlib/version.py
+++ b/pwnlib/version.py
@@ -1 +1 @@
-__version__ = '4.11.1'
+__version__ = '4.12.0'
diff --git a/pyproject.toml b/pyproject.toml
index 78d315e..5175530 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -55,6 +55,8 @@ dependencies = [
"rpyc",
"colored_traceback",
"pathlib2; python_version < '3.4'",
+ "unix-ar; python_version >= '3'",
+ "zstandard",
]
[project.urls]
@@ -69,3 +71,18 @@ include-package-data = false
[tool.setuptools.packages.find]
namespaces = false
+
+[tool.coverage.run]
+branch = true
+parallel = true
+concurrency = ["thread", "multiprocessing"]
+omit = [
+ "*/constants/*",
+]
+source = [
+ "pwn",
+ "pwnlib",
+ "~/.cache/.pwntools-cache-2.7/",
+ "~/.cache/.pwntools-cache-3.10/",
+]
+disable_warnings = ["module-not-imported"]
diff --git a/setup.py b/setup.py
index 65cb5c3..88ce6c2 100755
--- a/setup.py
+++ b/setup.py
@@ -44,13 +44,15 @@ for filename in glob.glob('pwnlib/commandline/*'):
compat = {}
if sys.version_info < (3, 4):
+ import site
+
import toml
project = toml.load('pyproject.toml')['project']
compat['packages'] = find_packages()
compat['install_requires'] = project['dependencies']
compat['name'] = project['name']
- if '--user' in sys.argv:
- sys.argv.remove('--user')
+ # https://github.com/pypa/pip/issues/7953
+ site.ENABLE_USER_SITE = "--user" in sys.argv[1:]
# Check that the user has installed the Python development headers
@@ -61,7 +63,7 @@ if not os.path.exists(PythonH):
sys.exit(-1)
setup(
- version = '4.11.1',
+ version = '4.12.0',
data_files = [('pwntools-doc',
glob.glob('*.md') + glob.glob('*.txt')),
],
diff --git a/travis/docker/Dockerfile b/travis/docker/Dockerfile
index 24dd606..ccc22ab 100644
--- a/travis/docker/Dockerfile
+++ b/travis/docker/Dockerfile
@@ -5,8 +5,8 @@ ENV HISTFILE=/home/pwntools/.history
# Uninstall existing versions of pwntools
USER root
-RUN python -m pip uninstall -q -y pwntools \
- && python3 -m pip uninstall -q -y pwntools
+RUN python2.7 -m pip uninstall -q -y pwntools \
+ && python3 -m pip uninstall -q -y pwntools
# Switch back to the pwntools user from here forward
USER pwntools
@@ -18,20 +18,23 @@ ENV PATH="/home/pwntools/.local/bin:${PATH}"
# Install Pwntools to the home directory, make it an editable install
RUN git clone https://github.com/Gallopsled/pwntools \
- && python -m pip install --upgrade --editable pwntools \
+ && python2.7 -m pip install --upgrade --editable pwntools \
&& python3 -m pip install --upgrade --editable pwntools \
&& PWNLIB_NOTERM=1 pwn version
# Requirements for running the tests
-RUN python -m pip install --upgrade --requirement pwntools/docs/requirements.txt \
- && python3 -m pip install --upgrade --requirement pwntools/docs/requirements.txt
+RUN python2.7 -m pip install --upgrade --requirement pwntools/docs/requirements.txt \
+ && python3 -m pip install --upgrade --requirement pwntools/docs/requirements.txt
# Python niceties for debugging
-RUN python -m pip install -U ipython ipdb \
- && python3 -m pip install -U ipython ipdb
+RUN python2.7 -m pip install -U ipython ipdb \
+ && python3 -m pip install -U ipython ipdb
# Dependencies from .travis.yml addons -> apt -> packages
-RUN sudo apt-get update && sudo apt-get install -y \
+ARG DEBIAN_FRONTEND=noninteractive
+ENV TZ="UTC"
+RUN sudo apt-get update && sudo -E apt-get install -y \
+ tzdata \
ash \
bash \
bash-static \
@@ -41,7 +44,7 @@ RUN sudo apt-get update && sudo apt-get install -y \
dash \
gcc \
gcc-multilib \
- gdb \
+ gdb \
ksh \
lib32stdc++6 \
libc6-dev-i386 \
@@ -51,12 +54,9 @@ RUN sudo apt-get update && sudo apt-get install -y \
socat \
sshpass \
vim \
- zsh
-
+ zsh \
# Misc useful things when developing
-RUN sudo apt-get install -y \
curl \
- ipython \
ipython3 \
lsb-release \
ssh \
@@ -64,7 +64,7 @@ RUN sudo apt-get install -y \
wget
# Use zsh by default
-RUN sudo chsh -s /bin/zsh pwntools
+RUN sudo -E chsh -s /bin/zsh pwntools
# Get and install prezto
RUN git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto
@@ -84,9 +84,10 @@ ADD ipython_config.py /home/pwntools/.ipython/profile_default
# Do not require password for sudo
RUN echo "pwntools ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/travis
+
# Some additional debugging tools that are useful
-RUN python -m pip install ipdb
-RUN python3 -m pip install ipdb
+RUN python2.7 -m pip install ipdb && \
+ python3 -m pip install ipdb
# Install debugging utilities
USER root
@@ -94,14 +95,15 @@ RUN apt-get -y install gdb gdbserver tmux gdb-multiarch
# Set up binfmt-misc mappings inside the VM
USER root
-RUN mkdir /etc/qemu-binfmt
-RUN ln -sf /usr/lib/arm-linux-gnueabihf /etc/qemu-binfmt/arm
-RUN ln -sf /usr/lib/aarch64-linux-gnu /etc/qemu-binfmt/aarch64
-RUN ln -sf /usr/lib/mips-linux-gnu /etc/qemu-binfmt/mips
-RUN ln -sf /usr/lib/mipsel-linux-gnu /etc/qemu-binfmt/mipsel
-RUN ln -sf /usr/lib/powerpc-linux-gnu /etc/qemu-binfmt/powerpc
-RUN ln -sf /usr/lib/powerpc-linux-gnu64 /etc/qemu-binfmt/powerpc64
-RUN ln -sf /usr/lib/sparc64-linux-gnu /etc/qemu-binfmt/sparc64
+RUN mkdir /etc/qemu-binfmt && \
+ ln -sf /usr/lib/arm-linux-gnueabihf /etc/qemu-binfmt/arm && \
+ ln -sf /usr/lib/aarch64-linux-gnu /etc/qemu-binfmt/aarch64 && \
+ ln -sf /usr/lib/mips-linux-gnu /etc/qemu-binfmt/mips && \
+ ln -sf /usr/lib/mipsel-linux-gnu /etc/qemu-binfmt/mipsel && \
+ ln -sf /usr/lib/powerpc-linux-gnu /etc/qemu-binfmt/powerpc && \
+ ln -sf /usr/lib/powerpc-linux-gnu64 /etc/qemu-binfmt/powerpc64 && \
+ ln -sf /usr/lib/sparc64-linux-gnu /etc/qemu-binfmt/sparc64 && \
+ ln -sf /usr/lib/riscv64-linux-gnu /etc/qemu-binfmt/riscv64
# Create the Travis user
USER root
@@ -110,9 +112,9 @@ RUN echo "travis ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/travis
# Set up SSH stuff so we can SSH into localhost
USER pwntools
-RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''
-RUN cp ~/.ssh/id_rsa.pub /tmp
-RUN echo \
+RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -N '' && \
+ cp ~/.ssh/id_rsa.pub /tmp && \
+ echo \
"Host *\n\
User travis\n\
HostName 127.0.0.1\n\
@@ -120,22 +122,19 @@ RUN echo \
# Set up authorized_keys so we can login as travis with no creds
USER travis
-RUN mkdir -m 0700 ~/.ssh
-RUN echo 'from="127.0.0.1"' $(cat /tmp/id_rsa.pub) > ~/.ssh/authorized_keys
+RUN mkdir -m 0700 ~/.ssh && \
+ echo 'from="127.0.0.1"' $(cat /tmp/id_rsa.pub) > ~/.ssh/authorized_keys
# Add the doctest entrypoint to /usr/bin so we don't have to supply the full path
USER root
-ADD doctest2 /usr/bin
-ADD doctest3 /usr/bin
+ADD doctest2 doctest3 /usr/bin
# Switch back to pwntools to actually run the image
USER pwntools
WORKDIR /home/pwntools
# Copy in the Doctest script
-COPY doctest2 /home/pwntools
-COPY doctest3 /home/pwntools
-COPY tmux.sh /home/pwntools
+COPY doctest2 doctest3 tmux.sh /home/pwntools
# Do everything in UTF-8 mode!
ENV LANG=C.UTF-8
diff --git a/travis/docker/Dockerfile.travis b/travis/docker/Dockerfile.travis
index cc63f18..9ab1372 100644
--- a/travis/docker/Dockerfile.travis
+++ b/travis/docker/Dockerfile.travis
@@ -1,7 +1,7 @@
# Some additional debugging tools that are useful
-RUN python -m pip install ipdb
-RUN python3 -m pip install ipdb
+RUN python2.7 -m pip install ipdb && \
+ python3 -m pip install ipdb
# Install debugging utilities
USER root
@@ -9,14 +9,15 @@ RUN apt-get -y install gdb gdbserver tmux gdb-multiarch
# Set up binfmt-misc mappings inside the VM
USER root
-RUN mkdir /etc/qemu-binfmt
-RUN ln -sf /usr/lib/arm-linux-gnueabihf /etc/qemu-binfmt/arm
-RUN ln -sf /usr/lib/aarch64-linux-gnu /etc/qemu-binfmt/aarch64
-RUN ln -sf /usr/lib/mips-linux-gnu /etc/qemu-binfmt/mips
-RUN ln -sf /usr/lib/mipsel-linux-gnu /etc/qemu-binfmt/mipsel
-RUN ln -sf /usr/lib/powerpc-linux-gnu /etc/qemu-binfmt/powerpc
-RUN ln -sf /usr/lib/powerpc-linux-gnu64 /etc/qemu-binfmt/powerpc64
-RUN ln -sf /usr/lib/sparc64-linux-gnu /etc/qemu-binfmt/sparc64
+RUN mkdir /etc/qemu-binfmt && \
+ ln -sf /usr/lib/arm-linux-gnueabihf /etc/qemu-binfmt/arm && \
+ ln -sf /usr/lib/aarch64-linux-gnu /etc/qemu-binfmt/aarch64 && \
+ ln -sf /usr/lib/mips-linux-gnu /etc/qemu-binfmt/mips && \
+ ln -sf /usr/lib/mipsel-linux-gnu /etc/qemu-binfmt/mipsel && \
+ ln -sf /usr/lib/powerpc-linux-gnu /etc/qemu-binfmt/powerpc && \
+ ln -sf /usr/lib/powerpc-linux-gnu64 /etc/qemu-binfmt/powerpc64 && \
+ ln -sf /usr/lib/sparc64-linux-gnu /etc/qemu-binfmt/sparc64 && \
+ ln -sf /usr/lib/riscv64-linux-gnu /etc/qemu-binfmt/riscv64
# Create the Travis user
USER root
@@ -25,9 +26,9 @@ RUN echo "travis ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/travis
# Set up SSH stuff so we can SSH into localhost
USER pwntools
-RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ''
-RUN cp ~/.ssh/id_rsa.pub /tmp
-RUN echo \
+RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -N '' && \
+ cp ~/.ssh/id_rsa.pub /tmp && \
+ echo \
"Host *\n\
User travis\n\
HostName 127.0.0.1\n\
@@ -35,22 +36,19 @@ RUN echo \
# Set up authorized_keys so we can login as travis with no creds
USER travis
-RUN mkdir -m 0700 ~/.ssh
-RUN echo 'from="127.0.0.1"' $(cat /tmp/id_rsa.pub) > ~/.ssh/authorized_keys
+RUN mkdir -m 0700 ~/.ssh && \
+ echo 'from="127.0.0.1"' $(cat /tmp/id_rsa.pub) > ~/.ssh/authorized_keys
# Add the doctest entrypoint to /usr/bin so we don't have to supply the full path
USER root
-ADD doctest2 /usr/bin
-ADD doctest3 /usr/bin
+ADD doctest2 doctest3 /usr/bin
# Switch back to pwntools to actually run the image
USER pwntools
WORKDIR /home/pwntools
# Copy in the Doctest script
-COPY doctest2 /home/pwntools
-COPY doctest3 /home/pwntools
-COPY tmux.sh /home/pwntools
+COPY doctest2 doctest3 tmux.sh /home/pwntools
# Do everything in UTF-8 mode!
ENV LANG=C.UTF-8
diff --git a/travis/setup_avd_fast.sh b/travis/setup_avd_fast.sh
index 577ddc2..01cd9c4 100644
--- a/travis/setup_avd_fast.sh
+++ b/travis/setup_avd_fast.sh
@@ -8,17 +8,17 @@ set -ex
# - arm64-v8a
# - x86
# - x86_64
-ANDROID_ABI='armeabi-v7a'
+ANDROID_ABI='x86_64'
ANDROIDV=android-24
# Create our emulator Android Virtual Device (AVD)
# --snapshot flag is deprecated, see bitrise-steplib/steps-create-android-emulator#18
export PATH=$PATH:"$ANDROID_HOME"/cmdline-tools/latest/bin:"$ANDROID_HOME"/platform-tools
-yes | sdkmanager --sdk_root="$ANDROID_HOME" --install "system-images;$ANDROIDV;default;$ANDROID_ABI"
+yes | sdkmanager --sdk_root="$ANDROID_HOME" --install "system-images;$ANDROIDV;default;$ANDROID_ABI" "emulator" "platform-tools" "platforms;$ANDROIDV"
yes | sdkmanager --sdk_root="$ANDROID_HOME" --licenses
echo no | avdmanager --silent create avd --name android-$ANDROID_ABI --force --package "system-images;$ANDROIDV;default;$ANDROID_ABI"
-"$ANDROID_HOME"/emulator/emulator -avd android-$ANDROID_ABI -no-window -no-boot-anim -read-only -no-audio -no-window -no-snapshot &
+"$ANDROID_HOME"/emulator/emulator -avd android-$ANDROID_ABI -no-window -no-boot-anim -read-only -no-audio -no-window -no-snapshot -gpu off -accel off &
adb wait-for-device
adb shell id
adb shell getprop