PDA

View Full Version : حرفه ای: کمک برای نوشتن یک برنامه مانیتورینگ یک کامپیوتر



M_Hossaini
شنبه 16 شهریور 1392, 11:03 صبح
سلام به دوستان
می خوام ی برنامه مانیتورینگ برای یک کامپیوتر بنویسم
با پردازش ها و کدنویسی آنها آشنایی دارم و تا حدودی هم می تونم مشخصات و کارهایی که می خوام انجام بدم
اما مشکل من اونجاست که نمی تونم برنامه ام را از چشم کاربر مخفی کنم و کاربر هر وقت بخواد میتونه برنامه من را خاتمه بده

aliagamon
شنبه 16 شهریور 1392, 11:07 صبح
باید یک سرویس براش بسازید ... :لبخند:

M_Hossaini
شنبه 16 شهریور 1392, 11:22 صبح
در ابتدا نمی خوام خیلی حرفه ای ش کنم
بعدشم کاربر یک کمی با تسک منیجر آشنایی داشته باشه می تونه سرویس رو هم stop کنه
فقط می خوام ی طوری کاربر نتونه برنامه من رو ببینه که تمامش کنه
قراره ی سری اطلاعات سخت افزاری و ... .رو تو ی تیبل sql درج کنه که مدیر اونا رو مشاهد کنه

MohammadHadi2031
شنبه 16 شهریور 1392, 12:43 عصر
یک پیشنهاد به شما دوست عزیز لطفا نظرتون رو بگید:
بگذارید کاربر برنامه شما را ببیند ولی یک برنامه دیگر درست کنید که هر وقت کاربر برنامه شما رو برد دوباره برنامه شمارا اجرا کند

barnamenevisjavan
شنبه 16 شهریور 1392, 13:34 عصر
اسم برنامه رو هم میتونید svhost بزارید تا شبیه svchost بشه و به چشم نمیاد توی لیست تسک منیجر

mohsenasm
شنبه 16 شهریور 1392, 16:00 عصر
با سلام
فکر کنم با برنامه هایی مثل ProcessExplorer بشه تشخیص داد که کدوم برنامه اونو دوباره باز کرده تا هر دو تاشو با هم Kill process tree کنه و برنامه ها رو ببنده.

M_Hossaini
شنبه 16 شهریور 1392, 17:49 عصر
من در حقیقت می خوام با ی برنامه این کار رو انجام بدم مانند آنتی ویروس ها شما تا از قسمت
try برنامه رو disable نکنید نه سرویس هاش رو می شه بست و نه قسمت ناظر اون رو
و با توجه به نکاتی که دوستمون mohsenasmگفت به راحتی می شه هر دوتا برنامه رو بست
مظالبی خوندم در رابطه ساخت و ایجاد یک درایو مجازی که تمام پروسس ها و برنامه ها رو به صورت محافظت شده تو اون قرار بدم اما نه کار کردن با هاش رو می دونم و هم فکر می کنم راه ساده تری هم باشه که کمتر از منابع سیستم استفاده کنه

aliagamon
شنبه 16 شهریور 1392, 18:08 عصر
والا شما باید یه ویندوز سرویس ایجاد کنید (انتی ویروس ها هم همین کارو میکنن) تو انجمن سرچ کنین چند بار بحث شده ...

sajad.net
شنبه 16 شهریور 1392, 20:42 عصر
اگه برنامه بعد از اجرای فایل تسک شده خودش رو دوباره اجرا کنه دیگه مشخص نمی شه چه برنامه ای اونو باز کرده

aliagamon
شنبه 16 شهریور 1392, 20:51 عصر
منضورتون اینه که تو رویداد form_closing بنویسین؟.....
همچین چیزی نمیشه چون اگه تسک رو kill کنه دیگه event ی اجرا نمیشه که بخواد کاری کنه ...

FastCode
شنبه 16 شهریور 1392, 21:08 عصر
ای کاش افرادی که راه حل دادند حداقل یک مقدار تجربه این کار رو داشتند.
راهی که همه ی سیستم های امنیتی استفاده میکنند اینه که حداقل توابع مربوط به Kill/Affinity/ReadProcessMemory/WriteProcessMemory رو hook میکنند و به هیچ برنامه ای اجازه نمیدن که از اون توابه روشون استفاده کنه.
hook کردن بیش از ۱۰۰۰ باز توضیح داده شده.جست و جو کنید.حتما به جواب میرسید.

aliagamon
شنبه 16 شهریور 1392, 21:26 عصر
درسته ....lbdpi بهتره ....من سرویس رو گفتم واسه این که اگه پروسس بسه شد بازش کنه دوباره :لبخند:

