นี่คือคำสั่ง hivexregedit ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
hivexregedit - ผสานและส่งออกการเปลี่ยนแปลงรีจิสทรีจากไฟล์รูปแบบ regedit
เรื่องย่อ
hivexregedit --merge [--คำนำหน้าคำนำหน้า] [--encoding enc] \
ไฮฟ์ไฟล์ [regfile]
hivexregedit --export [--prefix prefix] คีย์ hivefile> regfile
DESCRIPTION
โปรดทราบว่า hivexregedit เป็นเครื่องมือระดับต่ำสำหรับจัดการไฟล์ไฮฟ์โดยตรง ถึง
ผสานหรือส่งออกการเปลี่ยนแปลงรีจิสทรีไปยังเครื่องเสมือนของ Windows จะดีกว่าที่จะใช้
virt-win-reg(1)
จากไฟล์ไบนารีในเครื่อง ("ไฮฟ์") มีสองโหมด การนำเข้า "--ผสาน" (ผสาน)
เปลี่ยนจากไฟล์รูปแบบ regedit เป็นกลุ่ม คล้ายกับการใช้สวิตช์ "/ s"
ใน Windows regedit.exe
"--export" ส่งออกคีย์รีจิสทรี (เรียกซ้ำ) เป็นรูปแบบ regedit
การเข้ารหัส
"hivexregedit" คาดว่าไฟล์ regedit จะได้รับการเข้ารหัสใหม่ใน local . แล้ว
การเข้ารหัส โดยปกติบนโฮสต์ Linux นี่หมายถึง UTF-8 ที่มีการลงท้ายบรรทัดแบบ Unix ตั้งแต่
ไฟล์ regedit ของ Windows มักเป็น UTF-16LE โดยมีการลงท้ายบรรทัดแบบ Windows คุณอาจต้อง
เพื่อเข้ารหัสใหม่ทั้งไฟล์ก่อนหรือหลังการประมวลผล
ในการเข้ารหัสไฟล์อีกครั้งจากรูปแบบ Windows เป็น Linux (ก่อนประมวลผลด้วย "--merge"
ตัวเลือก) คุณจะทำสิ่งนี้:
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
ไปในทิศทางตรงกันข้ามหลังจากใช้ "--export" และก่อนส่งไฟล์ไปที่ a
ผู้ใช้ Windows ทำสิ่งนี้:
unix2dos < linux.reg | iconv -f utf-8 -t utf-16le > win.reg
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัส โปรดดูที่ ชนะ::ไฮเว็กซ์::regedit(3)
หากคุณไม่แน่ใจเกี่ยวกับการเข้ารหัสปัจจุบัน ให้ใช้ปุ่ม ไฟล์(1) คำสั่ง เวอร์ชันล่าสุดของ
Windows regedit.exe สร้างไฟล์ UTF-16LE โดยลงท้ายบรรทัดแบบ Windows (CRLF) เช่น
นี้:
$ ไฟล์ software.reg
software.reg: ข้อความ Unicode UTF-16 แบบปลายเล็กที่มีบรรทัดยาวมาก
พร้อมขั้วต่อสาย CRLF
ไฟล์นี้จะต้องมีการแปลงก่อนที่คุณจะสามารถ "--ผสาน" ได้
SHELL ใบเสนอราคา
โปรดใช้ความระมัดระวังเมื่อส่งผ่านพารามิเตอร์ที่มี "\" (แบ็กสแลช) ในเชลล์ โดยปกติคุณ
จะต้องใช้ 'เครื่องหมายคำพูดเดียว' หรือแบ็กสแลชคู่ (แต่ไม่ใช่ทั้งสองอย่าง) เพื่อปกป้องพวกเขาจาก
เปลือก
CurrentControlSet เป็นต้น
คีย์รีจิสทรีเช่น "CurrentControlSet" ไม่มีอยู่ในรีจิสทรีของ Windows ที่
ระดับของไฟล์กลุ่ม ดังนั้นคุณจึงไม่สามารถแก้ไขได้
"CurrentControlSet" มักจะเป็นนามแฝงสำหรับ "ControlSet001" ในบางกรณีมัน
อาจอ้างถึงชุดควบคุมอื่น วิธีค้นหาคือดูที่
คีย์ "HKLM\SYSTEM\Select":
$ hivexregedit --export SYSTEM '\ Select'
[\เลือก]
"ปัจจุบัน"=dword:00000001
"ค่าเริ่มต้น"=dword:00000001
"ล้มเหลว"=dword:00000000
"LastKnownGood"=dword:00000002
"ปัจจุบัน" คือสิ่งที่ Windows จะเลือกเมื่อบูท
ในทำนองเดียวกัน อาจจำเป็นต้องเปลี่ยนคีย์ "Current..." อื่นๆ ในเส้นทาง
ตัวอย่าง
$ virt-cat WindowsGuest /Windows/System32/config/software > software.hive
$ hivexregedit -- ส่งออก \
--คำนำหน้า 'HKEY_LOCAL_MACHINE\SOFTWARE'
software.hive '\Microsoft' > ms-keys.reg
$ hivexregedit -- ผสาน system.hive \
--prefix 'HKEY_LOCAL_MACHINE\SYSTEM' เพิ่ม.reg
OPTIONS
--ช่วยด้วย
แสดงความช่วยเหลือ
--debug
เปิดใช้งานการดีบักในไลบรารี hivex สิ่งนี้มีประโยชน์สำหรับการวินิจฉัยจุดบกพร่องและ
ไฟล์กลุ่มที่มีรูปแบบไม่ถูกต้อง
--ผสาน
hivexregedit --merge [--คำนำหน้าคำนำหน้า] [--encoding enc] \
ไฮฟ์ไฟล์ [regfile]
รวม "regfile" (ไฟล์ข้อความรูปแบบ regedit) ลงในกลุ่ม "hivefile" ถ้า "regfile"
ละเว้น จากนั้นโปรแกรมจะอ่านจากอินพุตมาตรฐาน (นอกจากนี้คุณสามารถให้หลาย ๆ
ไฟล์อินพุต)
"--prefix" ระบุคำนำหน้ารีจิสทรีของ Windows จำเป็นแทบทุกครั้งเพื่อ
ใช้สิ่งนี้เมื่อจัดการกับไฟล์กลุ่มจริง
"--encoding" ระบุการเข้ารหัสสำหรับสตริงที่ไม่ได้ทำเครื่องหมายในอินพุต มีค่าเริ่มต้นเป็น
"UTF-16LE" ซึ่งควรใช้งานได้กับ Windows เวอร์ชันล่าสุด ความเป็นไปได้อีกอย่างคือ
เพื่อใช้ "ASCII"
--ส่งออก
hivexregedit --export [--prefix prefix] คีย์ hivefile> regfile
"key" คือเส้นทางภายในกลุ่ม "hivefile" (คีย์ไม่ควรมีคำนำหน้า
และควรยกมาเพื่อป้องกันแบ็กสแลชจากเชลล์) คีย์ถูกส่งออก
วนซ้ำไปยังเอาต์พุตมาตรฐานในรูปแบบข้อความ regedit
"--prefix" ระบุคำนำหน้ารีจิสทรีของ Windows จำเป็นแทบทุกครั้งเพื่อ
ใช้สิ่งนี้เมื่อจัดการกับไฟล์กลุ่มจริง
--คำนำหน้า อุปสรรค
ไฟล์ Hive และชื่อคีย์ Windows Registry มีความเกี่ยวข้องทางอ้อม ตัวอย่างเช่น ภายใน
กลุ่มซอฟต์แวร์ คีย์ทั้งหมดจะถูกเก็บไว้โดยสัมพันธ์กับ "HKEY_LOCAL_MACHINE\SOFTWARE"
ดังนั้น "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" จึงปรากฏในไฟล์ไฮฟ์เป็น "\Microsoft"
รูปแบบรังเองไม่ได้เก็บคำนำหน้านี้ ดังนั้นคุณต้องระบุตาม
ความรู้ภายนอก (virt-win-reg(1) เหนือสิ่งอื่นใด รู้เรื่องนี้แล้ว)
โดยปกติแล้วการส่งพารามิเตอร์ "--prefix ." ก็เพียงพอแล้ว
'HKEY_LOCAL_MACHINE\SOFTWARE'" หรือคล้ายกันเมื่อทำการผสานและส่งออก
--การเข้ารหัส UTF-16LE|แอสกี
เมื่อรวม (เท่านั้น) คุณอาจต้องระบุการเข้ารหัสสำหรับสตริงที่จะใช้ใน
ไฟล์ไฮฟ์ มีคำอธิบายโดยละเอียดใน "ENCODING STRINGS" ใน
ชนะ::ไฮเว็กซ์::regedit(3)
ค่าเริ่มต้นคือการใช้ UTF-16LE ซึ่งควรใช้งานได้กับ Windows เวอร์ชันล่าสุด
--unsafe-printable-สตริง
เมื่อส่งออก (เท่านั้น) ให้ถือว่าสตริงเป็น UTF-16LE และพิมพ์เป็นสตริงแทน
ของลำดับเลขฐานสิบหก ลบ codepoint ศูนย์สุดท้ายออกจากสตริง หากมี
สิ่งนี้ไม่ปลอดภัยและไม่ได้รักษาความถูกต้องของสตริงในกลุ่มเดิมสำหรับ
เหตุผลต่างๆ:
· สมมติว่าการเข้ารหัสดั้งเดิมคือ UTF-16LE สตริงและสตริง ASCII ใน other
การเข้ารหัสจะเสียหายจากการเปลี่ยนแปลงนี้
· ถือว่าทุกอย่างที่มีประเภท 1 หรือ 2 เป็นสตริงจริงๆ และนั่น
อย่างอื่นไม่ใช่สตริง แต่ฟิลด์ประเภทในกลุ่มจริงไม่น่าเชื่อถือ
· สูญเสียข้อมูลเกี่ยวกับว่าจุดรหัสศูนย์ตามสตริงในกลุ่ม
หรือไม่
ทั้งหมดนี้เกิดขึ้นเพราะรังผึ้งเองไม่มีข้อมูลว่าสตริงเป็นอย่างไร
เข้ารหัสแล้ว (ดู "ENCODING STRINGS" ใน ชนะ::ไฮเว็กซ์::regedit(พ.ศ. 3)).
คุณควรใช้ตัวเลือกนี้สำหรับการแฮ็กอย่างรวดเร็วและแก้ไขข้อบกพร่องของเนื้อหากลุ่มเท่านั้น
และ ไม่เคย ใช้หากเอาต์พุตจะถูกส่งผ่านไปยังโปรแกรมอื่นหรือเก็บไว้ใน
รังอื่น
ใช้ hivexregedit ออนไลน์โดยใช้บริการ onworks.net
