PDA

View Full Version : سوال: مخفی کردن برنامه در Task Manager



keyvan_s89
دوشنبه 04 دی 1391, 22:33 عصر
سلام میخوام برنامم تو Task manager نشون داده نشه وقتی اجرا میشه. چیکار کنم ؟
(سرچ کردم یه دونه تاپیک بود ولی چیزی ازش نفهمیدم)

hamedre81
دوشنبه 04 دی 1391, 23:20 عصر
سلام

اگر می خواین موقع شروع برنامه در تکس منجر پنهان بشه باید کد زیر رو در یک تایمر بزارید


Hide();




:چشمک:\\موفق باشید//:چشمک:

keyvan_s89
سه شنبه 05 دی 1391, 09:50 صبح
سلام

اگر می خواین موقع شروع برنامه در تکس منجر پنهان بشه باید کد زیر رو در یک تایمر بزارید


Hide();




:چشمک:\\موفق باشید//:چشمک:

نشد. باید از کلاس process استفاده بکنیم (فکر کنم).

modern_amin
سه شنبه 05 دی 1391, 18:34 عصر
با یک خط ؟ فقط hide؟
تایمر چند ثانیه چند ثانیه اجرا شه؟

morteza5358
سه شنبه 05 دی 1391, 18:41 عصر
سلام
این که فرم رو پنهان میکنه.....:متفکر:

asgharjoon2
سه شنبه 05 دی 1391, 20:17 عصر
امکان نداره که تو task manager تو processes نشون نده برنامه ای رو. اگه میخوای تو قسمت application نشون نده باید فورم hide بشه. در ضمن میتونیم کلا task manager رو ببندی که کلا باز نشه

keyvan_s89
سه شنبه 05 دی 1391, 21:20 عصر
امکان نداره که تو task manager تو processes نشون نده برنامه ای رو. اگه میخوای تو قسمت application نشون نده باید فورم hide بشه. در ضمن میتونیم کلا task manager رو ببندی که کلا باز نشه
چیکار میشه کرد که باز نشه ؟

morteza5358
سه شنبه 05 دی 1391, 21:23 عصر
سلام
باید از تو رجیستری غیر فعالش کرد.
سرچ کنی پیدا میکنی.
موفق باشی

danialafshari
چهارشنبه 06 دی 1391, 01:42 صبح
سلام دوست عزیز

غیر قعال کردن Task Manager :
using Microsoft.Win32;

RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System");
key.SetValue("DisableTaskMgr", "1", RegistryValueKind.DWord);

فعال کردن :
RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System");
key.SetValue("DisableTaskMgr", "0", RegistryValueKind.DWord);

موفق باشی

SEZAR.CO
چهارشنبه 06 دی 1391, 10:02 صبح
با عرض سلام فقط لازمه اینارو تو فرم وارد کنیم یا باید یه چیز های دیگر هم وارد کنیم

morteza271
چهارشنبه 06 دی 1391, 10:28 صبح
این نمونه برنامه ای که میذارم رو با استفاده از کد دوستمون درست کردم.
حالا گذاشتم اینجا تا بقیه هم ازش استفاده کنن:
97271
موفق باشید

hamedre81
چهارشنبه 06 دی 1391, 11:17 صبح
با یک خط ؟ فقط hide؟
تایمر چند ثانیه چند ثانیه اجرا شه؟

این کد برنامه رو در System Tray پنهان می کنه


بنظر من برای بستن برنامه تسک منیجر ,غیر فعال کردن راه خوبی نباشه

وقتی تسک منیجر اجرا شد اون رو ببندیم


Process[] ps = Process.GetProcesses();
foreach (Process p in ps)
{
if (p.ProcessName == "taskmgr")
{
p.Kill();
}

}


:چشمک:\\موفق باشید//:چشمک:

modern_amin
چهارشنبه 06 دی 1391, 11:24 صبح
سلام دوست عزیز

غیر قعال کردن Task Manager :
using Microsoft.Win32;

RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System");
key.SetValue("DisableTaskMgr", "1", RegistryValueKind.DWord);

فعال کردن :
RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System");
key.SetValue("DisableTaskMgr", "0", RegistryValueKind.DWord);


من چند وقته تا کد بالا غیر فعال کردم ولی دیگه نمیتونم فعال کنم ، چیکارکنم ، (ویندوز 7
)

