Coder Social home page Coder Social logo

Comments (3)

StevenJiang1110 avatar StevenJiang1110 commented on July 3, 2024

Running ash in busybox

strace ./busybox sh

The strace output is:

execve("./busybox", ["./busybox", "sh"], ["HOSTNAME=3e7006a98bdb", "PWD=/root/busybox-1.35.0", "HOME=/root", "LS_COLORS=rs=0:di=01;34:ln=01;36"..., "TERM=xterm", "SHLVL=1", "PATH=/usr/local/sbin:/usr/local/"..., "_=/usr/bin/strace", "OLDPWD=/root"]) = 0
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe99d97ab0) = -1 EINVAL (Invalid argument)
brk(NULL)                               = 0xbc6000
brk(0xbc7200)                           = 0xbc7200
arch_prctl(ARCH_SET_FS, 0xbc68c0)       = 0
uname({sysname="Linux", nodename="3e7006a98bdb", release="5.15.0-48-generic", version="#54~20.04.1-Ubuntu SMP Thu Sep 1 16:17:26 UTC 2022", machine="x86_64", domainname="(none)"}) = 0
readlink("/proc/self/exe", "/root/busybox-1.35.0/busybox", 4096) = 28
brk(0xbe8200)                           = 0xbe8200
brk(0xbe9000)                           = 0xbe9000
mprotect(0x67c000, 24576, PROT_READ)    = 0
prctl(PR_GET_NAME, "busybox")           = 0
getuid()                                = 0
getpid()                                = 17
getppid()                               = 14
getcwd("/root/busybox-1.35.0", 192)     = 21
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(1, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGPGRP, [14])               = 0
fcntl(0, F_DUPFD_CLOEXEC, 255)          = 255
fcntl(255, F_SETFD, FD_CLOEXEC)         = 0
getpgrp()                               = 14
ioctl(255, TIOCGPGRP, [14])             = 0
rt_sigaction(SIGHUP, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x588f24, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x5885c3, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
setpgid(0, 0)                           = 0
ioctl(255, TIOCSPGRP, [17])             = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
openat(AT_FDCWD, "/root/.hush_history", O_RDONLY) = -1 ENOENT (No such file or directory)
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=26, ws_col=140, ws_xpixel=0, ws_ypixel=0}) = 0
getcwd("/root/busybox-1.35.0", 192)     = 21
geteuid()                               = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY) = 3
fstat(3, {st_dev=makedev(0, 0xcc), st_ino=104335636, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=926, st_atime=1647828549 /* 2022-03-21T02:09:09.363458134+0000 */, st_atime_nsec=363458134, st_mtime=1641401277 /* 2022-01-05T16:47:57+0000 */, st_mtime_nsec=0, st_ctime=1642749328 /* 2022-01-21T07:15:28.671539588+0000 */, st_ctime_nsec=671539588}) = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 926
close(3)                                = 0
geteuid()                               = 0
fstat(1, {st_dev=makedev(0, 0xdc), st_ino=3, st_mode=S_IFCHR|0620, st_nlink=1, st_uid=0, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(0x88, 0), st_atime=1667289184 /* 2022-11-01T07:53:04.981857601+0000 */, st_atime_nsec=981857601, st_mtime=1667289184 /* 2022-11-01T07:53:04.981857601+0000 */, st_mtime_nsec=981857601, st_ctime=1667289064 /* 2022-11-01T07:51:04.038189430+0000 */, st_ctime_nsec=38189430}) = 0
rt_sigaction(SIGWINCH, {sa_handler=0x5e3228, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
write(1, "~/busybox-1.35.0 # ", 19~/busybox-1.35.0 # )     = 19
poll([{fd=0, events=POLLIN}], 1, -1

When press key, the poll will return and poll another event.

from asterinas.

StevenJiang1110 avatar StevenJiang1110 commented on July 3, 2024

run ls in ash

openat(AT_FDCWD, "/root/.hush_history", O_WRONLY|O_CREAT|O_APPEND, 0600) = 3
lseek(3, 0, SEEK_END)                   = 0
write(3, "ls\n", 3)                     = 3
close(3)                                = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
rt_sigaction(SIGWINCH, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x42e5c0}, NULL, 8) = 0
vfork()                                 = 18
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WSTOPPED, NULL) = 18
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=18, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({mask=[]})                 = 18
getpgrp()                               = 17
ioctl(255, TIOCSPGRP, [17])             = 0
wait4(-1, 0x7ffe99d97634, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
wait4(-1, 0x7ffe99d97634, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a30, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=26, ws_col=140, ws_xpixel=0, ws_ypixel=0}) = 0
getcwd("/root/busybox-1.35.0", 192)     = 21
geteuid()                               = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY) = 3
fstat(3, {st_dev=makedev(0, 0xcc), st_ino=104335636, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=926, st_atime=1647828549 /* 2022-03-21T02:09:09.363458134+0000 */, st_atime_nsec=363458134, st_mtime=1641401277 /* 2022-01-05T16:47:57+0000 */, st_mtime_nsec=0, st_ctime=1642749328 /* 2022-01-21T07:15:28.671539588+0000 */, st_ctime_nsec=671539588}) = 0
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 926
close(3)                                = 0
geteuid()                               = 0
rt_sigaction(SIGWINCH, {sa_handler=0x5e3228, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x42e5c0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x42e5c0}, 8) = 0
write(1, "~/busybox-1.35.0 # ", 19~/busybox-1.35.0 # )     = 19
poll([{fd=0, events=POLLIN}], 1, -1

from asterinas.

StevenJiang1110 avatar StevenJiang1110 commented on July 3, 2024

Done

from asterinas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.