PDA

نسخه کامل مشاهده نسخه کامل : |||||||| يك سوال تخصصي در رابطه با End process دارم؟؟!|||||||||



MichaelQwerty
29-12-2008, 15:52
ميخواستم بونم آيا كدي هست كه جلوي end process شدن فايلي را بگيرد
نمي خوام برنامه از ديدم مخفي باشه فقط مي خوام غير قابل End process بشه مثل بعضي از برنامه ها كه Error ميده:
Access is Denied

aaaammmm87
30-12-2008, 12:03
سلام
فكر كنم در اين صورت شما بايد برنامه تون رو به يكي از فايل هاي سيستم مثل lsass.exe پيوست كني كه نشه غير فعالش كرد و در صورت غير فعال شدن سيستم off‌بشه

A H P
30-12-2008, 16:15
با سلام
وبه خاطر سوال خوبي كه پرسيدين ممنونم
به اين سوال جواب بديد سوال من هم هست ؟
متشكر

VBYOFSKI
30-12-2008, 18:43
من یه سری یه برنامه دانلود کردم که اسم Exe برنامه lssas.exe بود. به خاطره همین نمیشد برنامه رو End کرد.

A H P
30-12-2008, 22:04
با سلام
اين روش يعني گذاشتن فايل اجرايي برنامه به نام lsass.exe روش خوبي نيست و كار هم نمي كنه
چون اون پروسه ي ويندوز هست يعني يكي از سرويس هايي كه خود ويندوز اجرا مي كنه!!!!!!!
و ما مي خوايم برنامه رو توي اين سرويس پچ كنيم

Payman_62
30-12-2008, 22:20
من یه سری یه برنامه دانلود کردم که اسم Exe برنامه lssas.exe بود. به خاطره همین نمیشد برنامه رو End کرد.
سلام.
دلیل این که نمیشه پروسه هایی با اسم lsass یا services رو بست اینه که ویندوز اونارو با پروسه های سیستمی خود ویندوز اشتباه میگیره. در واقع سوتی ماکروسافته که به جای چک کردن پروسه که سیستمی هست یا نه فقط اسم پروسه رو چک میکنه.
در کل این روش چندان مناسب نیست. چون این پروسه ها به راحتی به کمک دستور tskill قابل بستن هستن.

شما بهتره از توابع hook استفاده کنی. یعنی قبل از بسته شدن برنامه جلوی بسته شدنشو بگیری. یا قبل از نمایش پروسه در تسک منیجر جلوی نمایششو بگیری. ممکنه کمی مشکل باشه.
این 2 تا مثال رو ببین.
این جلوی نمایش پروسه تو تسک منیجر رو به کمک هوک میگیره.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این کلید های کیبرد رو هوک میکنه.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته مثال ها به زبان c++ و C# هستن.
در مورد هوک تو گوگل سرچ کن کدهای بیشتری گیر میاری.

hoax3r
30-12-2008, 22:30
سلام
 
در مورد Hook TerminateProcess یا Hook ZwTerminateProcess جستجو کنید به یه نتیجه هایی میرسید،
در واقع اگه بتونی این توابع رو اصطلاحا هوک کنی میتونی اینکاری که میخوای انجام بدی
ولی خوب به این راحتی هم نیست و سورس ساده هم در این مورد کم پیدا میشه
من خودم یه کم در این زمینه کار کردم زیاد سورس در این مورد ندارم که بزارم خصوصا برای VB
 
شاد باشید

A H P
31-12-2008, 08:35
دلیل این که نمیشه پروسه هایی با اسم lsass یا services رو بست اینه که ویندوز اونارو با پروسه های سیستمی خود ویندوز اشتباه میگیره. در واقع سوتی ماکروسافته که به جای چک کردن پروسه که سیستمی هست یا نه فقط اسم پروسه رو چک میکنه.
در کل این روش چندان مناسب نیست. چون این پروسه ها به راحتی به کمک دستور tskill قابل بستن هستن.

با سلام
كاملاً رد ميشه !
چون اشتباه نمي گيره و براحتي ميشه اون ها رو بست با كليد روي دكمه ي End Process
به همين خوشمزگي ميتونين تست كنيد

A H P
31-12-2008, 08:50
تا امروز سورس اين كا رو برات مي زارم الان كه دارم اين پست رو مي دم ساعت 8:49 صبح است
و بايد برم
امروز حتماً برات ميزارم
... Please Wait

