فارسی
باز کردن در Telegram

پست خب سلام اومدیم یه مقدار درباره execve یه توضیح بدیم که احتمالا همتون وقتی یکم با strace کار میکنین این syscall میبینید .…

25 سپتامبر 2026
A
خب سلام اومدیم یه مقدار درباره execve یه توضیح بدیم که احتمالا همتون وقتی یکم با strace کار میکنین این syscall میبینید . کارش بخوام خیلی کوتاه بگم اینه که میاد یه image پروسه فعلی رو با یه برنامه جدید جایگزین میکنه . شاید بگی عین fork هست ولی نه توی این عمل process جدید درست نمیشه بلکه همونه ولی فقط اون برنامه ای که درحال اجرا بود جایگزین میشه و یه برنامه جدید اجرا میشه . سینتکسش هم به صورت زیره: int execve( const char *pathname, char *const argv[], char *const envp[] ); pathname خب مربوط به مسیر اون فایل اجرایی هست که میخوایم توی پراسس فعلی اجرا بشه /bin/ls argv هم مربوط به آرگومان هایی هست که اون فایل اجرایی ما میگیره مثلا ss -t envp هم مربوط به اون متغیر های Environment هستش. بخوایم الان با توجه به توضیحایی که بالا دادیم این بخشا رو پر کنیم به صورت زیر در میاد execve("/bin/ls", args, env); حالا برای مثال اگه بخوایم ls -la بگیریم متغیر args باید به صورت زیر پر کنیم : char *args[] = { "ls", "-l", "/home", NULL }; اینم یادتون باشه آخر آرایه هم باید با NULL پر بشه که سیستم بفهمه آرگومان ها کجا به اتمام میرسند . در واقع اینطوریه : ./main_program: #include <stdio.h> #include <unistd.h> int main() { char *args[] = { "program2", "hello", "world", NULL }; printf("Before execve\n"); execve("./program2", args, NULL); printf("After execve\n"); return 0; } ./program2: #include <stdio.h> int main(int argc, char *argv[]) { printf("I am program2\n"); printf("argc = %d\n", argc); for (int i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); } return 0; } خب توی این بخش میاد آرگومان های داده شده توی برنامه اول رو در برنامه دوم به نمایش میزاره و میشه گفت تمام کاری که میکنه همینه .یه نکته دیگه هم اینه که pid این برنامه اگه 100 بار این وسط برنامه جدید با execve بیاد وسط عوض نمیشه و جدا از اون وقتی یه برنامه جدید با execve اجرا میشه ادامه کدی که توی برنامه اول داریم اجرا نمیشه مگر اینکه به خطا بخوریم توی اجرا کردن برنامه دوم . و در آخر، کنار execve چندین تابع کتابخانه‌ای هم وجود داره که همگی wrapper هستن و execve رو صدا می‌زنن execl، execlp، execle، execv و execvp که خب یه سری تفاوت دارن و زیاد توشون دیپ نمیشیم . ➖➖➖➖➖ CHANNEL
5 · 947 ·

در همان حوالی فید

88⛪️88لیک‌ گپ‌ رو عوض کردیم https://t.me/+1u9LKJuFBEtmMDZk #موقت
این پیام
SSecForge⛪️88Domain Fronting Technique in C2 Architectures has Been Explained read below👇👇👇

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما