Hide Your Processes In Task Manager

12 12 2008

سلام مجدد خدمت دوستان، دیروز تو شرکت بحث از ویروس و نوشتن ویروس بود یکی از دوستان عزیزم به اسم سالار به موردی اشاره کرد که توجه مو جلب کرد اونم این بود که برخی از ویروسها اسم خودشونو از تو لیست Task Manager حذف یا اصطلاحا Hidden می کنن. نکته جالبی بود علاقه مند شدم که چطور ؟ دیشب نشستم و یک نمونه برنامه کوچیک نوشتم، که یک تابعی رو صدا میکنه و پارامتر ورودی تابع نام process ای که قرار به اصطلاح مخفی بشه. این بود که گفتم نمونه کد رو بزارم تا شما دوستان نیز بتونین ازش استفاده کنین. توضیحی در مورد نحوه عملکرد کد نمی دم چون comment برای هر بخش که مربوط به API میشه گذاشتم.

داشت یادم میرفت این نمونه کد در ویستا کار نمی کنه. در ضمن اگه در حین اجرا Exception پیش اومد که نتونستین رفع کنین یا سوالی در این رابطه دارین بپرسین و بگین تا حلش کنیم. 🙂

برای دانلود سورس کامل برنامه اینجا رو کلیک کنید


Int32 hwndParent = FindWindow(null, "Windows Task Manager");
Int32 hwndDialog = 0;
Int32 hwndProcessList = 0;
Int32 hwndProcessHeader = 0;


//-----/ Get menu task manager handle
Int32 hwndMenu = GetMenu(hwndParent);
//-----/ Get handle of view menu
Int32 hwndSubMenu = GetSubMenu(hwndMenu, 2);
//-----/ Get sub menu handle for update menu
Int32 hwndSubSubMenu = GetSubMenu(hwndSubMenu, 1);
//-----/ Get refresh item id
Int32 hwndRefreshItemID = GetMenuItemID(hwndSubMenu, 0);
//----/ Get high update item id
Int32 hwndHighUpdateItemID = GetMenuItemID(hwndSubSubMenu, 0);
//----/ Get normal update item id
Int32 hwndNormalUpdateItemID = GetMenuItemID(hwndSubSubMenu, 1);
//----/ Get low update item id
Int32 hwndLowUpdateItemID = GetMenuItemID(hwndSubSubMenu, 2);
//----/ Get pause update item id
Int32 hwndPauseUpdateItemID = GetMenuItemID(hwndSubSubMenu, 3);


if (processStatus)
{
for (int i = 0; i < 7; i++)
{
hwndDialog = FindWindowEx(hwndParent, hwndDialog, null, null);
if (hwndProcessList == 0) // Get process list view handle
hwndProcessList = FindWindowEx(hwndDialog, 0, "SysListView32", "Processes");
if (hwndProcessHeader == 0) // Get listview columns handle
hwndProcessHeader = FindWindowEx(hwndProcessList, 0, "SysHeader32", null);
}


//-----/ Click "paused update speed", so we can do it for the taskmgr
SendMessage(hwndParent, WM_COMMAND, hwndPauseUpdateItemID, 0);
//-----/ disable refresh now item
EnableMenuItem(hwndMenu, hwndRefreshItemID, MF_ENABLE);
//-----/ disable high update speed
EnableMenuItem(hwndMenu, hwndHighUpdateItemID, MF_GRAYED);
//-----/ disable normal update speed
EnableMenuItem(hwndMenu, hwndNormalUpdateItemID, MF_GRAYED);
//-----/ disable low update speed
EnableMenuItem(hwndMenu, hwndLowUpdateItemID, MF_GRAYED);
//-----/ disable paused update speed
EnableMenuItem(hwndMenu, hwndPauseUpdateItemID, MF_GRAYED);


//-----/ Disable the process header
EnableWindow(hwndProcessHeader, false);
//-----/ Sort process
SendMessage(hwndProcessList, LVM_SORTITEMS, 0, 0);
Int32 processIndex = GetProcessIndexByName(processName);
//-----/ disables drawing in the specified window
LockWindowUpdate(hwndProcessList);
//-----/ AutoClick refresh to update
SendMessage(hwndParent, WM_COMMAND, hwndRefreshItemID, 0);
//-----/ Delete process
SendMessage(hwndProcessList, LVM_DELETEITEM, processIndex - 1, 0);
//-----/ Unlock window - enable drawing in the specified window
LockWindowUpdate(0);

Advertisements

کارها

Information

5 responses

20 03 2009
محمد

میشه چندتا لینک خوب برای کا ربا API معرفی کنی
یعنی آموزشش تو C#
ممنون

18 09 2009
SHK

سلام
به نظر ميرسه در دلفي 2007 كه من دارم مقاديري كه براي كار با SYSLISTVIEW32
هست وجود نداره مثل LVM_deleteitem
لطفا توضيح بدين كه چطور با دلفي اين كارو انجام بدم؟
با تشكر از مطالب مفيدي كه مينويسيد.

24 09 2009
»-(¯`MEH®GAD´¯)-» » Blog Archive » نمونه سوالات کنکور

[…] Hide Your Processes In Task Manager « وبلاگی برای برنامه نویسان […]

16 05 2010
نفیس

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

7 06 2010
codeprojects

دوست عزیز مطلب فوق خارج از این بحث است. جواب را براتون ایمیل کردم. ایمیل خود را چک کنید.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s




%d وب‌نوشت‌نویس این را دوست دارند: