X
تبلیغات
رایتل
پشم سنگ عایق الاستومری
پنج‌شنبه 15 اسفند‌ماه سال 1387
توسط: آلفا پک

چگونه بستن پنجره ها و پروسه های مشکوک

در اینجا منظور از پروسه های مشکوک ، پروسه هاییست که می توانند Monitoring کنند یا اینکه به امنیت برنامه ی ما صدمه وارد کند . برای مثال ما برنامه ای امنیتی یا ضد امنیتی ایی طراحی کردیم . این برنامه درون سیستم های مختلفی قرار می گیرد و به صورت کاملاً مخفی کاراهایی که ما برای آن طراحی کرده ایم انجام می دهد. برای امنیت بیشتر برنامه باید ابزار Monitoring (مانند Process-Monitor) و Viewer (مانند Process-Viewer)که توسط کاربر اجرا می شود بسته شوند تا کاربر از فعالیت های برنامه ی ما جلوگیری نکند . توسط مطالب این مقاله می توانید به چند روش برنامه های مشکوک را ببندید یا اینکه از فعالیت آنها جلوگیری کنید. برای برنامه های امنیتی (مثلاً قفل سیدی یا Packer ها) فعالیت برنامه های مانیتورینگ بسیار مهم می باشد . توضیح بیشتر برای افراد مبتدی : برای بستن یک برنامه در ویندوز باید ابتدا Handle برنامه یمان را بدست اوریم(البته با PiD هم قابل انجام است). پس از اینکه Handle پنجره ی برنامه مان را بدست آوردیم می توانیم کاراهای بسیاری بر روی آن انجام دهیم. کارهایی که می توان بر روی پروسه ها انجام دهیم شامل : Close ، Enable & Disable ، Minimize ، OnTop و ... می باشند که برای هر کدام نمونه کدی به زبان های مختلف در فایلهای پیوست شده وجود دارد. در واقع در این مقاله با چند متد امنیتی کاربری آشنا می شوید که در پروژهایتان (چه امنیتی چه ضد امنیتی) بسیار کاربرد خواهد داشت. شاید بپرسید Handle چیست ؟ معنای Handle به زبان فارسی "دستگیره" می باشد . همانطور که از معنی آن پیداست دستگیره ایست برای هر شئ در ویندوز و شی های مختلف توسط این دستگیره شناخته می شوند. هر شی در ویندوز دارای Handle یگانه می باشد . توضیحی که می توان در مورد شئ بیان کرد این است که : شئ همان دکمه ها ، کادر متن ها و برچسب هاست(البته این توضیح برای افراد مبتدی و تازه کار می باشد ). البته پنجره ها هم دارای Handle می باشند و از این طریق می توان آنها را نیز کنترل کرد. در مقاله ی قبلی بنده کمی با مفهوم PiD آشنا شدید (اگر مقاله ی قبلی را نخوانده اید می توانید آنرا از وبلاگ من دریافت کنید{عنوان مقاله قبلی : جلوگیری از بسته شدن Process ها در ویندوز}) و همانطور که می دانید PiD برای پروسه ها تکراری نمی باشد و هر پروسه در ویندوز دارای PiD جداگانه می باشد . PiD (Process-iD) به معنای آیدی یا مشخصه ی یک پروسه می باشد. فرق PiD و Handle در چیست ؟ PiD مشخصه ای برای هر پروسه می باشد در حالی که Handle مشخصه ای برای هر شئ می باشد. کلاس چیست ؟ هر شئ در ویندوز کلاسی دارد که بر اساس آن نوع شئ تشخیص داده می شود . برای مثال کلاس دکمه هایی که در برنامه های ساخته شده توسط دلفی استفاده می شود از نوع TButton و کلاس دکمه ها در VB از نوع ThunderRT6CommandButton و در C++ هم از نوع Button می باشد. یکی دیگر از راههایی که می توان پنجره ها را در ویندوز پیدا کرد استفاده از کلاس پنجره می باشد . برای مثال کلاس پنجره ی اصلی برنامه ی Notepad.exe ویندوز از نوع Notepad می باشد همچنین کلاس پنجره ی TaskManager ویندوز از نوع 32770# می باشد . در مورد کلاس قضیه متفاوت می باشد و امکان وجود کلاس تکراری در برنامه های اجرا شده بسیار هست . برای مثال برنامه ی TaskManager و Run ویندوز ، به طور مشترک از نوع 32770# می باشد. این به معنی است که در بعضی مواقع پیدا کردن اینگونه پروسه ها کاری بس دشوار است و نیاز به مهارت و نوشتن کدهای بیشتری است. البته برای پیدا کردن اینگونه پروسه ها از روشی ابتکاری که در درس های بعدی در مورد آن توضیح داده شده، استفاده می شود. 

فقط کافی نام برنامتونونو توی process پیدا کنید و در قسمت antiname به جای avp.exe بنویسید.