Payman_62
31-12-2008, 12:42
با سلام
كاملاً رد ميشه !
چون اشتباه نمي گيره و براحتي ميشه اون ها رو بست با كليد روي دكمه ي end process
به همين خوشمزگي ميتونين تست كنيد

سلام.
مطمنی؟ یه بار دیگه تست کن. راه بستنش همونه که گفتم. tskill.

با جناب hoax3r کاملا موافقم. سورس در این زمینه به سختی پیدا میشه. مخصوصا برای ویبی. کار با Hook مشکله.
البته غیر از Terminateprocess ای پی آی های دیگه ای هم برای بستن یه پروسه هست. که اگه بخوای هوک کنی باید حواست به همه اونا باشه. مثلا میشه هندل پنجره برنامت رو گرفت و با postmessage برنامه رو بست.

ضمنا آنتی ها به هوک گیر میدن. یعنی اگه آنتی ران باشه اصلا اجازه اجرای برنامت رو نمیده.

A H P
31-12-2008, 13:40
سلام.
مطمنی؟ یه بار دیگه تست کن. راه بستنش همونه که گفتم. tskill.

با جناب hoax3r کاملا موافقم. سورس در این زمینه به سختی پیدا میشه. مخصوصا برای ویبی. کار با Hook مشکله.
البته غیر از Terminateprocess ای پی آی های دیگه ای هم برای بستن یه پروسه هست. که اگه بخوای هوک کنی باید حواست به همه اونا باشه. مثلا میشه هندل پنجره برنامت رو گرفت و با postmessage برنامه رو بست.

ضمنا آنتی ها به هوک گیر میدن. یعنی اگه آنتی ران باشه اصلا اجازه اجرای برنامت رو نمیده.
سلام
پيمان جان شما گفتي اشتباه مي گيره من هم گفتم اشتباه نمي گيره به راحتي ميشه پرسشون رو با taskill يا end process بست
شما گفته بودي اگه فيل برنامه ي اصلي رو به يكي از سرويس هاي ويندوز تعغيير نام بديد ويندوز اشتباه مي گيره من ميگم اينطوري نيست اشتباه نمي گيره و براحتي بسته ميشه

MichaelQwerty
31-12-2008, 17:01
منظور پیمان جون این اسم services.exe
ما همچونان در کف این سورسی که می خواهید بزارین مانده ایم

بهرام_62
31-12-2008, 18:49
postmessage
میشه درباره این توضیح بدین؟

Payman_62
31-12-2008, 19:57
سلام
پيمان جان شما گفتي اشتباه مي گيره من هم گفتم اشتباه نمي گيره به راحتي ميشه پرسشون رو با taskill يا end process بست
شما گفته بودي اگه فيل برنامه ي اصلي رو به يكي از سرويس هاي ويندوز تعغيير نام بديد ويندوز اشتباه مي گيره من ميگم اينطوري نيست اشتباه نمي گيره و براحتي بسته ميشه
سلام.
منم گفتم مطمنی؟ یه تست بکن.

این یه روش قدیمیه و همه حتی آماتور ها میدونن تو ویندوز xp میشه با اسم هایی مثل lsass یا Services یا.. تسک منیجر رو فریب داد و همان طور که گفتم تسک منیجر اسم پروسه مورد نظر رو با پروسه های سیستمی اشتباه میگیره. روش بستنش رو هم عرض کردم tskill هست.

شاید شما با ویندوز ویستا چک میکنی و به اشتباه میفتی.
ضمنا لطف کنید مقاله که آماده شد این جا قرار بدید. دیگه نیازی به گزارش هنگام کار نیست.

بهرام جان میدونید که postmessage یه ای پی آی هست. ما میتونیم با فرستادن هندل پنجره مورد نظرمون به این ای پی آی و پارامتر wm_close پنجره مورد نظر ببندیم. یه چیزی مثل end task کردن. در این روش دیگه تابع terminate process دخالتی نداره.

A H P
31-12-2008, 20:41
سلام.
منم گفتم مطمنی؟ یه تست بکن.

این یه روش قدیمیه و همه حتی آماتور ها میدونن تو ویندوز xp میشه با اسم هایی مثل lsass یا services یا.. تسک منیجر رو فریب داد و همان طور که گفتم تسک منیجر اسم پروسه مورد نظر رو با پروسه های سیستمی اشتباه میگیره. روش بستنش رو هم عرض کردم tskill هست.

شاید شما با ویندوز ویستا چک میکنی و به اشتباه میفتی.
ضمنا لطف کنید مقاله که آماده شد این جا قرار بدید. دیگه نیازی به گزارش هنگام کار نیست.

بهرام جان میدونید که postmessage یه ای پی آی هست. ما میتونیم با فرستادن هندل پنجره مورد نظرمون به این ای پی آی و پارامتر wm_close پنجره مورد نظر ببندیم. یه چیزی مثل end task کردن. در این روش دیگه تابع terminate process دخالتی نداره.
با سلام
من قبول ندارم دارم میگم ویندوز اشتباه نمی گیره تست کردم تو چه را قبول نمی کنی ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با ایکس پی تست کردم داری یه کاری می کنی فیلم بزارم با این روش نمیشه ویندوز رو فریب داد
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!

بهرام_62
31-12-2008, 21:05
بهرام جان میدونید که postmessage یه ای پی آی هست. ما میتونیم با فرستادن هندل پنجره مورد نظرمون به این ای پی آی و پارامتر wm_close پنجره مورد نظر ببندیم. یه چیزی مثل end task کردن. در این روش دیگه تابع terminate process دخالتی نداره.
میشه یک برنامه نمونه بزارین؟

بهرام_62
31-12-2008, 21:09
در مورد lsass یا services حق با پیمانه من تست کردم تسک منیجر نتونست ببنده

Payman_62
31-12-2008, 22:02
در مورد lsass یا services حق با پیمانه من تست کردم تسک منیجر نتونست ببنده
سلام.
همون طور که گفتم این یه ترفند قدیمیه که خیلیا بلدن. نمیخواد قبول کنه. مهم نیست.

در مورد postmessage که گفتی نمونه کد بذارم. این یه نمونه کد.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که به جای me.hwnd میشه هندل هر پنجره ای رو داد. در این صورت اون پنجره بسته میشه و اگه تک پنجره یه پروسه باشه کل پروسه بسته میشه و اگه همه پنجره های یه پروسه رو به همین صورت ببندیم کل پروسه بسته میشه. حالا اگه شما terminateprocess رو هوک کرده باشید PostMessageA شما رو دور میزنه و برنامتون رو میبنده.
البته میشه برنامه ای ساخت که اصلا پنجره یا بهتره بگم فرمی نداشته باشه. مثل سرویس ها. من قبلا همچین برنامه هایی نوشته بودم. هم با ویبی هم با c#. یه سرویس که اصلا فرمی نداره.
تا اون جا که یادمه قبلا بچه ها تصور میکردن ماژول ها هندل ندارن. یعنی پروسه ای که فقط یه ماژول باشه و فرم نداشته باشه هندل نداره. ولی سر همون پروژه ها بود که به این نتیجه رسیدیم که ماژول ها هم هندل دارن.

Payman_62
31-12-2008, 22:33
سلام.
اینم بگم تابع PostMessageA فقط روی فرم ها جواب میده. یعنی اگه برنامه ای فقط یه ماژول باشه ماژولش هندل داره ولی نمیشه چیزی بهش پست کرد. درستشم همینه. باید یه فرمی باشه تا دستورات روش اعمال بشه.
پس با PostMessageA نمیشه چنین برنامه هایی رو بست که فرم ندارن و فقط ماژولن.

A H P
01-01-2009, 10:26
با سلام
ابتدا با عذر خواهی از جناب پیمان و بهرام باید بگم حق با شما است و من بدون تست قضاوت می کردم (تو ی این فکر ها نبودم)
این هم سورس کد مورد نظرتون :(آنتی ویروس من هم کاسپرسکی هست هیچ گیری بهش نداد)
لینک سرور راپید شیر :
با حجم : 8 kb

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
لینک دانلود (مستقیم) سرور Freehostina :
با حجم : 8 kb

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببخشید اگه تو گذاشتن مطلب تاخیر داشتم
ضمناً پیمان جان ببخشید

Payman_62
01-01-2009, 13:01
سلام.
ahp جان خوب برنامه مردم رو به اسم خودت کامپایل میکنی ها. لااقل یه تغییر کوچولو تو کدش میدادی بتونیم بگیم کار خودته.
اصل این برنامه متعلق به آقای Behzad khazama است که میتونید از این جا دانلود کنید.