morteza5358
چهارشنبه 06 دی 1391, 12:09 عصر
سلام
به نظر من این راه ها راه های خوبی نیستن!!!
یعنی خودم از برنامه ای که این کار رو بکنه بدم میاد....
باید بگردیم یه کار درست و حسابی پیدا کنیم.
مثلا آنتی ویروس ها چیکار میکنن که نمیشه برنامه شون رو بست؟؟؟؟؟
:متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر:

morteza271
چهارشنبه 06 دی 1391, 12:23 عصر
به نظر من این راه ها راه های خوبی نیستن!!!
یعنی خودم از برنامه ای که این کار رو بکنه بدم میاد....
باید بگردیم یه کار درست و حسابی پیدا کنیم.
منم با شما موافقم.
ولی من در این مورد زیاد فکر کردم و تا الان که به جایی نرسیدم. خوشحال میشم یه روش برای اینکار پیدا کنم...


مثلا آنتی ویروس ها چیکار میکنن که نمیشه برنامه شون رو بست؟؟؟؟؟
کی گفته آنتی ویروس ها رو نمیشه بست؟؟!!! من که خیلی راحت میبندمشون مشکلی هم ندارم!! منظورتون چیه؟؟

morteza271
چهارشنبه 06 دی 1391, 12:24 عصر
من چند وقته تا کد بالا غیر فعال کردم ولی دیگه نمیتونم فعال کنم ، چیکارکنم ، (ویندوز 7
)
دوست عزیز شما با این کد (بخش دوم کد بالا) میتونید دوباره فعالش کنید :

RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Micro soft\\Windows\\CurrentVersion\\Policies\\System");

key.SetValue("DisableTaskMgr", "0", RegistryValueKind.DWord);
در پست شماره 11 یه نمونه برنامه گذاشتم اونو دانلود کنید، متوجه می شید...
موفق باشید

morteza5358
چهارشنبه 06 دی 1391, 12:38 عصر
سلام
من هم تو این زمینه زیاد تحقیق کردم ولی هنوز راهی پیدا نکردم.
ببین مثلا وقتی آنتی ویروس کسپر رو end task میکنم Access Deny میده!!!!

یه راهی پیدا کردم که اجازه نمیده برنامه بسته بشه...
اونم اینه که وقتی برنامه اجرا میشه ، یه فایل کوچیک هم اجرا کنه که کارش این باشه که مدام چک کنه که برنامه بازه یانه و اگر از تسک منیجر بسته شد اونو دوباره باز کنه.
همینطور برنامه هم چک کنه که فایل کوچیکه بازه یانه و اگر بسته شده بود بازش کنه.
اگه این if هارو تو یه تایمر با زمان مثلا 10 میلی ثانیه بذاریم ، کاربر دیگه نمیتونه اونارو ببنده.
هروقت یکی رو بست ، اون یکی بازش میکنه.

ولی این هم راه مناسبی نیست.
کار باید اساسی باشه

hamedre81
چهارشنبه 06 دی 1391, 12:40 عصر
من چند وقته تا کد بالا غیر فعال کردم ولی دیگه نمیتونم فعال کنم ، چیکارکنم ، (ویندوز 7
)

از این برنامه استفاده کنید 357 کیلوبایت

http://s3.picofile.com/file/7597483759/Sheed_part1.rar.html
http://s3.picofile.com/file/7597484836/Sheed_part2.rar.html



:چشمک:\\موفق باشید//:چشمک:

hamedre81
چهارشنبه 06 دی 1391, 12:45 عصر
کی گفته آنتی ویروس ها رو نمیشه بست؟؟!!! من که خیلی راحت میبندمشون مشکلی هم ندارم!! منظورتون چیه؟؟

میشه بگید چطوری پروسه آنتی ویروس ها رو می بندین؟

97275

morteza5358
چهارشنبه 06 دی 1391, 12:50 عصر
سلام
با tskill میشه بست.
ولی من هم نمیدونم با task manager چجوری بسته میشه؟

ali.abdollahi
چهارشنبه 06 دی 1391, 18:13 عصر
اگه propertis فورم show in task رو فالس کنی تو تسک ها نمی یاد ولی تو پروسس هست!

morteza271
چهارشنبه 06 دی 1391, 18:25 عصر
میشه بگید چطوری پروسه آنتی ویروس ها رو می بندین؟

