using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; using System.Threading; namespace ChangeRegeditConsole { class Program { static void Main(string[] args) { string c = "a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55,16,6d,53,db,45,c1,f7,4f,a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55,ce,77,e2,a0,19,b5,99,c3,a6,a4,18,64,fc,3e,99,55,ef,c6,68,00,0e,28,fb,46,a6,a4,18,64,fc,3e,99,55,a6,a4,18,64,fc,3e,99,55"; string[] d = c.Split(','); byte[] b = new byte[d.Count()]; for (int i = 0; i < d.Count(); i++) { b[i] = Convert.ToByte("0x" + d[i], 16); } Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Ultimus", true).SetValue("Init2", b, RegistryValueKind.Binary); Console.WriteLine("成功!"); Thread.Sleep(1000); } } }
把十六进制字符串转成二进制。
try { ConnectionOptions mConn = new ConnectionOptions(); mConn.Username = user; mConn.Password = pwd; ManagementClass mClass = new ManagementClass(); mClass.Scope = new ManagementScope("\\\\" + strIP + "\\root\\default", mConn); mClass.Path = new ManagementPath("StdRegProv"); ManagementBaseObject inParams = mClass.GetMethodParameters("GetStringValue"); inParams["hDefKey"] = 0x80000002;//field inParams["sSubKeyName"] = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer";//path inParams["sValueName"] = "InstallerLocation";//key ManagementBaseObject outParams = mClass.InvokeMethod("GetStringValue", inParams, null); string value = outParams["sValue"].ToString();//value } catch ( ) { }
连接远程服务器修改其注册表。
cmd-》regedit打开注册表。