جلوگیری از پایان برنامه در process
من یه برنامه برای سیستمم دارم می نویسم ونباید از طریق برنامه یا ویروسی End process بشه
می خواستم بدونم کدی هست که جلوی End Process شدن برنامه را بگیرد
من می تونم برنامه رو از process مخفی کنم ولی بازم راهی هست که End process بشه
کسی از دوستان می تونه کمکم کنه؟؟؟!
بعضی از برنامه ها را دیدم که اگر بخوای end process کنی
یک Error می ده با این عبارت :
Access is denied
کسی می دونه دلیلش چیه؟!
نقل قول: جلوگیری از پایان برنامه در process
با سلام
اين اعمال رو ميتوني با تغيير در رجيستري انجام بدي
به اين مسير برو تا متوجه بشي :
Control Panel/Administrative Tools/Component Services
در اونجا services(local) زو انتخاب كن
ليست برنامه هايي كه ويندوز اين امكانات رو براشون ميزاره ميبيني و قابل تغيير هستند
براي بدست آوردن كد در رجيستري هم
يكي از اين ليست رو تغيير بده بعد در رجيستري دنبالش بگرد
اما با اين كار باز هم ميشود كه برنامه ها رو قطع كرد
به نظر من بهتره كه يك برنامه ديگه كنار برنامت بزاري و چك كنه هر زمان كه برنامت نبود دوباره اون رو اجرا كنه
موفق باشي
نقل قول: جلوگیری از پایان برنامه در process
نقل قول:
نباید از طریق
برنامه یا
ویروسی End process بشه
می خواستم بدونم کدی هست که جلوی End Process شدن برنامه را بگیرد
من می تونم برنامه رو از process مخفی کنم ولی بازم راهی هست که End process بشه
بعضی از برنامه ها را دیدم که اگر بخوای end process کنی
یک Error می ده با این عبارت :
Access is denied
سلام.
این که شما می گید بستگی به این داره که شما از چه نرم افزاری برای بستن برنامه استفاده می کنید. اگه از برنامه task manager ویندوز استفاده می کنید همون مخفی کردن از لیست Processes کافیه در غیر اینصوت اگه از برنامه های Process Manager استفاده می کنید باید بگم این کار عملی نیست ، با این برنامه ها هر پروسه ای رو می تونید ببندید.
حتی برنامه های rootkit هم شناسایی می شن.
در کل نمی شه جلوی بستن برنامه ای رو بگیرید ولی می تونید بستن اون رو مشکل تر کنید.
در مورد پیغام هم اگه حرفه ای باشید شاید تو وی بی هم بتونید از hook برای اینکار استفاده کنید.
نقل قول:
به نظر من بهتره كه يك برنامه ديگه كنار برنامت بزاري و چك كنه هر زمان كه برنامت نبود دوباره اون رو اجرا كنه
این کار بهتر ، البته شما باید تو این برنامه ها هم مسایل امنیتی بالا رو لحاظ کنید تا کاربر نتونه به این سادگی برنامه رو ببنده و اگه احیانا برنامه بسته شد ، برنامه جایگزین کار خودش رو انجام بده .
اگه خواستید این کار رو انجام بدین یادتون باشه که همیشه هر دو برنامه باید در حال اجرا باشن.
یه چیز دیگه هم هست اینه که من تا حالا Process Manager ی رو ندیدم که دو برنامه رو با هم یکجا ببنده پس می تونید فعلا از این نقص استفاده کنید.
بهتره برنامتون هم نام نباشه که خیلی زود بسته می شن (خودت امتحان کن می بینی)
نقل قول: جلوگیری از پایان برنامه در process
نقل قول:
یه چیز دیگه هم هست اینه که من تا حالا Process Manager ی رو ندیدم که دو برنامه رو با هم یکجا ببنده پس می تونید فعلا از این نقص استفاده کنید.
شما خودت با یه حلقه 10 تا پروسه رو با هم ببند.من خودم واسه از بین بردن ویروسها از این راه استفاده میکنم.
اگه بخوای برنامت بسته نشه یکی اینه که برنامت دسترسی سطح هسته داشته باشه.
دوم اینه که سرویس اجرا بشه.
اگر واسه برنامت هم پروسه محافظ بذاری باز راه واسه بسته شدن داره.
نقل قول: جلوگیری از پایان برنامه در process
دوستان برای این که منهرف نشید برنامه دپفرض (Deep Freeze)رو پیدا کنید و نصب کنید تا حرف دوستمون رو بهتر متوجه بشین در ضمن این برنامه خودشه بصورت سیستمی نشون میده که من نتونستم
نقل قول: جلوگیری از پایان برنامه در process
.:: بسیار متشکرم که به سوال من رسیدگی کردین ::.
3dboy1
نقل قول:
به نظر من بهتره كه يك برنامه ديگه كنار برنامت بزاري و چك كنه هر زمان كه برنامت نبود دوباره اون رو اجرا كنه
این روش رو امتحان کردم ولی به دلیل این که از دستورات api در رابطه با process استفاده می شه برنامه سرعتش کند میشه و نمی تونه در تایمر به خوبی عمل کنه
virus30ya30
نقل قول:
در کل نمی شه جلوی بستن برنامه ای رو بگیرید ولی می تونید بستن اون رو مشکل تر کنید.
در مورد پیغام هم اگه حرفه ای باشید شاید تو وی بی هم بتونید از hook برای اینکار استفاده کنید.
از hook چطور می تونم استفاده کنم یک مثال دارید
.:KeihanCPU:.
نقل قول:
شما خودت با یه حلقه 10 تا پروسه رو با هم ببند.من خودم واسه از بین بردن ویروسها از این راه استفاده میکنم.
میشه بگید چطوری این کارو می کنید با استفاده از نرم افزار یا از راه دستی بیشتر توضیح بدین
در ظمن برنامه باید به زبان اسمبلی باشه تا دسترسی هسته بهش داد
REZADG
نقل قول:
دوستان برای این که منهرف نشید برنامه دپفرض (Deep Freeze)رو پیدا کنید و نصب کنید تا حرف دوستمون رو بهتر متوجه بشین در ضمن این برنامه خودشه بصورت سیستمی نشون میده که من نتونستم
آره منظورم همین برنامه و امثال اینه
این برنامه رو فکر نکنم با Process manager یا حتی قویتر از این هم بشه بست
ولی در حالتی که نیمه غیر فعال این برنامه رو بستم ولی نه به صورت کامل
نقل قول: جلوگیری از پایان برنامه در process
نقل قول:
نوشته شده توسط
.:KeihanCPU:.
اگه بخوای برنامت بسته نشه یکی اینه که برنامت دسترسی سطح هسته داشته باشه.
لطفاً توضیح بدید . چطور می تونیم برای پروسه ها دسترسی در سطح هسته تعریف کنیم ؟
نقل قول: جلوگیری از پایان برنامه در process
یه راه خیلی آسونش اینه که اسم برنامه ایت رو services.exe بزارین این اسم به وسیله سیستم عامل حفاظت میشه و توسط تسک منیجر (بعضی از برنامه ها میتونن ببندنش) بسته نمیشه
این چیزی که گفتم باعث میشه که فرمتون end proccess نشه ولی شما باید خاصیت unload فورمتون هم به صورت زیر قرار بدین تا دیگه اصلا بسته نشه
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
موفق باشید
نقل قول: جلوگیری از پایان برنامه در process
ابتدا بهتره با مفهوم Operating system kernel اشنا شويد . kernel را بعنوان هسته مركزي سيستم عامل تصور كنين . بخشي از سيستم عامل كه اجزاي ديگر را گرد اوري نموده و مجموعه اي از ويژگيها را توليد مي كند . هر برنامه نويس براي دسترسي به هسته سيستم عامل بايد از يك رابط خاص استفاده نمايد .بسياري از برنامه نويسان اين رابط را API يا Application programming interface مي نامند .
هنگامي كه برنامه نويس يك برنامه كاربردي براي ويندوز تهيه مي كند در واقع Api را فراخاني مي كند فراخواني َApiيعني درخواست از سيستم عامل براي اجراي يك وظيفه . كد Api در فايل هاي سيستم ظاهر خواهد شد . البته اين نمايي ساده از Api است .ويندوز XP در واقع از دو Api ويندوز استفاده مي كند . يك Api 16 بيتي و يك Api 32 بيتي . هر Api به حالت User mode برنامه هاي كاربردي اجازه مي دهد تا درخواست هايي را از سيستم عامل داشته باشد كه اين درخواستها در حالت Kernel mode جرا مي شوند .
تفاوتي ندارد كه برنامه هاي كاربرد ي تحت ويندوز شما از كدام Api استفاده مي كنند بهرحال انها از سه مولفه اصلي و هسته اي سيستم عامل استفاده مي كنند . نسخه هاي 16 بيتي اين فايل ها عبارتند از Krnl386.exe . user.exe . Gdi.exe .
نسخه هاي 32 بيتي اين فايل ها عبارتند از Gdi32.dll .User.dll . kernel32.dll ..برنامه نويسان اين مجموعه فايل هارا Win 32 Api مي نامند
البته برنامه نويسان از انواع Api براي انجام ساير وظايف استفاده مي كنند . اغلب اوقات فراخاني يك Api زماني رخ مي دهد كه يك برنامه كاربردي در حال اجراي در حالت User mode از يك مولفه سيستم عامل ( كه در حالت kernel اجرا مي شود ) در خواست اجراي وظيفه اي را داشته باشد
نقل قول:
لطفاً توضیح بدید . چطور می تونیم برای پروسه ها دسترسی در سطح هسته تعریف کنیم ؟
من هم اطلاعات زیادی از نحوه کار ندارم.یکم مشکله و وقت گیر.
در گوگل جستجو کنید .شاید به نتیجه برسید
نقل قول: جلوگیری از پایان برنامه در process
نقل قول:
نوشته شده توسط
aminbrleevb
یه راه خیلی آسونش اینه که اسم برنامه ایت رو services.exe بزارین این اسم به وسیله سیستم عامل حفاظت میشه و توسط تسک منیجر (بعضی از برنامه ها میتونن ببندنش) بسته نمیشه
این چیزی که گفتم باعث میشه که فرمتون end proccess نشه ولی شما باید خاصیت unload فورمتون هم به صورت زیر قرار بدین تا دیگه اصلا بسته نشه
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
موفق باشید
این هم یک روش برای بستن پروسه هایی با نام های سیستمی :
نقل قول:
Shell "Tskill Services"
Shell "Tskill Smss"
Shell "Tskill Lsass"
نقل قول: جلوگیری از پایان برنامه در process
نقل قول:
نوشته شده توسط
good_boy
از hook چطور می تونم استفاده کنم یک مثال دارید
بحث hook كردن توابع API قبلا پيش امده. مي تونيد جستجو كنيد
نقل قول:
نوشته شده توسط
.M8SPY.
لطفاً توضیح بدید . چطور می تونیم برای پروسه ها دسترسی در سطح هسته تعریف کنیم ؟
اول از همه بايد ببينيم كه كنترل ويندوز در مد هسته كي و كجا و چه جوري به مد كاربر تبديل ميشه. اون وقت شايد بتونيم يه كاريش بكنيم.
وقتي سيستم بالا مياد هر سيستم عاملي بر اساس ساختار خودش يك سري فايل هاي سيستمي داره كه اونها رو اجرا مي كنه. تو سيستم عامل ويندوز يكي از اون فايل ها ntldr هست. وظيفه اين فايل انتقال كنترل از مد هسته به مد كاربر هست.
بقيه شو خود دانيد ...
نقل قول:
نوشته شده توسط
aminbrleevb
... ولی شما باید خاصیت unload فورمتون هم به صورت زیر قرار بدین تا دیگه اصلا بسته نشه
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
task kill شدن يك پروسه يعني بسته شدن برنامه به طور غير عادي. و رويداد unload در اين حالت اتفاق نمي افته و برنامه بسته ميشه.
ولي گذاشتن نام services ايده خوبي بود.:تشویق: بخصوص اگر اون رو تو ليست پروسس هاي system قرار بديم.
نقل قول: جلوگیری از پایان برنامه در process
واقعا از همتون ممنونم. شما باعث میشید که علم خیلی از برنامه نویسای نوپایی مثل من زیاد بشه.