روش کار این برنامه به این صورته که پروسه مورد نظر رو تو یه تایمر از تسک منیجر حذف میکنه. ولی روش جالبی نیست. چون تسک منیجر که ریفرش میشه پروسه بر میگرده و دوباره برنامه ما پروسه رو مخفی میکنه که این عمل باعث میشه تسک منیجر هی چشمک بزنه و همین قضیه بسیار شک بر انگیزه.
برای حل این مشکل میشه از تابع killtimer استفاده کرد که بهزاد تو ورژن جدید برنامش به برنامه اضافه کرده بود. ولی مشکل اون روش اینه که وقتی به تب performance میریم نوار مغزی cpu و میزان استفاده از رم رو ثابت و بدون حرکت میبینم و باز این قضیه شک برانگیزه.

MichaelQwerty
02-01-2009, 05:54
لطفا در رابطه با موضوع بحث کنید سوال من مخفی کردن proces نیست
برنامه من ویروس نیست
سوال من جلوگیری از End process هستش
مثل برنامه deep freeze

Payman_62
02-01-2009, 12:16
سلام.
MichaelQwerty جان بهت که گفتم. رو توابع هوک کار کن.

MichaelQwerty
03-01-2009, 07:32
لینکهایی که در رابطه با hook گذاشتین ظاهرا برای Vb6 نیست

Payman_62
03-01-2009, 12:54
سلام.
هوک با ویبی مشکله. به همین دلیل سورس در این زمینه برای ویبی کم پیدا میشه. خودت سرچ کن ببین چیزی پیدا میکنی.

*Batman*
04-01-2009, 03:23
سلام.
RegisterServiceProcess هم هست.منتها چون فقط روی ویندوزهای 9x کار میکنه عملا به درد نمیخوره.

این دو تا لینکو پیدا کردم.
برنامه ها با VB6 نوشته شدن.من سورس ها رو ندیدم چون VB6 ندارم.
هر دو برنامه برای مخفی کردن process ها نوشته شدن.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



لطفا در رابطه با موضوع بحث کنید سوال من مخفی کردن proces نیست



هر گردی که گردو نیست دوست من .اونا سرویس هستن.سرویس بسته نمیشه.
باید بری تو قسمت سرویسها ببندیش.
موفق باشی.

راستی اینجا هم انگار یه چیزایی نوشته.برو ببین:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MichaelQwerty
04-01-2009, 19:09
ممنون آقای بتمن
اگه اینطور بود خیلی خوب میشد (هر گردی که گردو نیست دوست من .اونا سرویس هستن.سرویس بسته نمیشه.)
توضیح میدید که hook چطور جلوی end process شدن را می گیرد این دو چه رابطه ای با هم دارند

*Batman*
04-01-2009, 21:07
Hook جلوی بسته شدن Process را نمیگیره.یا بهتره بگم من تابحال چنین چیزی ندیدم.
Hook رو نمیشه تو یک خط توضیح داد.لینک زیر در مورد Hook توضیحات خوبی داده.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مخفی کردن Process برنامه بیشتر از این دو راه استفاده میشه:

1-Process برنامه خودتون را به یک Process سیتمی تزریق کنید.(اگر حجم فایل اجرایی زیاد باشه این کار صحیح نیست)

2-از API Hook استفاده کنید. Rootkit ها هم اینکارو میکنن.

یه راه دیگه اش هم نوشتن درایور هست.

hoax3r
04-01-2009, 22:15
در ادامه صحبت دوستان و در مورد کار شما که فکر می کردم تا الان به نتیجه رسیدین!!؟
برای اینکه پروست بسته نشه باید تابعی رو که قبلا گفتم هوک کنی، هر چی api سطح پایین باشه بهتره اینجور توابع با پیشوند Nt یا Zw هستن
برای اینکه یه api رو هوک کنی (در ساسر سیستم یا system-wide) دو تا کار میتونی بکنی
1 - ساختن یه dll و تزریغش به پروسه ها( که این خودش روش های متفاوتی داره)
2 - این رو هم که جناب *Batman* گفتن ساختن درایور در سطح کرنل، این مورد رو عموما فایروال ها و آنتی ویروسها استفاده میکنند
پس دور از انتظار نیست که بعضی توابع توسط این جور برنامه ها هوک شده باشه که این در مورد روش اول هم صادقه
اگه اینجوری بود اول api رو اصطلاحا Unhook میکنی اینکه چطور اینکار انجام میشه باید در مورد EAT فایل اجرایی یه مقدار جستجو کنید که چیه و به چه درد میخوره
بعد آدرس api که هوک شده رو در EAT پیدا میکنی و بایتهای اصلی رو سر جاش میزاری و خودت هوکش میکنی
 
