Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _GNU_SOURCE
- #include <stdio.h>
- #include <unistd.h>
- #include <string.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <sys/syscall.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <signal.h>
- #include <sys/mman.h>
- #include <sys/time.h>
- #include <sys/resource.h>
- #include <linux/futex.h>
- #include <pthread.h>
- #include <sys/wait.h>
- struct rusage usage;
- void *func1(void *vargp)
- {
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\257\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0!\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\250\1\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260`\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\r\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0V\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libX11.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\210\1\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libffi.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\27\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\25\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libxcb.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\226\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXau.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\16\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXdmcp.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\21\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_mprotect, 0xadb000, 20480, PROT_READ);
- // syscall(SYS_getrlimit, RLIMIT_STACK, rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY);
- syscall(SYS_futex, 0xb05c6c, FUTEX_WAKE_PRIVATE, 2147483647);
- syscall(SYS_futex, 0xb05c78, FUTEX_WAKE_PRIVATE, 2147483647);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- // syscall(SYS_stat, "/lib/x86_64-linux-gnu", st_dev=makedev(8, 1), st_ino=391716, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=40, st_size=20480, st_atime=2018/05/28-13:08:14.528000000, st_mtime=2018/05/18-17:11:24.488882588, st_ctime=2018/05/18-17:11:24.488882588);
- // syscall(SYS_stat, "/usr/lib/x86_64-linux-gnu", st_dev=makedev(8, 1), st_ino=137638, st_mode=S_IFDIR|0755, st_nlink=105, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=144, st_size=73728, st_atime=2018/05/28-13:08:14.532000000, st_mtime=2018/05/24-17:58:59.708320891, st_ctime=2018/05/24-17:58:59.708320891);
- // syscall(SYS_stat, "/lib", st_dev=makedev(8, 1), st_ino=391682, st_mode=S_IFDIR|0755, st_nlink=25, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=4096, st_atime=2018/05/28-13:08:14.692000000, st_mtime=2018/05/18-17:10:08.163376030, st_ctime=2018/05/18-17:10:08.163376030);
- // syscall(SYS_stat, "/usr/lib", st_dev=makedev(8, 1), st_ino=133971, st_mode=S_IFDIR|0755, st_nlink=157, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=24, st_size=12288, st_atime=2018/05/29-13:07:17.559999938, st_mtime=2018/05/24-17:58:58.255584326, st_ctime=2018/05/24-17:58:58.255584326);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libcairo.so.2", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\34\1\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libpixman-1.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\233\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libfontconfig.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`m\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libfreetype.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\334\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libpng12.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p:\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\r\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libxcb-render.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`4\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXrender.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\32\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXext.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2205\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\35\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libexpat.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0;\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\317\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libthai.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\33\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libdatrie.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\21\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200I\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360q\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0Pf\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgraphite2.so.3", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220$\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\331\1\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260`\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200X\3\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXinerama.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\n\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXi.so.6", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240!\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXrandr.so.2", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\34\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXcursor.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340#\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXcomposite.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\f\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXdamage.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\v\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libXfixes.so.3", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\25\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\21\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260Z\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P9\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/proc/filesystems", O_RDONLY) ;
- syscall(SYS_read, 3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr", 1024);
- syscall(SYS_read, 3, "", 1024);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\237\6\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/usr/lib/x86_64-linux-gnu/libatk-1.0.so.0", O_RDONLY|O_CLOEXEC);
- syscall(SYS_read, 3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\247\0\0\0\0\0\0", 832);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- syscall(SYS_open, "/dev/urandom", O_RDONLY|O_CLOEXEC);
- syscall(SYS_close, 3);
- // syscall(SYS_sigaltstack, NULL, ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0);
- syscall(SYS_rt_sigaction, SIGSEGV, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_rt_sigaction, SIGABRT, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_rt_sigaction, SIGFPE, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_rt_sigaction, SIGILL, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_rt_sigaction, SIGBUS, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_rt_sigaction, SIGTRAP, NULL, SIG_DFL, NULL, 0, 8);
- syscall(SYS_getcwd, "/media/sf_sharedvm/termProj/tests", 4096);
- return NULL;
- }
- void *func2(void *vargp)
- {
- long pid;
- int stat_loc;
- if ((pid = (long) fork()) == 0){
- char s[] = "/opt/sublime_text/sublime_text";
- char* separator = " ";
- char* argv[64];
- int argc = 0;
- char* tmp;
- argv[argc] = strtok_r(s, separator, &tmp);
- while( argv[argc] != NULL){
- argc+=1;
- argv[argc] = strtok_r(NULL, separator, &tmp);
- }
- execvp(argv[0],argv);
- }
- else {
- waitpid(pid, & stat_loc, WUNTRACED);
- }
- return NULL;
- }
- int main()
- {
- // struct rusage usage;
- pthread_t thread_id[2];
- pthread_create(&thread_id[1], NULL, func2, NULL);
- pthread_create(&thread_id[0], NULL, func1, NULL);
- pthread_join(thread_id[0], NULL);
- pthread_join(thread_id[1], NULL);
- getrusage(RUSAGE_SELF, &usage);
- printf("Input: %ld Output: %ld\n", usage.ru_inblock, usage.ru_oublock);
- exit(0);
- }
Add Comment
Please, Sign In to add comment