PDA

View Full Version : سوال: عدم دسترسی به قسمت های مدیریتی رجیستری در C#‎؟



l4tr0d3ctism
شنبه 22 اسفند 1394, 10:10 صبح
همینطور که می دونید در رجیستری قسما هایی وجود دارد که پرمیشن کمتری نصبت به قسمت های دیگه دارن

مثل HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Win dows\System

حالا من می خوام یک مقدار را که در این کلید ایجاد شده رو بخونم . با این کد




RegistryKey ourkey = Registry.LocalMachine;
ourkey = ourkey.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows\System", true);
string tmp = (ourkey.GetValue("EnableSmartScreen ")).ToString();



if (tmp == "0")
{


lblevel.Text = (Int32.Parse(lblevel.Text) - 1).ToString();




ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Disabled");
listView1.Items.Add(lvi);

}
else if (tmp == "1")
{


lblevel.Text = (Int32.Parse(lblevel.Text) + 1).ToString();


ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Disabled is Enabled To give user a warning before running downloaded unknown software");
listView1.Items.Add(lvi);

}
else
{


lblevel.Text = (Int32.Parse(lblevel.Text) + 2).ToString();


ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Enabled To give user a warning before running downloaded unknown software");
listView1.Items.Add(lvi);




نمی خوام برم سراغ مباحث اینجکشن و اینفکشن و هوکینگ می خوام ببینم روش قانونی برای این کار وجود داره ی خیر ؟

چون برنامه یک برنامه ی مدیریتی بر پایه ی امنیت هستش نمی خوام هیچگونه هوکینگ و یا اینجکتی انجام بشه روی فرآیندی خاص ؟

M.Hashemi2007
شنبه 22 اسفند 1394, 10:59 صبح
با سلام
فایل exe برنامه را با run as admin اجرا کنید.
احتمالا مشکل حل بشه.
با تشکر

l4tr0d3ctism
شنبه 22 اسفند 1394, 20:54 عصر
خود ویژوال استدیو رو run as administrator می کنم

فایل رو هم tun as admin کردم

می تونم برنامه رو در سطح system اجرا کنم اینجوری درست میشه ولی می خوام روش بهتری باشه البته امیدوارم باشه

alexmcse
یک شنبه 23 اسفند 1394, 06:31 صبح
همینطور که می دونید در رجیستری قسما هایی وجود دارد که پرمیشن کمتری نصبت به قسمت های دیگه دارن

مثل HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Win dows\System

حالا من می خوام یک مقدار را که در این کلید ایجاد شده رو بخونم . با این کد




RegistryKey ourkey = Registry.LocalMachine;
ourkey = ourkey.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows\System", true);
string tmp = (ourkey.GetValue("EnableSmartScreen ")).ToString();



if (tmp == "0")
{


lblevel.Text = (Int32.Parse(lblevel.Text) - 1).ToString();




ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Disabled");
listView1.Items.Add(lvi);

}
else if (tmp == "1")
{


lblevel.Text = (Int32.Parse(lblevel.Text) + 1).ToString();


ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Disabled is Enabled To give user a warning before running downloaded unknown software");
listView1.Items.Add(lvi);

}
else
{


lblevel.Text = (Int32.Parse(lblevel.Text) + 2).ToString();


ListViewItem lvi = new ListViewItem("3");
lvi.SubItems.Add("normal");
lvi.SubItems.Add("Windows smart screen is Enabled To give user a warning before running downloaded unknown software");
listView1.Items.Add(lvi);




نمی خوام برم سراغ مباحث اینجکشن و اینفکشن و هوکینگ می خوام ببینم روش قانونی برای این کار وجود داره ی خیر ؟

چون برنامه یک برنامه ی مدیریتی بر پایه ی امنیت هستش نمی خوام هیچگونه هوکینگ و یا اینجکتی انجام بشه روی فرآیندی خاص ؟

سلام
آموزش ریجستری

http://s6.picofile.com/file/8238764868/Registry.pdf.html

l4tr0d3ctism
سه شنبه 25 اسفند 1394, 08:26 صبح
دوست من مشکل من در کار با رجیستری نیست فقط دسترسی به این قسمت از رجیستری جهت گرفتن مقدار بود

خطای وارده object reference not set to an instance of an object هست

با اایجاد سرویس در سطح system و استفاده از توابع api درست شد ممنون