شما همین روش اول رو انجام بدین به اینصورن که بعد تزریغ dll به پروسه ها باید آدرس اون api
رو پیدا کنی چند بایت اولش رو با یه دستور جامپ به تابعی که توی dll قرار دادی بفرستی و پارامتهای
api رو برسی کنی اگه با شناسه (PID) پروسه خودت یکی بود اجازه ی بسته شدن نمیدی
 
و برای اینکه این قضیه براتون روشنتر بشه کتاب Rootkits: Subverting the Windows Kernel رو بد نیست بخونید که
توضیحات زیادی در مورد هوک به اضافه مثال داده و اینکه چطور dll تون رو تزریغ کنید و کلی چیزای دیگه
 
متاسفانه خیلی تو این زمینه کار نکردم که سورس بهتون بدم، ولی خوبه خودتون پیش قدم بشین روی این قضیه
بیشتر کار کنید و نتایجتون رو بزارین تا بقیه هم استفاده ببرن
 
شاد باشید

ADRIEN
04-01-2009, 22:58
با سلام
توی صفحات قبل دیدم برای مخفی کردن برنامه از تب Applications تسک منیجر سورس گذاشته شده بود در حالی که با کد App.TaskVisible = False میشه برنامه رو از اون تب مخفی کرد اگه خواستین از تب Processes هم مخفی کنید بگید تا یه سورس بزارم
MichaelQwerty نمیدونم شما چرا برنامتو مخفی نمیکنی ؟
همونجور که دوستان گفتن هوک بحث سنگینی هستش
امیدوارم این مبحث ادامه پیدا کنه

MichaelQwerty
04-01-2009, 23:14
چون نرم افزارهایی هستن که پروسه مخفی رو نمایش میدن ولی اگه یه کد قوی داری بزار من برای مخفی کردن از این کدها استفاده می کنم که زیاد قوی نیست
Private Type bkh
flag As Long
psz As Long
lParam As Long
pt As Long
vkDirection As Long
End Type
Private Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Sub Hide_Process(Name As String)
Dim pName As Long
Dim pType As Long
Dim l As Long
Dim Tid As Long
Dim hTid As Long
Dim pid As Long
Dim h As Long
Dim i As Long
Dim hProcess As Long
Dim f As bkh
Dim s As String
Dim bkh() As Byte
h = FindWindow(vbNullString, "Windows Task Manager")
KillTimer h, 0
h = FindWindowEx(h, 0, "#32770", vbNullString)
h = FindWindowEx(h, 0, "SysListView32", vbNullString)
If h = 0 Then Exit Sub
f.flag = 8 Or &H20
Call GetWindowThreadProcessId(h, pid)
hProcess = OpenProcess(1082, 0, pid)
bkh = StrConv(Name, vbFromUnicode)
pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)
WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l
f.psz = pName
pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)
WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l
i = SendMessage(h, &H1000 + 13, 0, pType)
If i <> -1 Then SendMessage h, &H1000 + 8, i, 0
VirtualFreeEx hProcess, pType, Len(f), &H8000
VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000
End Sub
Private Sub Timer1_Timer()
Hide_Process CStr(App.EXEName & ".exe")
End Sub

MichaelQwerty
21-01-2009, 22:06
سلام دوستان عزیز
در پست های قبلی اشاره شده بود که از راه hook میشه جلوی end process را گرفت
آیا منظور اینه که وقتی کاربر ctrl+Alt+Del گرفت با استفاده از hook تشخیص بدیم و windows task manager را ببندیم؟؟!

*Batman*
22-01-2009, 00:01
سلام.
خیر . منظور اینه که توابعی نظیر NtQuerySystemInformation را Hook کنیم.
بستن Task Manager که راحته و اصلا به درد نمیخوره .