FastCode
شنبه 16 شهریور 1392, 21:41 عصر
درسته ....lbdpi بهتره ....من سرویس رو گفتم واسه این که اگه پروسس بسه شد بازش کنه دوباره :لبخند:
ببخشید.میتونم بپرسم lbdpi چیه؟من اشتباه نوشتم.layout صفحه کلید رو تغییر داده بودم ولی تغییر نکرده بود.
lbdpi حروفی هستند که در کیبورد dvorak جای حروف کلمه حداقل قرار میگیرند.حالا من موندم یک کلمه انگلیسی که غیر قابل تلفظ هست چطوری *بهتره*؟
حداقل وقتی میخواهید بگید یه چیزی بهتره یا بدتره یا روی هوا رای بدید یک بار گوگل کنید.

aliagamon
شنبه 16 شهریور 1392, 21:52 عصر
والا منم نمیدونم چیه ... :لبخند: شما جلوش توصیح دادین که :

توابع مربوط به Kill/Affinity/ReadProcessMemory/WriteProcessMemory رو hook میکنند و به هیچ برنامه ای اجازه نمیدن که از اون توابه روشون استفاده کنه.
من فکر کردم توضیح اونه و گفتم خوب اوون روش بهتریه ... چون میتونی جلوی kill شدن رو بگیرین برای همین این جمله رو گفتم :

درسته ....lbdpi بهتره ....من سرویس رو گفتم واسه این که اگه پروسس بسه شد بازش کنه دوباره :لبخند:
از این زاویه یه بار بخوانین میفهمین که چی میگم.....

FastCode
شنبه 16 شهریور 1392, 22:19 عصر
والا منم نمیدونم چیه ... :لبخند: شما جلوش توصیح دادین که :

من فکر کردم توضیح اونه و گفتم خوب اوون روش بهتریه ... چون میتونی جلوی kill شدن رو بگیرین برای همین این جمله رو گفتم :

از این زاویه یه بار بخوانین میفهمین که چی میگم.....
منطقیه ...

M_Hossaini
یک شنبه 17 شهریور 1392, 00:08 صبح
ای کاش افرادی که راه حل دادند حداقل یک مقدار تجربه این کار رو داشتند.
راهی که همه ی سیستم های امنیتی استفاده میکنند اینه که حداقل توابع مربوط به Kill/Affinity/ReadProcessMemory/WriteProcessMemory رو hook میکنند و به هیچ برنامه ای اجازه نمیدن که از اون توابه روشون استفاده کنه.
hook کردن بیش از ۱۰۰۰ باز توضیح داده شده.جست و جو کنید.حتما به جواب میرسید.

میشه یک کم بیشتر توضیح بدید و چند تا لینک بدید؟؟
البته نه درباره معنای hook بلکه چطوری و نحوه انجام

FastCode
یک شنبه 17 شهریور 1392, 00:37 صبح
میشه یک کم بیشتر توضیح بدید و چند تا لینک بدید؟؟
البته نه درباره معنای hook بلکه چطوری و نحوه انجام
اون مقاله ای که توی ذهنم بود رو پیدا نکردم.
فعلا این رو ببینید:
http://csharptest.net/1043/how-to-prevent-users-from-killing-your-service-process/

M_Hossaini
یک شنبه 17 شهریور 1392, 11:54 صبح
به نظر شما می تونم از wmi استفاده کنم و به محض اینکه کاربر خواست برنامه یا پروسس من رو ببنده اون رو کنسل کنم ؟(الگوریتم ؟؟)

M_Hossaini
یک شنبه 17 شهریور 1392, 23:47 عصر
فعلا این رو ببینید:
http://csharptest.net/1043/how-to-prevent-users-from-killing-your-service-process/[/QUOTE]

تشکر از پیگیری تون این مقاله رو دیدم در حقیقت در این مقاله و کدهای ارائه شده ما مجوز به یک فرآیند می دهیم و اجازه می دهیم حتی اگه کاربری از نوع مهمان باشه فرآیند ما به صورت تمام قدرت مثه وقتی که در حال مدیر اجرا می شه اجرا بشه
اما نکته ای که باعث بشه تا کاربر نتونه پروسه ایجاد شده رو ببنده ندیدم
اگر هست راهنمایی کنید

FastCode
دوشنبه 18 شهریور 1392, 01:21 صبح
چی؟مطمئنید همین مقاله رو خوندید؟

M_Hossaini
دوشنبه 18 شهریور 1392, 13:45 عصر
بله و البته برداشت من این بود
در پست قبلی هم گفتم که اگه در ارتباط با خاتمه فرایند مطلبی است لطف کنید و راهنمایی کنید