PDA

View Full Version : نوشتن برنامه ای مانند ccapp.exe که قابل بستن نباشه



ایمان اختیاری
شنبه 25 مهر 1388, 07:59 صبح
از دوستان کسی می تونه راهنمایی کنه چطور می شه برنامه ای نوشت که قابل بستن نباشه
این برنامه قراره توی کلاینت های یه کافی نت قرار بگیره که حب بستنش حتی برای چند ثانیه هم جالب نیست ..
اگه دقت کرده باشین سیمانتک برنامه ای رو نصب می کنه به اسم ccapp.exe که اگه بخواین اونو توسط هر برنامه ی مدیریت پروسس ها ببنیدین با خطای access denied مواجهه می شین
این کار به نظر شما چطور انجام شده و ما چطور می تونیم اونو پیاده سازی کنیم؟

ایمان اختیاری
دوشنبه 06 اردیبهشت 1389, 09:10 صبح
سلام .. من هنوزم منتظر جواب این سوال هستم اگه کسی می دونه لطف می کنه راهنمایی کنه؟

mehdi_turbo
دوشنبه 06 اردیبهشت 1389, 10:04 صبح
برای نوشتن چنین برنامه هایی از سرویس استفاده می کنند. یعنی شما از طریق create new project و create service را انتخاب میکنی و خواصی داره که از بسته شدن برنامه جلوگیری میکنه

ایمان اختیاری
دوشنبه 06 اردیبهشت 1389, 10:25 صبح
متشکر از پاسختون ..
یعنی من اگه برنامه ام رو توسط یه سرویس اجرا کنم کاربر دیگه ای نمی تونه متوقفش کنه ؟ یا این که خود برنامه رو به صورت سرویس بنویسم؟

Netsky
دوشنبه 06 اردیبهشت 1389, 10:26 صبح
با سلام و عرض ادب .
ضمن تشكر از جناب mehdi_turbo به خاطر پاسخ مفيدشون ، بنده هم ميخاستم مطلبي رو بيان كنم :
من قبلا در اين زمينه مطالعاتي داشتم و اينهايي رو كه الان ميگم ، متوجه شدم .
اين روش يكي از تكنيك هاي رايج بدافزارهاست ( واسه راحتي كار از اين به بعد به جاي بدافزار كلمه ويروس رو به كار ميبرم ) . مثلا يه ويروس علاوه بر برنامه اصلي خودش يه برنامه ديگه هم ايجاد ميكنه . كار اون برنامه دوم اينه كه در بازه هاي زماني معين وجود برنامه ي اصلي ويروس در حافظه رو چك ميكنه . در صورتي كه ويروس در حافظه نباشه ، برنامه دوم ، ويروس رو اجرا ميكنه . ويروس هم در طول مدت فعاليت خودش وجود برنامه دوم در حافظه رو چك ميكنه . در صورتي كه برنامه دوم وجود نداشته باشه ويروس اون برنامه دوم رو اجرا ميكنه . به همين ترتيب هر دو برنامه هم ديگه رو اجرا ميكنن و از قطع شدن پروسس شون جلوگيري ميكنن .
البته اين طبق چيزايي بود كه خونده بودم . اگه اشتباه ميكنم دوستان تصحيح بفرمايند .
Prosperous and Stable …… :قلب:

ایمان اختیاری
دوشنبه 06 اردیبهشت 1389, 10:56 صبح
جناب Netsky (http://barnamenevis.org/forum/member.php?u=72605) متشکرم از راهنمایی ... خودمم هم به این مسئله فکر کرده بودم ولی می خوام خود برنامه توی سطح های پاییینی سیستم عامل بره و نشه که با برنامه های معمولی بستش

mohsen.net
دوشنبه 06 اردیبهشت 1389, 11:36 صبح
وقتی خود سرویس متوقف شد چی؟
استفاده از سرویس راه درستی نیست و مفهوم برنامه با سرویس فرق داره

mohsen.net
دوشنبه 06 اردیبهشت 1389, 11:37 صبح
وقتی خود سرویس متوقف شد چی؟
استفاده از سرویس راه درستی نیست و مفهوم برنامه با سرویس فرق داره

ایمان اختیاری
دوشنبه 06 اردیبهشت 1389, 11:40 صبح
خب می شه سرویس رو توی تنظیمات عمومی سرویسا جوری تنظیم کرد که اگر متوقف شد ریستارت بشه یا بعد از سه بار سیستم رو ریستارت کنه ولی به نظرم می شه بهتر از این هم کار کرد

ایمان اختیاری
سه شنبه 07 اردیبهشت 1389, 08:16 صبح
از دوستان کسی واقعا نمی تونه یه نظری ، پیشنهادی ...
من حتی به فکر ایجاد یه منطقه بحرانی هم افتادم ...
یه کمکی آخه

mehdi_turbo
سه شنبه 07 اردیبهشت 1389, 08:44 صبح
اگه به این لینک یه نگاهی بندازید بد نیست :

http://www.codeproject.com/KB/install/csharpsvclesson1.aspx

LORD AELX
سه شنبه 07 اردیبهشت 1389, 09:09 صبح
از دوستان کسی واقعا نمی تونه یه نظری ، پیشنهادی ...
من حتی به فکر ایجاد یه منطقه بحرانی هم افتادم ...
یه کمکی آخه

شما میتونید این کار رو هم برای End Task کردن و هم برای End Process کردن برنامه تون انجام بدید. برای مورد اول میتونید از متد TaskManagerClosing که یه Enumeration Member هست، برای handle کردنش استفاده کنید. برای مورد دوم هم باید یه dll به Task Manager اینجکت کنید و TerminateProcess اِ Kernel32 رو hook کنید.

hojjatshariffam
یک شنبه 12 اردیبهشت 1389, 01:49 صبح
بچه ها کسی نیست در مورد سرویس ها بیشتر توضیح بده؟

sallea
شنبه 30 مرداد 1389, 14:10 عصر
دوست عزیز شاید یک کم دیر باشه اما می تونی از طریق استفاده از دو برنامه که همدیگر رو صدا می زنند اینکاررو انجام بدی