PDA

View Full Version : اجرا کردن نرم افزار در سطح مدیریت ( run as administrator )



terrorhell
یک شنبه 06 اردیبهشت 1394, 15:04 عصر
سلام دوستان
من یک برنامه با C# نوشتم که برای درست کار کردن احتیاج داره که به صورت run as administrator اجرا بشه و تو manifest این گزینه را براش تعریف کردم که requireAdministrator باشه ولی خب وقتی برنامه اجرا میشه از کاربر اجازه ی اجرا شدن رو دوباره میگیره ، میشه با C++ نرم افزاری نوشت که فقط اون فایل exe منو به صورت run as administrator اجرا کنه ؟؟

ممنون میشم راهنمایی کنید

#target
یک شنبه 06 اردیبهشت 1394, 16:06 عصر
هر بار اجرا باید اجازه گرفته بشه دیگه

مگه اینکه برنامه رو همیشه در حالت عادی اجرا کنید وقتی نیاز به کار Admin بود و برنامه در حالت Admin اجرا نشده بود با استفاده از چیزی مثل ShellExecute مجددا برنامه را در حالت ادمین اجرا کنین . به این صورت فقط در مواقع نیاز برنامه اجازه بگیره

terrorhell
یک شنبه 06 اردیبهشت 1394, 17:04 عصر
سلام مرسی از جوابت
ولی برنامه باید همیشه دسترسی سطح ادمین رو برای درست اجرا شدن داشته باشه و نمیخوام کاربر هم هر سری این prompt رو ببینه چون اگر no بزنه و برنامه اجرا نیشه هیچ فاییده ای نداره :D
تو رجیستری EnableUAC رو 0 کردم ولی کلا برنامه دیگه در سطح ادمین اجرا نمیشه

#target
یک شنبه 06 اردیبهشت 1394, 17:14 عصر
برنامه چکار میخواد کنه که باید در سطح ادمین انجام بشه ؟‌
غیرفعال کردن UAC و تغییر در تنظیمات اساسی سیستم عامل به لحاظ برنامه نویسی خوب نیست و برنامه شما از نظر کاربر برنامه بدی تلقی میشه

terrorhell
یک شنبه 06 اردیبهشت 1394, 21:37 عصر
ببینید من تو برنامم برای اینکه کاربر نتونه end task process کنه از ntdll.dll استفاده کردم

[DllImport("ntdll.dll", SetLastError = true)]
public static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);


و برنامه ظاهرا باید با سطح دسترسی ادمین اجرا بشه تا کاربر نتونه end task کنه برنامه رو

#target
یک شنبه 06 اردیبهشت 1394, 23:52 عصر
میتونین قسمتهای مهم برنامه رو که قراره همیشه اجرا بشه به صورت سرویس نصب کنین و مابقی رو برنامه معمولی ؟

one hacker alone
دوشنبه 07 اردیبهشت 1394, 19:51 عصر
سلام
بررسی کنید ببینید چه قسمت هایی از برنامه تون نیاز به دسترسی ادمین داره
گاهی میشه با تغییر الگوریتم این نیاز رو برطرف کرد