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開啟註冊表。