View Full Version : مشکل با تابع GetHandleInformation
r00tkit
چهارشنبه 28 مهر 1389, 20:49 عصر
سلام
در کد زیر هر کاری می کنم بازم fHandleIsInheritable صفر هستش در صورتی که باید 1 باشه
DWORD f;
SetHandleInformation(GetCurrentProcess(),HANDLE_FL AG_INHERIT,HANDLE_FLAG_INHERIT);
GetHandleInformation(GetCurrentProcess(),&f);
BOOL fHandleIsInheritable = (0 != (f& HANDLE_FLAG_INHERIT));
milad36_cpp
چهارشنبه 28 مهر 1389, 21:31 عصر
SetHandleInformation موفق به تغییر در Handle نمیشه و 0 رو بر میگردونه .
علتش هم که میشه با ()GetLastError فهمید.
GetLastError مقدار 0x5 رو برمیگردونه که یعنی Acess Denied.
r00tkit
چهارشنبه 28 مهر 1389, 21:49 عصر
دمت گرم ، عجب سوتی ای دادم:قهقهه::قهقهه:
حالا چرا Acess Denied?
milad36_cpp
چهارشنبه 28 مهر 1389, 21:59 عصر
اونطوری که تو MSDN نوشته بود GetCurrentProcess یه Handle معمولی برنمیگردونه .
بلکه یه Handle خاص برمیگردونه که همیشه مقدار 0xFFFFFFFF یا 1- داره ، که در واقع یه استثنا هست.
و تابع SetHandleInformation میتونه Handle های Valid رو تغییر بده نه Handle های مخصوص رو.
r00tkit
چهارشنبه 28 مهر 1389, 22:17 عصر
با توجه به اینها نباید در تئوری مشکل پیش بیاد
The calling process can use a pseudo handle to specify its own process whenever a process handle is required
و
This handle has the maximum possible access to the process object.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.