PDA

View Full Version : جلوگیری از بسته شدن برنامه



bpzone
سه شنبه 06 مهر 1389, 12:10 عصر
با سلام
چجوری میشه کاری کرد که برنامه تحت هیچ عنوان بسته نشه ...
به عنوان مثال پروسس برنامه توسط Task Manager بسته نشه :افسرده:

ایمان مدائنی
سه شنبه 06 مهر 1389, 12:27 عصر
ميتوني كاري كني كه اصلا Task Manager باز نشه من نمونه كد alt+f4 رو دارم گه نمي زاره برنامه با اين كليدها بسته بشه برات ميزارم ببين







private void form1_KeyDown(object sender, KeyEventArgs e)

{

if (e.Alt && e.KeyCode == Keys.F4)

e.SuppressKeyPress = true;

bpzone
سه شنبه 06 مهر 1389, 13:03 عصر
قصد من این هست که برنامه ی من توسط برنامه ی دیگری بسته نشه
من حتی اگه Task Manage یا Alt+F4 رو هم ببندم، ممکن هست که یک برنامه دیگه بیاد و پروسس برنامه من رو Kill کنه
من نمی خوام که این اتفاق بیفته
:ناراحت:

Saman_12
سه شنبه 06 مهر 1389, 15:26 عصر
تنها راهش هوک کردن پیغام بسته شدن یرنامه هست.(که من بلد نیستم!)
حالا اگه کسی بلده لطف کنه و یک آموزش کوچیک بزاره.

Hamid Reza Rahimi
چهارشنبه 07 مهر 1389, 11:42 صبح
سلام به اين آدرس مراجعه كنيد ببينيد بدردتون مي خوره
http://msdn.microsoft.com/en-us/library/ms686714%28VS.85%29.aspx

MoS4k1
چهارشنبه 07 مهر 1389, 14:57 عصر
فکر نکنم بتونی در task manager جلوی بسته شدن برنامه رو بگیری ولی اکه بخوای بعد از اینکه برنامه بسته شد دوباره باز بشه باید دوتا برنامه داشتی باشی که همدیگرو بررسی کنند که اگه برنامه 1 بسته شد برنامه 2 بفهمه و اونو اجرا کنه و بالعکس

flash118
چهارشنبه 07 مهر 1389, 15:06 عصر
فکر نکنم بتونی در task manager جلوی بسته شدن برنامه رو بگیری ولی اکه بخوای بعد از اینکه برنامه بسته شد دوباره باز بشه باید دوتا برنامه داشتی باشی که همدیگرو بررسی کنند که اگه برنامه 1 بسته شد برنامه 2 بفهمه و اونو اجرا کنه و بالعکس
-----------------------------------------
دوست عزیز اولا تشکر از جوابتون ممنون اما با جوابتون موافق نیستم این راه شما نه تنها بهینه نیست بلکه بار اضافی بردوش سیستم تحمیل میکنه در ثانی چرا نمی تونه جلوی بسته شدن پروسه رو بگیره در تکس منیجر میشه کاری کرد که نشه پروسه رو بست اون وقت برنامه هایی مثل کی لاگر ها و غیر دیگه نمی تونستن کاری بکنن که فوری میتونست کاربر مسدودش کنه

MoS4k1
چهارشنبه 07 مهر 1389, 15:19 عصر
-----------------------------------------
دوست عزیز اولا تشکر از جوابتون ممنون اما با جوابتون موافق نیستم این راه شما نه تنها بهینه نیست بلکه بار اضافی بردوش سیستم تحمیل میکنه در ثانی چرا نمی تونه جلوی بسته شدن پروسه رو بگیره در تکس منیجر میشه کاری کرد که نشه پروسه رو بست اون وقت برنامه هایی مثل کی لاگر ها و غیر دیگه نمی تونستن کاری بکنن که فوری میتونست کاربر مسدودش کنه

موقع نوشتن پست قبلی به این مطالب توجه نکردم. یه ویروس تو سیستمم بود که از این روش استفاده می کرد گفتم بذارم شاید مفید باشه.

bpzone
چهارشنبه 07 مهر 1389, 16:33 عصر
فکر نکنم بتونی در task manager جلوی بسته شدن برنامه رو بگیری ولی اکه بخوای بعد از اینکه برنامه بسته شد دوباره باز بشه باید دوتا برنامه داشتی باشی که همدیگرو بررسی کنند که اگه برنامه 1 بسته شد برنامه 2 بفهمه و اونو اجرا کنه و بالعکس

دوست عزیز
من این راه رو نمی تونم استفاده کنم
چون باز زیادی به سیستم تحمیل می کنه
در ثانی اگه هر 2 تا برنامه ی مد نظر شما بسته بشن چی ؟!
من می خوام یه جوری پروسس برنامه رو قفل کنم که غیر از خودش ، کسی نتونه مانع بسته شدنش بشه :افسرده:

ostovarit
چهارشنبه 07 مهر 1389, 17:24 عصر
من هم برام جالب جواب این سوال رو بدونم اگر دوستان راهنمایی کنند ممنون میشم ...
- مثلا اگر یک برنامه ای برای شبکه باشه که کارکرد کاربر رو زیر نظر داشته باشه و در سیستم کاربر اجرا شده باشه ... چطور میتونید از بسته شدنش جلوگیری کنیم؟؟؟

s.khoshfekran
چهارشنبه 07 مهر 1389, 17:34 عصر
فکر کنم تنها کاری که بشه کرد برنامه رو از دید TaskManager مخفی کنیم!

AmirAmiri
چهارشنبه 07 مهر 1389, 18:13 عصر
سلام دوستان یه راه حل قدیمی هست که فکر کنم همتون بلد باشید اما این راه فقط برای دور زدن Task Manager هست. واسه اینکه برنامه های دیگه رو دور بزنید نمیدونم چکار میشه کرد.

شما برای اینکه از توی Task Manager برنامتون بسته نشه کافیه اون برنامه رو rename کنید و یکی از نامهای زیر رو براش بزارید و اجراش کنید :

services.exe
smss.exe
lass.exe
winlogon.exe


یه راهی هم هست که NOD32 و بقیه آنتی ویروس ها استفاده میکنن ولی من بلد نیستم اما حدس میزنم که یک سرویس سیستمی راه اندازی میکنن و توسط همون سرویس از فایل محافظت میکنن و اجازه بسته شدن رو بهش نمیدن.

Pedram_Parsian
جمعه 09 خرداد 1393, 13:06 عصر
با سلام
من این کد رو گذاشتم رو پروژه ام ولی باز هم بسته میشه ؟؟؟
اگه میشه برای من یه پروژه مثال بزارین...
با تشکر فراوان

CsharpNevisi
جمعه 09 خرداد 1393, 13:44 عصر
یه دونه پروژه ویندوز سرویس ایجاد کن بعد با استفاده از اون برنامه تو تو حاشیه امنیتی قرار بده ... یا با اون سرویسه چک که اگه برنامه بسته بود برنامه رو اجرا کنه ... !!!!

Pedram_Parsian
جمعه 09 خرداد 1393, 13:57 عصر
یه دونه پروژه ویندوز سرویس ایجاد کن بعد با استفاده از اون برنامه تو تو حاشیه امنیتی قرار بده ... یا با اون سرویسه چک که اگه برنامه بسته بود برنامه رو اجرا کنه ... !!!!
دوست عزیز میشه یه مثال قرار بدین؟؟
با تشکر...

CsharpNevisi
جمعه 09 خرداد 1393, 15:07 عصر
دوست عزیز میشه یه مثال قرار بدین؟؟
با تشکر...

وقت گیره نوشتنش ... باید یه پروژه سرویس درست کنی .. از طریق کامپوننت سرویس اینستالر مشخصه اتو استارتشو ردیف کنی .. بع بیایی با سی ام دی نصبش کنی سرویستو .. بعد کداتو بنویسی و تستش کنی ... که من وقتشو ندارم (امتحان دارم) .. عذر میخوام ... !!!:لبخند:

khokhan
جمعه 09 خرداد 1393, 16:21 عصر
دوست عزیز
من این راه رو نمی تونم استفاده کنم
چون باز زیادی به سیستم تحمیل می کنه
در ثانی اگه هر 2 تا برنامه ی مد نظر شما بسته بشن چی ؟!
من می خوام یه جوری پروسس برنامه رو قفل کنم که غیر از خودش ، کسی نتونه مانع بسته شدنش بشه :افسرده:

این برای Alt+F4

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
base.OnClosing(e);
}

Nima NT
جمعه 09 خرداد 1393, 17:29 عصر
تنها راه و مطمئن ترین اونها استفاده از درایور برای هوک کردن جدول SSDT هستش ( دقیقا" همون کاری که محصولات آنتی ویروس انجام میدن )
برای اینکار شما توابع مربوطه به بستن برنامه ها از جمله TermiateProcess , SendMessage و ... رو هوک میکنید و ورودی اونها رو با نام پروسه جاری برنامه خودتون مطابقت میدید ؛ اگر مطابق بود که با ارسال پارامتر INVALID_HANDLE مانع بسته شدن پروسه خودتون میشید و در غیر این صورت که هیچ عکس العملی نشون نمیدید
برای اطلاعات بیشتر میتونید عبارت SSDT Hook یا TermitateProcess Hook رو جستجو کنید ؛ مطالب زیادی تو نت درباره این موضوع هستش