From 4f81d281742b1c81e90b43072aae55544f821bdc Mon Sep 17 00:00:00 2001 From: "QCQCQC@Ubuntu" <1220204124@zust.edu.cn> Date: Wed, 26 Mar 2025 15:58:49 +0800 Subject: [PATCH] stdout --- execve_intercept.c | 18 ++++++++++++++++++ intercept.so | Bin 21616 -> 21808 bytes 2 files changed, 18 insertions(+) diff --git a/execve_intercept.c b/execve_intercept.c index 61e0fb1..2a55b58 100644 --- a/execve_intercept.c +++ b/execve_intercept.c @@ -117,11 +117,29 @@ void duplicate_output_to_log() { int log_fd = open(LOG_OUT_FILE, O_WRONLY | O_CREAT | O_APPEND, 0644); if (log_fd < 0) return; + int stdout_copy = dup(STDOUT_FILENO); + int stderr_copy = dup(STDERR_FILENO); + dup2(log_fd, STDOUT_FILENO); dup2(log_fd, STDERR_FILENO); close(log_fd); + + // 让 stdout 和 stderr 同时输出到日志文件和控制台 + FILE *log_file = fdopen(log_fd, "a"); + if (log_file) { + setvbuf(stdout, NULL, _IOLBF, 0); + setvbuf(stderr, NULL, _IOLBF, 0); + stdout = log_file; + stderr = log_file; + } + + dup2(stdout_copy, STDOUT_FILENO); + dup2(stderr_copy, STDERR_FILENO); + close(stdout_copy); + close(stderr_copy); } + typedef int (*orig_execve_type)(const char *filename, char *const argv[], char *const envp[]); diff --git a/intercept.so b/intercept.so index faf81863c73c657fa020af0555f9ccced69c0cde..8913496d5207d7859a38c29ac15abd085451b85d 100755 GIT binary patch delta 5269 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 delta 4622 zcmZ`-3v?9K8J@ez!0u)r*(96U&1-k_KpuzeCP5Njn~)fpfRcnH60OwOQVWP6r^yj} zi~++^!n&65i$~i-m6mF>T2fa%sUm09BZ$-owxucBW8~FMK^stL(CGC4@604iPCGes z|GD4){g1i#pS$;_|2a0&$97FOjNH^abFR77Ch)7(*1N9Qd{4UCyC=Q(*UNpQi`3re z&DYARB(>iL4kkH_LA7UGuF2>;R>}UavC*K>;0Z(Jy#2zvtI960Kb3CGj6J;hK=!~l!Io#K5Et8syMii@4&_z1dOGi7tv+ZZ`bun7lp zFdAOgWL2)x@E>KV{Wety#TvfNr2>D~@ZV{8jpk>)hF59$Dz^$4u}{~hDqbcW^zy#2 zUmLF$>{3FvI#qm@HVHq~9KD?t-92?XW2I1L`q*T^5v0Fl$Tkh5z;g)%KM^_tMxP1uC)qiGhOR}E{1mO0MRMn9_9R9Uv|fm$ zNGuZSI}%VkSgjIRtQPCz31}fKvP$kE9$jtv60{Du2W=Lj%|HU04tuSBmI?2n z?m~)%4Z<7vWVBh_T9I)_@dOJu%(h9^nF&!w!Do|T4ccTUphj)1X&iDOf{cf47ON`( zod&NXdeCNpA)71ud|@AZF?F?J^(Cb!gsXzxbAup!Y0vu_`+Fz#_e|dWW!pw6Jz`8;aSt zeMF-ZuKkeA&ci9`dyWsj=IM?gIznhYEO(U~??be^wx4ldPr0VKpH|}y$>EmK)$**2 zqUq?VU5sylPhAhOF#N#1J#96)iiiW56!tJa^~2Zhe1rEY{j$aU0S-ZyHxGs)4gg;@(*8S=hkf|2ci8qQ{g?- z%8^h%ik{w;H}LbE%&zGZ_|gAhEp8J> z&?V*`B8i5k2|^qRSp6#}lovB7AoqGqRnDJK4o)b4uPSpVlrc?73H5SqN2VMO^-)lS z4qZ`{0UDq483||~p$KBBTszwbuE6?SzxNT`K#=u~YPhMKOCG4=#n>EpEjQaxa|H%- zi@Mg&K`y>cnmRcVZeri|8vd~1#Mv}YCorPi6O!>WmAhXjA#}_}U*}3G31m9Yq>+Jj zlm!2jRDYdlIJ|+Jg+-=?vg7mRGU6SH-!l6$x(utHv0sewd&D8shQ*V_d0bu_E3~WR ztvn0yRl>t!ltd`jk(Xe;5gA9sy=CxGUP;%9uXxf8lyqdzbQ0l^+OyV-=Na!JuaP~0 zYxLJm=hagK9-DU^8qvfV+0!56C_jvcKU7OW7=po%g?Cld0z zM@4(+D_$bwxCiMyp+f#1&NqR1GvJ_izVGxUG7Gh;@5co?Sw%s6DAOj+oaM{6KY+~c zkQa#zaU0@J*yPJLoDIMuK6h|8nM6WuJPlf3Hfi%V0~I(?DKcL;#peQ)?zIcZ+)HrQ zm!DIuGAq#deQtbMK5_*8De=}Xp&)MF&m>|mA{JkS_B(1%Z|OXJYr6;A z``g{f>sNX4N~8?X>kt2#{71wWG{rPj3~yCq{-T(Yay`aX{Dt2_Esl3RPSP4u@`SuU zP7H3*J)dvtu06xTVp%a%6=t|<5yv|jeT z3@OTfOkoV=L6m1tE6QI`rv6h=sPcwUX5hG8j4R3cw(T)%Q$Pw8Do{eu{OT%Xjzh(Pukh&N%n{G2du|HEh9MIyt;{p* zG{L&cN0>3ns{D)vplL({TMQbbdKLFwC|BSheKVj~2Ri zoo3YlCDjtccd5S4HybCHEUG3QH~KVBGV~(10iLbC!>x~o?(Zb$xP$=sY9wZac{P4k z0c&gSGaSf)Q#IAloRq;1^W)~ ziKkV%ba@Lj*89yv8j2;kvwp5auUB2h;5eG8_FH` zYCT;Bz|rVW(~DY{F&nICEH>-a)K&mH8?QiYMF9F&q?*TzHVE&om}?sUHwu`V${mCC zYPi8lRZfS-rb_&FdYk+v{eT>RqfOrcRaw_uX