PDA

View Full Version : حذف یک مقداردر رجیستری که اجازه ی دستری به آن نیست ؟؟



Tintirio
چهارشنبه 25 خرداد 1390, 19:04 عصر
با سلام خدمت همه ی برنامه نویسان عزیز..

من میخواستم یک فایلی رو از قسمت

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
پاک کنم اما هر بار که کد
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\Fonts",true);

رو میزرام به مقدار True گیر میده میزنه اجازه ی دسترسی به این رجیستری کی وجود ندارد...
میخواستم ببینم چیکار کنم ؟؟؟؟؟

AlgorithmX
چهارشنبه 25 خرداد 1390, 19:20 عصر
در کلاس Program.cs این رو بنویس:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
using System.Security.Principal;

namespace WindowsFormsApplication14
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);

if (!IsRunAsAdmin())
{

ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = Environment.CurrentDirectory;
proc.FileName = Application.ExecutablePath;
proc.Verb = "runas";

try
{
Process.Start(proc);
return;

}
catch
{
return;
}
Application.Exit();

}
Application.Run(new Form1());
}
static bool IsRunAsAdmin()
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(id);
return principal.IsInRole(WindowsBuiltInRole.Administrato r);
}
}
}


تابرنامت به صورت Admin اجرا بشه!
شاید درست بشه!

Tintirio
چهارشنبه 25 خرداد 1390, 22:39 عصر
مرسی درست شد ....:تشویق:

saman6384
چهارشنبه 25 خرداد 1390, 23:32 عصر
در مورد اون runas یه توضیح میدی؟
verb ها چه کاربرد و مزیتی دارن

AlgorithmX
پنج شنبه 26 خرداد 1390, 10:18 صبح
در مورد اون runas یه توضیح میدی؟
verb ها چه کاربرد و مزیتی دارن

proc یک مغییر از نوع ProcessStartInfo است که خاصیت verb اون صفت این متقیر رو تعیین می کنه! که در اینجا برای نوع اجرای برنامه هست.

saman6384
پنج شنبه 26 خرداد 1390, 11:29 صبح
این runas برای چه کاریه؟
مثلا print میگه واسه پیرینته! runas چی میگه؟

AlgorithmX
پنج شنبه 26 خرداد 1390, 11:33 صبح
این runas برای چه کاریه؟
مثلا print میگه واسه پیرینته! runas چی میگه؟

runas )Run As) برای
که در اینجا برای نوع اجرای برنامه هست.

r00tkit
پنج شنبه 26 خرداد 1390, 12:33 عصر
به جای این کار ( نوشتن کلی کد و ایجاد یه پروسس جدید ) از



<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
<v3:security>
<v3:requestedPrivileges>
<v3:requestedExecutionLevel level="highestAvailable"/>
</v3:requestedPrivileges>
</v3:security>
</v3:trustInfo>
</assembly>


استفاده کنید
http://en.wikipedia.org/wiki/User_Account_Control

پ.ن: اگه این Key توسط یه درایور محافظت بشه دیگه شانسی نداری ( hook کردن ZwOpenKey تو کرنل یا هر چیز دیگه )

AlgorithmX
پنج شنبه 26 خرداد 1390, 14:26 عصر
به جای این کار ( نوشتن کلی کد و ایجاد یه پروسس جدید ) از



<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
<v3:security>
<v3:requestedPrivileges>
<v3:requestedExecutionLevel level="highestAvailable"/>
</v3:requestedPrivileges>
</v3:security>
</v3:trustInfo>
</assembly>


استفاده کنید
http://en.wikipedia.org/wiki/User_Account_Control

پ.ن: اگه این Key توسط یه درایور محافظت بشه دیگه شانسی نداری ( hook کردن ZwOpenKey تو کرنل یا هر چیز دیگه )


این رو باید داخل یک فایل XML نوشت ( ممنون میشم راهنمای استفادش رو هم بزاری؟ )

saman6384
پنج شنبه 26 خرداد 1390, 14:53 عصر
نه عزیز
فایل جدید نمیخواد درس کنی!
تو سایتی که معرفی کردن طرز استفادش هس

باید تو فولدر debug یا release برنامتون فایلی که آخرش manifest داره رو باز کنید! و این تغییرات رو توش بدید

AlgorithmX
پنج شنبه 26 خرداد 1390, 15:07 عصر
این رو باید داخل یک فایل XML نوشت ( ممنون میشم راهنمای استفادش رو هم بزاری؟ )


نه عزیز
فایل جدید نمیخواد درس کنی!
تو سایتی که معرفی کردن طرز استفادش هس

باید تو فولدر debug یا release برنامتون فایلی که آخرش manifest داره رو باز کنید! و این تغییرات رو توش بدید

من این کاری که فرمودین کردم! اما خبری از Yes/No نبود! حالا برنامه من Admin اجرا شده!؟
اگر آره یک سوالی (من در یک آموزش نحوه اجرای ادمین برنامه دیدم که یک تعدادی متن مثن این داده بود و گفته بود اون رو با اسم برنامم + manifest در کنار برنامم ذخیره کنم و همیشه بایست اون فایل هم کنار برنامه من باشه!) حالا این فایل هم باید همیشه در کنار برنامه من بمونه!؟

r00tkit
پنج شنبه 26 خرداد 1390, 15:49 عصر
توی پروژت کلیک کن بعد توی add روی new item رو بزن و بعد یه فایل از نوع application manifest file به پروژه اضافه کن داخل فایل رو تغییر بده به ان چیزی که من نوشتم

اینم بحون :

http://msdn.microsoft.com/en-us/library/aa375632%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/bb756929.aspx


باید تو فولدر debug یا release برنامتون فایلی که آخرش manifest داره رو باز کنید! و این تغییرات رو توش بدید
برداشتی که از متنت می شه اینه که فایل manifest باید کنار برنامه باشه درصورتی که فایل داخل برنامه جاسازی می شه

خوشا ان روز هایی که منم برنامه نویس سی شارپ بودم

saman6384
پنج شنبه 26 خرداد 1390, 19:34 عصر
توی پروژت کلیک کن بعد توی add روی new item رو بزن و بعد یه فایل از نوع application manifest file به پروژه اضافه کن داخل فایل رو تغییر بده به ان چیزی که من نوشتم

اینم بحون :

http://msdn.microsoft.com/en-us/library/aa375632%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/bb756929.aspx


برداشتی که از متنت می شه اینه که فایل manifest باید کنار برنامه باشه درصورتی که فایل داخل برنامه جاسازی می شه

خوشا ان روز هایی که منم برنامه نویس سی شارپ بودم

حق با شماس
من اشتباه کردم!
آخه تو ویکی ننوشته بود باید اضافه بشه!
من معذرت میخوام

AlgorithmX
پنج شنبه 26 خرداد 1390, 21:39 عصر
توی پروژت کلیک کن بعد توی add روی new item رو بزن و بعد یه فایل از نوع application manifest file به پروژه اضافه کن داخل فایل رو تغییر بده به ان چیزی که من نوشتم

اینم بحون :

http://msdn.microsoft.com/en-us/library/aa375632%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/bb756929.aspx


برداشتی که از متنت می شه اینه که فایل manifest باید کنار برنامه باشه درصورتی که فایل داخل برنامه جاسازی می شه

خوشا ان روز هایی که منم برنامه نویس سی شارپ بودم


انجام دادم ولی Yes/No ای نپرسید آیا برنامه ما ادمین اجرا شده؟

r00tkit
جمعه 27 خرداد 1390, 21:21 عصر
چک کن ببین الان ادمینی یا نه