97275
من تا معمولا از نود32 و آنتی ویروس مایکروسافت (essentials) استفاده میکنم که هردوی این دو رو میتونم از داخل پروسس ها ببندم!!!!
حالا شاید برخی آنتی ویروس ها بسته نمیشن، نمیدونم...

morteza5358
چهارشنبه 06 دی 1391, 18:31 عصر
آخه نود هم شد آنتی ویروس؟؟؟؟؟؟؟
پیشنهاد میکنم از کسپر استفاده کنی.
از بحث خودمون دور نشیم....
کسی نمیتونه بگه چطوری میشه مانع بسته شدن برنامه در task manager شد؟

morteza271
چهارشنبه 06 دی 1391, 19:14 عصر
آخه نود هم شد آنتی ویروس؟؟؟؟؟؟؟
نود روی سیستم محل کارم نصبه و منم بهش کار ندارم!!! میگم بذار باشه...

ولی روی سیستم خودم از آنتی ویروس مایکروسافت استفاده میکنم که خیلی هم ازش راضی هستم و سرعتش هم خوبه...

منم دوست دارم بدونم چطور میشه اینکار رو کرد(بسته نشدن برنامه از پروسس ها) هرچند تا الان به کارم نیومده و به نظرم نخواهد اومد، به نظرمن چرا نباید بسته بشه مگه برنامه ی ما میخواد چیکار کنه که بسته نشه؟؟!!

به هرحال اگه کسی میدونه یا روشی به ذهنش میرسه استقبال میکنم...

keyvan_s89
چهارشنبه 06 دی 1391, 19:54 عصر
میشه یه هوک انداخت که قبل از اینکه task manager باز بشه اونو ببنده ؟

ferankyy
چهارشنبه 06 دی 1391, 21:09 عصر
من تا معمولا از نود32 و آنتی ویروس مایکروسافت (essentials) استفاده میکنم که هردوی این دو رو میتونم از داخل پروسس ها ببندم!!!!
حالا شاید برخی آنتی ویروس ها بسته نمیشن، نمیدونم...
تا جایی که من میدونم آنتی ویروس ها اصل کارشون به وسیله سرویس ها انجام میشه . شما میتونید از داخل TaskManager فقط Interface نود32 رو ببندید ولی آنتی ویروس داره کاره خودشو انجام میده (به وسیله سرویس ) سرویس نود32 هم ekrn هست که داخل پروسس ها هم وجود داره ولی نمیشه اونو بست یا stop کرد فقط سرویس اون قابلیت delete شدن رو داره .

ferankyy
چهارشنبه 06 دی 1391, 21:16 عصر
این کد تا حدودی مشکل رو حل میکنه :

[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);

public static void SetSecurityEndProcess()
{
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
}
public static void EndSecurtiyEndProcess()
{
RtlSetProcessIsCritical(0, 0, 0);
}

ferankyy
چهارشنبه 06 دی 1391, 23:37 عصر
میشه یه هوک انداخت که قبل از اینکه task manager باز بشه اونو ببنده ؟
میشه با هوک کردن وقتی پیغام endprocess به برنامه ارسال شد ، بلوکش کنه .

morteza5358
پنج شنبه 07 دی 1391, 10:12 صبح
این کد تا حدودی مشکل رو حل میکنه :

[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);

public static void SetSecurityEndProcess()
{
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
}
public static void EndSecurtiyEndProcess()
{
RtlSetProcessIsCritical(0, 0, 0);
}

سلام
میشه توضیح بدین این کد چیکار میکنه و چطوری ازش استفاده کنیم؟؟؟
همینطور اگه امکان داره بگین هوک چیه؟؟؟؟؟:اشتباه:

ferankyy
پنج شنبه 07 دی 1391, 11:54 صبح
میشه توضیح بدین این کد چیکار میکنه و چطوری ازش استفاده کنیم؟؟؟

وقتی که کاربر داخل TaskManager میخواد برنامه رو endprocess کنه یک پیغام مبنی بر اینکه شما نباید این پروسه را ببنید در غیر اینصورت سیستم عامل هم خاموش میشود برای کاربر نمایش داده میشود و اگر کاربر دکمه shutdown را بزند سیستم ریسیت میشه.
تو رویداد load فرم اصلی این کد را بزارید :

[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);

و زمانی که میخواهید برنامه از این حالت خارج بشه از این کد استفاده کنید :
[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);
RtlSetProcessIsCritical(0, 0, 0);


