Skip to content

Instantly share code, notes, and snippets.

@haxpor
Last active August 14, 2021 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haxpor/6e03eca7a6ebc2d7b1112744b3a81d60 to your computer and use it in GitHub Desktop.
Save haxpor/6e03eca7a6ebc2d7b1112744b3a81d60 to your computer and use it in GitHub Desktop.
strace for insmod, and rmmod of a simple kernel module. Executed with `sudo strace -v insmod <.ko-file>` and vice-versa.
## insmod
execve("/usr/sbin/insmod", ["insmod", "hello-1.ko"], ["COLORTERM=truecolor", "LC_ADDRESS=en_US.UTF-8", "LC_NAME=en_US.UTF-8", "LC_MONETARY=en_US.UTF-8", "XAUTHORITY=/run/user/1000/gdm/Xa"..., "LC_PAPER=en_US.UTF-8", "LANG=en_US.UTF-8", "LS_COLORS=rs=0:di=01;34:ln=01;36"..., "TERM=screen-256color", "LC_IDENTIFICATION=en_US.UTF-8", "DISPLAY=:0", "LC_TELEPHONE=en_US.UTF-8", "LC_MEASUREMENT=en_US.UTF-8", "LC_TIME=en_US.UTF-8", "PATH=/usr/local/sbin:/usr/local/"..., "LC_NUMERIC=en_US.UTF-8", "MAIL=/var/mail/root", "LOGNAME=root", "USER=root", "HOME=/root", "SHELL=/bin/bash", "SUDO_COMMAND=/usr/bin/strace -v "..., "SUDO_USER=haxpor", "SUDO_UID=1000", "SUDO_GID=1000"]) = 0
brk(NULL) = 0x564213d1c000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffff1ceef80) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=16966, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=248, st_size=126475, st_atime=1628916169 /* 2021-08-14T06:42:49.968131303+0200 */, st_atime_nsec=968131303, st_mtime=1628916169 /* 2021-08-14T06:42:49.952131208+0200 */, st_mtime_nsec=952131208, st_ctime=1628916169 /* 2021-08-14T06:42:49.956131231+0200 */, st_ctime_nsec=956131231}) = 0
mmap(NULL, 126475, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f301f187000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3003\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=132138, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=320, st_size=162264, st_atime=1628892887 /* 2021-08-14T00:14:47.942972288+0200 */, st_atime_nsec=942972288, st_mtime=1587419004 /* 2020-04-20T23:43:24+0200 */, st_mtime_nsec=0, st_ctime=1607155304 /* 2020-12-05T09:01:44.892522354+0100 */, st_ctime_nsec=892522354}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f301f185000
mmap(NULL, 164104, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f301f15c000
mprotect(0x7f301f15f000, 147456, PROT_NONE) = 0
mmap(0x7f301f15f000, 98304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f301f15f000
mmap(0x7f301f177000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f301f177000
mmap(0x7f301f183000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f301f183000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\220\7\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=134097, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=5776, st_size=2954080, st_atime=1628905117 /* 2021-08-14T03:38:37.385017394+0200 */, st_atime_nsec=385017394, st_mtime=1619570248 /* 2021-04-28T02:37:28+0200 */, st_mtime_nsec=0, st_ctime=1622978026 /* 2021-06-06T13:13:46.016178365+0200 */, st_ctime_nsec=16178365}) = 0
mmap(NULL, 2973600, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f301ee86000
mmap(0x7f301eefe000, 1683456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x78000) = 0x7f301eefe000
mmap(0x7f301f099000, 593920, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x213000) = 0x7f301f099000
mmap(0x7f301f12a000, 188416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2a3000) = 0x7f301f12a000
mmap(0x7f301f158000, 16288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f301f158000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360q\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\t\233\222%\274\260\320\31\331\326\10\204\276X>\263"..., 68, 880) = 68
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137831, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=3968, st_size=2029224, st_atime=1628886301 /* 2021-08-13T22:25:01.161047242+0200 */, st_atime_nsec=161047242, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\t\233\222%\274\260\320\31\331\326\10\204\276X>\263"..., 68, 880) = 68
mmap(NULL, 2036952, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f301ec94000
mprotect(0x7f301ecb9000, 1847296, PROT_NONE) = 0
mmap(0x7f301ecb9000, 1540096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7f301ecb9000
mmap(0x7f301ee31000, 303104, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7f301ee31000
mmap(0x7f301ee7c000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7f301ee7c000
mmap(0x7f301ee82000, 13528, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f301ee82000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\201\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\345Ga\367\265T\320\374\301V)Yf]\223\337"..., 68, 824) = 68
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137860, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=312, st_size=157224, st_atime=1628892280 /* 2021-08-14T00:04:40.911427568+0200 */, st_atime_nsec=911427568, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\345Ga\367\265T\320\374\301V)Yf]\223\337"..., 68, 824) = 68
mmap(NULL, 140408, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f301ec71000
mmap(0x7f301ec78000, 69632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f301ec78000
mmap(0x7f301ec89000, 20480, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f301ec89000
mmap(0x7f301ec8e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x7f301ec8e000
mmap(0x7f301ec90000, 13432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f301ec90000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \22\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137833, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=40, st_size=18816, st_atime=1628892280 /* 2021-08-14T00:04:40.911427568+0200 */, st_atime_nsec=911427568, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
mmap(NULL, 20752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f301ec6b000
mmap(0x7f301ec6c000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f301ec6c000
mmap(0x7f301ec6e000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f301ec6e000
mmap(0x7f301ec6f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f301ec6f000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f301ec69000
arch_prctl(ARCH_SET_FS, 0x7f301ec6a540) = 0
mprotect(0x7f301ee7c000, 12288, PROT_READ) = 0
mprotect(0x7f301ec6f000, 4096, PROT_READ) = 0
mprotect(0x7f301ec8e000, 4096, PROT_READ) = 0
mprotect(0x7f301f12a000, 180224, PROT_READ) = 0
mprotect(0x7f301f183000, 4096, PROT_READ) = 0
mprotect(0x56421246e000, 8192, PROT_READ) = 0
mprotect(0x7f301f1d3000, 4096, PROT_READ) = 0
munmap(0x7f301f187000, 126475) = 0
set_tid_address(0x7f301ec6a810) = 627236
set_robust_list(0x7f301ec6a820, 24) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f301ec78bf0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f301ec863c0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f301ec78c90, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f301ec863c0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL) = 0x564213d1c000
brk(0x564213d3d000) = 0x564213d3d000
uname({sysname="Linux", nodename="haxpor-desktop", release="5.8.16-050816-generic", version="#202010170731 SMP Sat Oct 17 07:34:35 UTC 2020", machine="x86_64", domainname="(none)"}) = 0
openat(AT_FDCWD, "/lib/modules/5.8.16-050816-generic/modules.softdep", O_RDONLY|O_CLOEXEC) = 3
fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=393643, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=853, st_atime=1628960066 /* 2021-08-14T18:54:26.282952046+0200 */, st_atime_nsec=282952046, st_mtime=1627361328 /* 2021-07-27T06:48:48.628468169+0200 */, st_mtime_nsec=628468169, st_ctime=1627361328 /* 2021-07-27T06:48:48.628468169+0200 */, st_ctime_nsec=628468169}) = 0
read(3, "# Soft dependencies extracted fr"..., 4096) = 853
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_CLOEXEC) = 3
read(3, "BOOT_IMAGE=/boot/vmlinuz-5.8.16-"..., 4095) = 123
read(3, "", 3972) = 0
close(3) = 0
getcwd("/mnt/datadrive/_extended/home/haxpor/Data/Projects/kern_st/hello-1", 4096) = 67
stat("/mnt/datadrive/_extended/home/haxpor/Data/Projects/kern_st/hello-1/hello-1.ko", {st_dev=makedev(0x8, 0x11), st_ino=14835550, st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8, st_size=3904, st_atime=1628935055 /* 2021-08-14T11:57:35.375014596+0200 */, st_atime_nsec=375014596, st_mtime=1628811096 /* 2021-08-13T01:31:36.266127066+0200 */, st_mtime_nsec=266127066, st_ctime=1628811096 /* 2021-08-13T01:31:36.266127066+0200 */, st_ctime_nsec=266127066}) = 0
openat(AT_FDCWD, "/mnt/datadrive/_extended/home/haxpor/Data/Projects/kern_st/hello-1/hello-1.ko", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1", 6) = 6
lseek(3, 0, SEEK_SET) = 0
fstat(3, {st_dev=makedev(0x8, 0x11), st_ino=14835550, st_mode=S_IFREG|0664, st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8, st_size=3904, st_atime=1628935055 /* 2021-08-14T11:57:35.375014596+0200 */, st_atime_nsec=375014596, st_mtime=1628811096 /* 2021-08-13T01:31:36.266127066+0200 */, st_mtime_nsec=266127066, st_ctime=1628811096 /* 2021-08-13T01:31:36.266127066+0200 */, st_ctime_nsec=266127066}) = 0
mmap(NULL, 3904, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f301f1d2000
finit_module(3, "", 0) = 0
munmap(0x7f301f1d2000, 3904) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
## rmmod
execve("/usr/sbin/rmmod", ["rmmod", "hello_1"], ["COLORTERM=truecolor", "LC_ADDRESS=en_US.UTF-8", "LC_NAME=en_US.UTF-8", "LC_MONETARY=en_US.UTF-8", "XAUTHORITY=/run/user/1000/gdm/Xa"..., "LC_PAPER=en_US.UTF-8", "LANG=en_US.UTF-8", "LS_COLORS=rs=0:di=01;34:ln=01;36"..., "TERM=screen-256color", "LC_IDENTIFICATION=en_US.UTF-8", "DISPLAY=:0", "LC_TELEPHONE=en_US.UTF-8", "LC_MEASUREMENT=en_US.UTF-8", "LC_TIME=en_US.UTF-8", "PATH=/usr/local/sbin:/usr/local/"..., "LC_NUMERIC=en_US.UTF-8", "MAIL=/var/mail/root", "LOGNAME=root", "USER=root", "HOME=/root", "SHELL=/bin/bash", "SUDO_COMMAND=/usr/bin/strace -v "..., "SUDO_USER=haxpor", "SUDO_UID=1000", "SUDO_GID=1000"]) = 0
brk(NULL) = 0x56341b073000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc75ec9de0) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=16966, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=248, st_size=126475, st_atime=1628916169 /* 2021-08-14T06:42:49.968131303+0200 */, st_atime_nsec=968131303, st_mtime=1628916169 /* 2021-08-14T06:42:49.952131208+0200 */, st_mtime_nsec=952131208, st_ctime=1628916169 /* 2021-08-14T06:42:49.956131231+0200 */, st_ctime_nsec=956131231}) = 0
mmap(NULL, 126475, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f94165cc000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3003\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=132138, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=320, st_size=162264, st_atime=1628892887 /* 2021-08-14T00:14:47.942972288+0200 */, st_atime_nsec=942972288, st_mtime=1587419004 /* 2020-04-20T23:43:24+0200 */, st_mtime_nsec=0, st_ctime=1607155304 /* 2020-12-05T09:01:44.892522354+0100 */, st_ctime_nsec=892522354}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f94165ca000
mmap(NULL, 164104, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f94165a1000
mprotect(0x7f94165a4000, 147456, PROT_NONE) = 0
mmap(0x7f94165a4000, 98304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f94165a4000
mmap(0x7f94165bc000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f94165bc000
mmap(0x7f94165c8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f94165c8000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\220\7\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=134097, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=5776, st_size=2954080, st_atime=1628905117 /* 2021-08-14T03:38:37.385017394+0200 */, st_atime_nsec=385017394, st_mtime=1619570248 /* 2021-04-28T02:37:28+0200 */, st_mtime_nsec=0, st_ctime=1622978026 /* 2021-06-06T13:13:46.016178365+0200 */, st_ctime_nsec=16178365}) = 0
mmap(NULL, 2973600, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f94162cb000
mmap(0x7f9416343000, 1683456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x78000) = 0x7f9416343000
mmap(0x7f94164de000, 593920, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x213000) = 0x7f94164de000
mmap(0x7f941656f000, 188416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2a3000) = 0x7f941656f000
mmap(0x7f941659d000, 16288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f941659d000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360q\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\t\233\222%\274\260\320\31\331\326\10\204\276X>\263"..., 68, 880) = 68
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137831, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=3968, st_size=2029224, st_atime=1628886301 /* 2021-08-13T22:25:01.161047242+0200 */, st_atime_nsec=161047242, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32, 848) = 32
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\t\233\222%\274\260\320\31\331\326\10\204\276X>\263"..., 68, 880) = 68
mmap(NULL, 2036952, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f94160d9000
mprotect(0x7f94160fe000, 1847296, PROT_NONE) = 0
mmap(0x7f94160fe000, 1540096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7f94160fe000
mmap(0x7f9416276000, 303104, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d000) = 0x7f9416276000
mmap(0x7f94162c1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7f94162c1000
mmap(0x7f94162c7000, 13528, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f94162c7000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\201\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\345Ga\367\265T\320\374\301V)Yf]\223\337"..., 68, 824) = 68
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137860, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=312, st_size=157224, st_atime=1628892280 /* 2021-08-14T00:04:40.911427568+0200 */, st_atime_nsec=911427568, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\345Ga\367\265T\320\374\301V)Yf]\223\337"..., 68, 824) = 68
mmap(NULL, 140408, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f94160b6000
mmap(0x7f94160bd000, 69632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f94160bd000
mmap(0x7f94160ce000, 20480, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f94160ce000
mmap(0x7f94160d3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x7f94160d3000
mmap(0x7f94160d5000, 13432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f94160d5000
close(3) = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \22\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=137833, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=40, st_size=18816, st_atime=1628892280 /* 2021-08-14T00:04:40.911427568+0200 */, st_atime_nsec=911427568, st_mtime=1608116695 /* 2020-12-16T12:04:55+0100 */, st_mtime_nsec=0, st_ctime=1616864785 /* 2021-03-27T18:06:25.212105605+0100 */, st_ctime_nsec=212105605}) = 0
mmap(NULL, 20752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f94160b0000
mmap(0x7f94160b1000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f94160b1000
mmap(0x7f94160b3000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f94160b3000
mmap(0x7f94160b4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f94160b4000
close(3) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f94160ae000
arch_prctl(ARCH_SET_FS, 0x7f94160af540) = 0
mprotect(0x7f94162c1000, 12288, PROT_READ) = 0
mprotect(0x7f94160b4000, 4096, PROT_READ) = 0
mprotect(0x7f94160d3000, 4096, PROT_READ) = 0
mprotect(0x7f941656f000, 180224, PROT_READ) = 0
mprotect(0x7f94165c8000, 4096, PROT_READ) = 0
mprotect(0x563419fd3000, 8192, PROT_READ) = 0
mprotect(0x7f9416618000, 4096, PROT_READ) = 0
munmap(0x7f94165cc000, 126475) = 0
set_tid_address(0x7f94160af810) = 627289
set_robust_list(0x7f94160af820, 24) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f94160bdbf0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f94160cb3c0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f94160bdc90, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f94160cb3c0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL) = 0x56341b073000
brk(0x56341b094000) = 0x56341b094000
uname({sysname="Linux", nodename="haxpor-desktop", release="5.8.16-050816-generic", version="#202010170731 SMP Sat Oct 17 07:34:35 UTC 2020", machine="x86_64", domainname="(none)"}) = 0
openat(AT_FDCWD, "/lib/modules/5.8.16-050816-generic/modules.softdep", O_RDONLY|O_CLOEXEC) = 3
fcntl(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=393643, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=853, st_atime=1628960066 /* 2021-08-14T18:54:26.282952046+0200 */, st_atime_nsec=282952046, st_mtime=1627361328 /* 2021-07-27T06:48:48.628468169+0200 */, st_mtime_nsec=628468169, st_ctime=1627361328 /* 2021-07-27T06:48:48.628468169+0200 */, st_ctime_nsec=628468169}) = 0
read(3, "# Soft dependencies extracted fr"..., 4096) = 853
read(3, "", 4096) = 0
close(3) = 0
openat(AT_FDCWD, "/proc/cmdline", O_RDONLY|O_CLOEXEC) = 3
read(3, "BOOT_IMAGE=/boot/vmlinuz-5.8.16-"..., 4095) = 123
read(3, "", 3972) = 0
close(3) = 0
stat("hello_1", 0x7ffc75ec9cf0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/modules/5.8.16-050816-generic/modules.builtin.bin", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_dev=makedev(0x103, 0x2), st_ino=393836, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=32, st_size=12521, st_atime=1628960099 /* 2021-08-14T18:54:59.951223906+0200 */, st_atime_nsec=951223906, st_mtime=1627361328 /* 2021-07-27T06:48:48.644468246+0200 */, st_mtime_nsec=644468246, st_ctime=1627361328 /* 2021-07-27T06:48:48.644468246+0200 */, st_ctime_nsec=644468246}) = 0
read(3, "\260\7\364W\0\2\0\1 \0/\333ase\0\0\0\0\1\0\0\0\0\0ci\0\0\0\0\1"..., 4096) = 4096
lseek(3, 8192, SEEK_SET) = 8192
read(3, "\0\0\0\0\0\0\0\0\0\300\0\37\324\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 233
lseek(3, 4096, SEEK_SET) = 4096
read(3, "\0\0\0 \0\17\207\0\0\0\0\300\0\17\235\0\0\0\1\0\0\0\0\0\0\0\0\1\0\0\0\0"..., 4096) = 4096
lseek(3, 8192, SEEK_SET) = 8192
close(3) = 0
openat(AT_FDCWD, "/sys/module/hello_1/initstate", O_RDONLY|O_CLOEXEC) = 3
read(3, "live\n", 31) = 5
read(3, "", 26) = 0
close(3) = 0
openat(AT_FDCWD, "/sys/module/hello_1/holders", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_dev=makedev(0, 0x16), st_ino=1723970, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=0, st_atime=1628962752 /* 2021-08-14T19:39:12.877180655+0200 */, st_atime_nsec=877180655, st_mtime=1628962752 /* 2021-08-14T19:39:12.877180655+0200 */, st_mtime_nsec=877180655, st_ctime=1628962752 /* 2021-08-14T19:39:12.877180655+0200 */, st_ctime_nsec=877180655}) = 0
getdents64(3, [{d_ino=1723970, d_off=1, d_reclen=24, d_type=DT_DIR, d_name="."}, {d_ino=1723969, d_off=2147483647, d_reclen=24, d_type=DT_DIR, d_name=".."}], 32768) = 48
getdents64(3, [], 32768) = 0
close(3) = 0
openat(AT_FDCWD, "/sys/module/hello_1/refcnt", O_RDONLY|O_CLOEXEC) = 3
read(3, "0\n", 31) = 2
read(3, "", 29) = 0
close(3) = 0
delete_module("hello_1", O_NONBLOCK) = 0
exit_group(0) = ?
+++ exited with 0 +++
/*
* hello-1.c - The simplest kernel module.
* Source from https://sysprog21.github.io/lkmpg/#introduction.
*/
#include <linux/kernel.h> /* Needed for KERN_INFO */
#include <linux/module.h> /* Needed by all modules */
int init_module(void)
{
pr_info("Hello world 1.\n");
/* A non 0 return means init_module failed; module can't be loaded. */
return 0;
}
void cleanup_module(void)
{
pr_info("Goodbye world 1.\n");
}
MODULE_LICENSE("GPL");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment