From 08c240e736f5ae35ecbd118d68ea67a697d5541a Mon Sep 17 00:00:00 2001 From: "QCQCQC@Ubuntu" <1220204124@zust.edu.cn> Date: Wed, 26 Mar 2025 16:15:14 +0800 Subject: [PATCH] hand write tee --- execve_intercept.c | 55 +++++++++++++++++++++----- intercept.so | Bin 21664 -> 26104 bytes logs/execve.log | 86 +++++++++++++++++++++++++++++++++++++++++ logs/execve_out.log | 91 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 222 insertions(+), 10 deletions(-) create mode 100644 logs/execve_out.log diff --git a/execve_intercept.c b/execve_intercept.c index 44f9ae8..85d358e 100644 --- a/execve_intercept.c +++ b/execve_intercept.c @@ -112,27 +112,62 @@ void write_log(const char *filename, char *const argv[]) { fclose(log); } +// 判断字符是否为 ANSI 转义序列 +int is_ansi_escape_sequence(const char *str) { + // ANSI 转义序列的常见格式是以 ESC 开头,后跟 '[', 'm' 等 + return str[0] == '\033' && str[1] == '['; +} + // 复制标准输出和错误输出到日志文件 void duplicate_output_to_log() { - int out_fd = open(LOG_OUT_FILE, O_WRONLY | O_CREAT | O_APPEND, 0644); - if (out_fd == -1) { + int log_fd = open(LOG_OUT_FILE, O_WRONLY | O_CREAT | O_APPEND, 0644); + if (log_fd == -1) { perror("Failed to open log file"); return; } - // 复制 stdout 和 stderr 到 log 文件 - if (dup2(out_fd, STDOUT_FILENO) == -1 || dup2(out_fd, STDERR_FILENO) == -1) { - perror("Failed to redirect output"); - close(out_fd); + int pipe_fds[2]; + if (pipe(pipe_fds) == -1) { + perror("Failed to create pipe"); + close(log_fd); return; } - // 关闭文件描述符,因为 stdout/stderr 现在已经指向它 - close(out_fd); + pid_t pid = fork(); + if (pid == -1) { + perror("Failed to fork"); + close(log_fd); + close(pipe_fds[0]); + close(pipe_fds[1]); + return; + } + + if (pid == 0) { // 子进程:读取 pipe,并写入日志 + close(pipe_fds[1]); // 关闭写端 + char buffer[1024]; + ssize_t n; + while ((n = read(pipe_fds[0], buffer, sizeof(buffer))) > 0) { + // 输出到终端时保留颜色 + if (isatty(STDOUT_FILENO)) { + write(STDOUT_FILENO, buffer, n); // 输出到终端 + } else { + // 不支持颜色输出时,直接输出内容 + write(STDOUT_FILENO, buffer, n); + } + write(log_fd, buffer, n); // 写入日志 + } + close(pipe_fds[0]); + close(log_fd); + _exit(0); + } else { // 父进程:写入 pipe + close(pipe_fds[0]); // 关闭读端 + dup2(pipe_fds[1], STDOUT_FILENO); + dup2(pipe_fds[1], STDERR_FILENO); + close(pipe_fds[1]); + close(log_fd); + } } - - typedef int (*orig_execve_type)(const char *filename, char *const argv[], char *const envp[]); diff --git a/intercept.so b/intercept.so index 49bbfac8704431c820a1a11f7ab984dc34f47082..028375ae179080d8bd7974319c05dd432e6fd06a 100755 GIT binary patch literal 26104 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 Am;e9( literal 21664 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 diff --git a/logs/execve.log b/logs/execve.log index 84246e8..141806f 100644 --- a/logs/execve.log +++ b/logs/execve.log @@ -188,3 +188,89 @@ arg[2]: python arg[0]: /usr/lib/command-not-found arg[1]: -- arg[2]: pip +[Wed Mar 26 16:09:32 2025 +] Command: /usr/bin/lesspipe +arg[0]: lesspipe +[Wed Mar 26 16:09:32 2025 +] Command: /usr/bin/dircolors +arg[0]: dircolors +arg[1]: -b +[Wed Mar 26 16:09:34 2025 +] Command: /usr/bin/make +arg[0]: make +[Wed Mar 26 16:09:40 2025 +] Command: /usr/bin/lesspipe +arg[0]: lesspipe +[Wed Mar 26 16:09:40 2025 +] Command: /usr/bin/dircolors +arg[0]: dircolors +arg[1]: -b +[Wed Mar 26 16:09:41 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +[Wed Mar 26 16:11:44 2025 +] Command: /usr/bin/lesspipe +arg[0]: lesspipe +[Wed Mar 26 16:11:44 2025 +] Command: /usr/bin/dircolors +arg[0]: dircolors +arg[1]: -b +[Wed Mar 26 16:11:44 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +[Wed Mar 26 16:11:47 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +[Wed Mar 26 16:11:47 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +arg[2]: -alF +[Wed Mar 26 16:11:53 2025 +] Command: /usr/lib/command-not-found +arg[0]: /usr/lib/command-not-found +arg[1]: -- +arg[2]: pip +[Wed Mar 26 16:11:56 2025 +] Command: /usr/bin/rm +arg[0]: rm +[Wed Mar 26 16:14:18 2025 +] Command: /usr/bin/lesspipe +arg[0]: lesspipe +[Wed Mar 26 16:14:18 2025 +] Command: /usr/bin/dircolors +arg[0]: dircolors +arg[1]: -b +[Wed Mar 26 16:14:19 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +[Wed Mar 26 16:14:20 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +arg[2]: -alF +[Wed Mar 26 16:14:31 2025 +] Command: /usr/bin/lesspipe +arg[0]: lesspipe +[Wed Mar 26 16:14:31 2025 +] Command: /usr/bin/dircolors +arg[0]: dircolors +arg[1]: -b +[Wed Mar 26 16:14:34 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +[Wed Mar 26 16:14:36 2025 +] Command: /usr/bin/ls +arg[0]: ls +arg[1]: --color=auto +arg[2]: -alF +[Wed Mar 26 16:14:59 2025 +] Command: /usr/bin/git +arg[0]: git +arg[1]: add +arg[2]: . diff --git a/logs/execve_out.log b/logs/execve_out.log new file mode 100644 index 0000000..1aa58a4 --- /dev/null +++ b/logs/execve_out.log @@ -0,0 +1,91 @@ +export LESSOPEN="| /usr/bin/lesspipe %s"; +export LESSCLOSE="/usr/bin/lesspipe %s %s"; +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS +make: 对“all”无需做任何事。 +export LESSOPEN="| /usr/bin/lesspipe %s"; +export LESSCLOSE="/usr/bin/lesspipe %s %s"; +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS +config +execve_intercept.c +intercept.so +logs +Makefile +README.md +test_bash.sh +export LESSOPEN="| /usr/bin/lesspipe %s"; +export LESSCLOSE="/usr/bin/lesspipe %s %s"; +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS +config +execve_intercept.c +intercept.so +logs +Makefile +README.md +test_bash.sh +config +execve_intercept.c +intercept.so +logs +Makefile +README.md +test_bash.sh +总计 62 +drwxrwxr-x 5 qcqcqc qcqcqc 10 3月 26 16:11 ./ +drwxrwxr-x 12 qcqcqc qcqcqc 12 3月 20 21:08 ../ +drwxrwxr-x 2 qcqcqc qcqcqc 3 3月 26 09:04 config/ +-rw-rw-r-- 1 qcqcqc qcqcqc 9139 3月 26 16:11 execve_intercept.c +drwxrwxr-x 8 qcqcqc qcqcqc 14 3月 26 16:09 .git/ +-rwxrwxr-x 1 qcqcqc qcqcqc 21912 3月 26 16:11 intercept.so* +drwxrwxr-x 2 qcqcqc qcqcqc 4 3月 26 16:09 logs/ +-rw-rw-r-- 1 qcqcqc qcqcqc 222 3月 26 09:02 Makefile +-rw-rw-r-- 1 qcqcqc qcqcqc 973 3月 26 10:08 README.md +-rwxrwxr-x 1 qcqcqc qcqcqc 31 3月 26 09:02 test_bash.sh* +找不到命令 “pip”,但可以通过以下软件包安装它: +sudo apt install python3-pip +export LESSOPEN="| /usr/bin/lesspipe %s"; +export LESSCLOSE="/usr/bin/lesspipe %s %s"; +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS +config +execve_intercept.c +intercept.so +logs +Makefile +README.md +test_bash.sh +总计 62 +drwxrwxr-x 5 qcqcqc qcqcqc 10 3月 26 16:14 ./ +drwxrwxr-x 12 qcqcqc qcqcqc 12 3月 20 21:08 ../ +drwxrwxr-x 2 qcqcqc qcqcqc 3 3月 26 09:04 config/ +-rw-rw-r-- 1 qcqcqc qcqcqc 9595 3月 26 16:14 execve_intercept.c +drwxrwxr-x 8 qcqcqc qcqcqc 14 3月 26 16:09 .git/ +-rwxrwxr-x 1 qcqcqc qcqcqc 26104 3月 26 16:14 intercept.so* +drwxrwxr-x 2 qcqcqc qcqcqc 4 3月 26 16:09 logs/ +-rw-rw-r-- 1 qcqcqc qcqcqc 222 3月 26 09:02 Makefile +-rw-rw-r-- 1 qcqcqc qcqcqc 973 3月 26 10:08 README.md +-rwxrwxr-x 1 qcqcqc qcqcqc 31 3月 26 09:02 test_bash.sh* +export LESSOPEN="| /usr/bin/lesspipe %s"; +export LESSCLOSE="/usr/bin/lesspipe %s %s"; +LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'; +export LS_COLORS +config +execve_intercept.c +intercept.so +logs +Makefile +README.md +test_bash.sh +总计 62 +drwxrwxr-x 5 qcqcqc qcqcqc 10 3月 26 16:14 ./ +drwxrwxr-x 12 qcqcqc qcqcqc 12 3月 20 21:08 ../ +drwxrwxr-x 2 qcqcqc qcqcqc 3 3月 26 09:04 config/ +-rw-rw-r-- 1 qcqcqc qcqcqc 9595 3月 26 16:14 execve_intercept.c +drwxrwxr-x 8 qcqcqc qcqcqc 14 3月 26 16:09 .git/ +-rwxrwxr-x 1 qcqcqc qcqcqc 26104 3月 26 16:14 intercept.so* +drwxrwxr-x 2 qcqcqc qcqcqc 4 3月 26 16:09 logs/ +-rw-rw-r-- 1 qcqcqc qcqcqc 222 3月 26 09:02 Makefile +-rw-rw-r-- 1 qcqcqc qcqcqc 973 3月 26 10:08 README.md +-rwxrwxr-x 1 qcqcqc qcqcqc 31 3月 26 09:02 test_bash.sh*