همینطور اگه امکان داره بگین هوک چیه؟؟؟؟؟

سیسنم عامل ویندوز تمام ارتباط هاش با استفاده از Message هست یعنی همون API ها . وقتی که شما دکمه End Process داخل TaskManager را میزنید ، در واقع یه پیغام مبنی بر EndProcess شدن به پروسه ارسال میشه و پروسه End میشه . هوک کردن یعنی گوش دادن به پیغام های سیستم . برای مثال : شما داخل برنامه خودتون شروع به گوش دادن پیغام endprocess میکنید و زمانی که این پیغام ارسال شد اون رو بلوک میکنید.

ایمدوارم توضیح خوبی داده باشم .

morteza5358
پنج شنبه 07 دی 1391, 12:04 عصر
سلام
توضیحاتتون فوق العاده بود..
فقط میشه بگین چطوری میشه فهمید که کی پیام endproccess به برنامه فرستاده میشه (گوش دادن) و چطوری میشه اون رو بلوک کرد.
ازتون خواهش میکنم کمک کنید.این قضیه برام خیلی اهمیت داره...

morteza271
پنج شنبه 07 دی 1391, 13:15 عصر
وقتی که کاربر داخل TaskManager میخواد برنامه رو endprocess کنه یک پیغام مبنی بر اینکه شما نباید این پروسه را ببنید در غیر اینصورت سیستم عامل هم خاموش میشود برای کاربر نمایش داده میشود و اگر کاربر دکمه shutdown را بزند سیستم ریسیت میشه.
تو رویداد load فرم اصلی این کد را بزارید :
1
2
3
4
5
[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);


سلام دوست عزیز.
من کدتون رو به صورت زیر توی فرمم گذاشتم ولی وقت اجرا خطا میده :
[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);

private void Form1_Load(object sender, EventArgs e)
{
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
}
اینم عکس خطاش :
97360

در مورد هوک کردن هم خیلی خوب توضیح دادین.
امکانش هست یه نمونه کد در مورد همین هوک کردن برای عدم بسته شدن پروسها ها بذارین؟

ferankyy
پنج شنبه 07 دی 1391, 13:35 عصر
سلام دوست عزیز.
من کدتون رو به صورت زیر توی فرمم گذاشتم ولی وقت اجرا خطا میده :
[DllImport("ntdll.dll", SetLastError = true)]
private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);

private void Form1_Load(object sender, EventArgs e)
{
Process.EnterDebugMode();
RtlSetProcessIsCritical(1, 0, 0);
}
اینم عکس خطاش :
97360

در مورد هوک کردن هم خیلی خوب توضیح دادین.
امکانش هست یه نمونه کد در مورد همین هوک کردن برای عدم بسته شدن پروسها ها بذارین؟

شما باید برنامه رو به صورت run as administrator اجرا کنید .

من خودم تا بحال از هوک استفاده نکردم . اما سعی میکتم یه نمونه براتون بزارم .

morteza271
پنج شنبه 07 دی 1391, 15:54 عصر
شما باید برنامه رو به صورت run as administrator اجرا کنید .
دوست عزیز من اینکار رو کردم ولی وقتی از داخل Task Manager خواستم ببندم به محض زدن کلید End Proccess سیستم کرش کرد و اون صفحه آبی معروف نمایش داده شد و بدون هیچ سوالی ریست شد!!!!!!!!
این کد چشه؟؟؟؟


من خودم تا بحال از هوک استفاده نکردم . اما سعی میکتم یه نمونه براتون بزارم .
ممنون میشیم...

morteza5358
جمعه 08 دی 1391, 15:42 عصر
لطفا کسانی که اطلاعاتی در مورد کد های بالا و همچنین هوک دارن بگن....
مرسی

hossein_sh2008
جمعه 08 دی 1391, 22:30 عصر
سلام دوستان عزيز
من خيلي وقته دنبال هوك بودم و برنامشو با vb دارم ولي با سي شارپ لازم دارم،مي خوام وقتي برنامه مخفي هست و ما در برنامه مثلا كليد F8 رو ميزنيم برنامه نمايش داده بشه و.. البته يه كامپوننت پيدا كردم كه فقط براي هر برنامه مي توني يك كليد تعريف كني ولي من چند تا كليد لازم دارم

با تشكر