MichaelQwerty
22-01-2009, 10:47
اگر اطلاعت بیشتری داری میشه در این باره بیشتر توضیح بدی آیا سورسی در این باره داری
و این که وقتی از این روش استفاده میشه چه اتفاقی می افته یعنی وقتی کاربر بخواد برنامه رو end process کنه error میده یا نه بسته میشه و دوباره باز میشه

*Batman*
22-01-2009, 23:03
سلام

در مورد Hook TerminateProcess یا Hook ZwTerminateProcess جستجو کنید به یه نتیجه هایی میرسید،
در واقع اگه بتونی این توابع رو اصطلاحا هوک کنی میتونی اینکاری که میخوای انجام بدی
ولی خوب به این راحتی هم نیست و سورس ساده هم در این مورد کم پیدا میشه
من خودم یه کم در این زمینه کار کردم زیاد سورس در این مورد ندارم که بزارم خصوصا برای VB

شاد باشید


با جناب hoax3r کاملا موافقم. سورس در این زمینه به سختی پیدا میشه. مخصوصا برای ویبی. کار با Hook مشکله.
البته غیر از Terminateprocess ای پی آی های دیگه ای هم برای بستن یه پروسه هست. که اگه بخوای هوک کنی باید حواست به همه اونا باشه. مثلا میشه هندل پنجره برنامت رو گرفت و با postmessage برنامه رو بست.

ضمنا آنتی ها به هوک گیر میدن. یعنی اگه آنتی ران باشه اصلا اجازه اجرای برنامت رو نمیده.


منم حرف دوستان رو تایید میکنم.
تو VB و Net. انجام این کار مشکله.
اون API قبلی که نام بردم به درد مخفی کردن میخوره.
اگر Terminateprocess را Hook کنید مشکلتون با TaskManager حل میشه.

به هر حال تو لینک زیر برای VB هم یک سری راهکار ارائه شده.امیدوارم مفید باشه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

*Batman*
23-01-2009, 19:15
فکر کنم این همونه که دنبالشی:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MichaelQwerty
24-01-2009, 12:41
بسیار متشکرم
فقط یه عیب داره اینه که هر جابرنامه رو ببرمش بایدفایل dll رو هم ببرم

Payman_62
24-01-2009, 13:21
سلام.
من برنامه رو ندیدم. ولی اگه از dll استفاده کرده نمیشه گفت با ویبی نوشته شده. مهم dll هست که همه کارارو میکنه.

MichaelQwerty
24-01-2009, 16:14
درسته حق با شماست Dll به زبان cpp نوشته شده است
هر چند برنامه رو توسط یه نرم افزار که به زبان Language: Visual Basic 2008
نوشته شده بود بستم
اما چون process explorer و windows task manager نتونستند ببندن جالبه
یه شخصی گفته بود می تونی برنامه رو طوری بنویسی که اگه process بسته شد سیستم خاموش کنه این راه جالبی مثل Smss.exe ویندوز که بعد از 60 ثانیه سیستم خاموش میکنه (هر چند میشه جلوشو گرفت)
ولی وقتی کاربر End process کنه هیچ رویدادی اتفاق نمی افته!؟
اگه یه برنامه هم کنارش بزاریم که مراقب باشه امکان داره کاربر اول اونو ببنده

*Batman*
24-01-2009, 18:45
کاملا درسته. در واقع از dll injection استفاده شده.
من با خاموش کردن سیستم موافق نیستم.فکر نمیکنم نیازی باشه. یه پیغام ساده کفایت میکنه.
میتونید dll رو به عنوان Resource تو فایل اجرایی قرار بدید و هنگام اجرا اونو Extract کنید و درپایان پاکش کنید.
میشه dll رو تو حافظه هم load کرد.منتها انجامش با VB خیلی وحشتناکه.شایدم اصلا نشه. من واقعا نمیدونم.
اینجا رو ببین :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MichaelQwerty
24-01-2009, 21:15
نقل قول:فکر نمیکنم نیازی باشه. یه پیغام ساده کفایت میکنه.
همون پیغام میشه داد؟
کاربر وقتی end process tree کنه رویدادی رخ نمیده
قرار دادن فایل DLL در داخل برنامه بهترین راه (آقا پیمان به من یاد داده lol):31:

Payman_62
25-01-2009, 01:06
سلام.
آخه مشکلی که هست ممکنه آنتی ویروس ها جلوی اون dll رو بگیرن.