ນີ້ແມ່ນຄໍາສັ່ງ hivexregedit ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
hivexregedit - ລວມແລະສົ່ງອອກການປ່ຽນແປງ Registry ຈາກໄຟລ໌ regedit-format.
ສະຫຼຸບສັງລວມ
hivexregedit --merge [--prefix prefix] [-- encoding enc] \
hivefile [regfile]
hivexregedit --export [--prefix prefix] hivefile key > regfile
ລາຍລະອຽດ
ກະລຸນາສັງເກດ hivexregedit ເປັນເຄື່ອງມືລະດັບຕ່ໍາສໍາລັບການຈັດການໄຟລ໌ hive ໂດຍກົງ. ເຖິງ
merge ຫຼືສົ່ງອອກການປ່ຽນແປງການລົງທະບຽນກັບ Windows virtual machines ມັນດີກວ່າທີ່ຈະໃຊ້
virt-win-reg(1).
ເນື່ອງຈາກໄຟລ໌ຖານສອງ ("hive"), ມີສອງໂຫມດ. "--merge" ການນໍາເຂົ້າ (merges)
ການປ່ຽນແປງຈາກໄຟລ໌ regedit-format ເຂົ້າໄປໃນ hive. ມັນຄ້າຍຄືກັບການໃຊ້ປຸ່ມ "/s".
ໃນ Windows regedit.exe.
"--export" ສົ່ງອອກກະແຈ Registry (recursively) ເຂົ້າໄປໃນຮູບແບບ regedit.
ກຳລັງເຂົ້າລະຫັດ
"hivexregedit" ຄາດວ່າໄຟລ໌ regedit ໄດ້ຖືກເຂົ້າລະຫັດຄືນໃຫມ່ຢູ່ໃນທ້ອງຖິ່ນແລ້ວ
ການເຂົ້າລະຫັດ. ປົກກະຕິແລ້ວໃນ Linux hosts, ນີ້ຫມາຍຄວາມວ່າ UTF-8 ທີ່ມີເສັ້ນສິ້ນສຸດແບບ Unix. ນັບຕັ້ງແຕ່
ໄຟລ໌ Windows regedit ມັກຈະຢູ່ໃນ 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
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການເຂົ້າລະຫັດ, ເບິ່ງ ຊະນະ::Hivex::Regedit(3).
ຖ້າທ່ານບໍ່ແນ່ໃຈກ່ຽວກັບການເຂົ້າລະຫັດປະຈຸບັນ, ໃຫ້ໃຊ້ ເອກະສານ(1) ຄໍາສັ່ງ. ຮຸ່ນຫຼ້າສຸດຂອງ
Windows regedit.exe ຜະລິດໄຟລ໌ UTF-16LE ທີ່ມີ Windows-style (CRLF) line endings, ເຊັ່ນ:
ນີ້:
$ file software.reg
software.reg: Little-endian UTF-16 ຂໍ້ຄວາມ Unicode, ມີເສັ້ນຍາວຫຼາຍ,
ກັບ CRLF line terminators
ໄຟລ໌ນີ້ຈະຕ້ອງການການແປງກ່ອນທີ່ທ່ານຈະສາມາດ "--merge" ມັນ.
SHELL ອ້າງອີງ
ຈົ່ງລະມັດລະວັງໃນເວລາຜ່ານພາລາມິເຕີທີ່ມີ "\" (backslash) ໃນແກະ. ປົກກະຕິແລ້ວທ່ານ
ຈະຕ້ອງໃຊ້ 'ວົງຢືມດຽວ' ຫຼືສອງ backslashes (ແຕ່ບໍ່ແມ່ນທັງສອງ) ເພື່ອປົກປ້ອງພວກມັນ
ແກະ.
ກະແສໄຟຟ້າ ແລະອື່ນໆ
ກະແຈ Registry ເຊັ່ນ "CurrentControlSet" ບໍ່ມີຢູ່ໃນ Windows Registry ແທ້ໆ.
ລະດັບຂອງໄຟລ໌ hive, ແລະດັ່ງນັ້ນ, ທ່ານບໍ່ສາມາດປັບປຸງແກ້ໄຂເຫຼົ່ານີ້.
"CurrentControlSet" ປົກກະຕິແລ້ວແມ່ນນາມແຝງສໍາລັບ "ControlSet001". ໃນບາງສະຖານະການມັນ
ອາດຈະຫມາຍເຖິງຊຸດຄວບຄຸມອື່ນ. ວິທີການເພື່ອຊອກຫາແມ່ນການເບິ່ງ
ປຸ່ມ "HKLM\SYSTEM\ເລືອກ":
$ hivexregedit --export SYSTEM '\Select'
[\ເລືອກ]
"ປະຈຸບັນ"=dword:00000001
"ຄ່າເລີ່ມຕົ້ນ"=dword:00000001
"ລົ້ມເຫລວ"=dword:00000000
"LastKnownGood"=dword:00000002
"ປະຈຸບັນ" ແມ່ນອັນທີ່ Windows ຈະເລືອກເມື່ອມັນບູດ.
ເຊັ່ນດຽວກັນ, ກະແຈ "ປະຈຸບັນ..." ອື່ນໃນເສັ້ນທາງອາດຈະຕ້ອງຖືກປ່ຽນແທນ.
EXAMPLE
$ virt-cat WindowsGuest /Windows/System32/config/software > software.hive
$ hivexregedit --ສົ່ງອອກ \
--prefix 'HKEY_LOCAL_MACHINE\SOFTWARE' \
software.hive '\Microsoft' > ms-keys.reg
$ hivexregedit --merge system.hive \
--prefix 'HKEY_LOCAL_MACHINE\SYSTEM' adds.reg
OPTIONS
- ຊ່ວຍ
ສະແດງການຊ່ວຍເຫຼືອ.
--debug
ເປີດໃຊ້ການດີບັກໃນຫ້ອງສະໝຸດ hivex. ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການວິນິດໄສແມງໄມ້ແລະ
ໄຟລ໌ hive ທີ່ບໍ່ຖືກຕ້ອງ.
--ລວມເຂົ້າກັນ
hivexregedit --merge [--prefix prefix] [-- encoding enc] \
hivefile [regfile]
ລວມ "regfile" (ໄຟລ໌ຂໍ້ຄວາມຮູບແບບ regedit) ເຂົ້າໄປໃນ hive "hivefile". ຖ້າ "regfile"
ຖືກລະເວັ້ນ, ຫຼັງຈາກນັ້ນໂຄງການຈະອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານ. (ນອກຈາກນັ້ນ, ທ່ານສາມາດໃຫ້ຫຼາຍ
ໄຟລ໌ປ້ອນ).
"--prefix" ກໍານົດຄໍານໍາຫນ້າຂອງ Windows Registry. ມັນເປັນສິ່ງຈໍາເປັນເກືອບສະເຫມີທີ່ຈະ
ໃຊ້ນີ້ໃນເວລາທີ່ຈັດການກັບໄຟລ໌ hive ທີ່ແທ້ຈິງ.
"--encoding" ກໍານົດການເຂົ້າລະຫັດສໍາລັບສະຕຣິງທີ່ບໍ່ໄດ້ຫມາຍຢູ່ໃນວັດສະດຸປ້ອນ. ມັນຕັ້ງໄວ້ໃນຕອນຕົ້ນ
"UTF-16LE" ເຊິ່ງຄວນເຮັດວຽກສໍາລັບ Windows ຮຸ່ນທີ່ຜ່ານມາ. ຄວາມເປັນໄປໄດ້ອີກຢ່າງຫນຶ່ງແມ່ນ
ການນໍາໃຊ້ "ASCII".
--ສົ່ງອອກ
hivexregedit --export [--prefix prefix] hivefile key > regfile
"key" ແມ່ນເສັ້ນທາງພາຍໃນ hive "hivefile". (ຄີບໍ່ຄວນມີຄໍານໍາຫນ້າໃດໆ
ແລະຄວນຈະຖືກອ້າງອີງເພື່ອປ້ອງກັນ backslashes ຈາກ shell). ທີ່ສໍາຄັນແມ່ນສົ່ງອອກ,
recursively, ກັບຜົນຜະລິດມາດຕະຖານໃນຮູບແບບ regedit ຂໍ້ຄວາມ.
"--prefix" ກໍານົດຄໍານໍາຫນ້າຂອງ Windows Registry. ມັນເປັນສິ່ງຈໍາເປັນເກືອບສະເຫມີທີ່ຈະ
ໃຊ້ນີ້ໃນເວລາທີ່ຈັດການກັບໄຟລ໌ hive ທີ່ແທ້ຈິງ.
-- ຄໍານໍາຫນ້າ ຄຳ ນຳ ໜ້າ
ໄຟລ໌ Hive ແລະ Windows Registry ຊື່ທີ່ສໍາຄັນແມ່ນກ່ຽວຂ້ອງທາງອ້ອມ. ຕົວຢ່າງ, ພາຍໃນ
ຊອບແວຮັງ, ກະແຈທັງໝົດຖືກເກັບໄວ້ເປັນ "HKEY_LOCAL_MACHINE\SOFTWARE".
ດັ່ງນັ້ນ "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft" ປາກົດຢູ່ໃນໄຟລ໌ hive ເປັນ "\Microsoft".
ຮູບແບບ hive ຕົວຂອງມັນເອງບໍ່ໄດ້ເກັບຮັກສາຄໍານໍາຫນ້ານີ້, ດັ່ງນັ້ນທ່ານຕ້ອງສະຫນອງມັນໂດຍອີງໃສ່
ຄວາມຮູ້ພາຍນອກ. (virt-win-reg(1), ໃນບັນດາສິ່ງອື່ນໆ, ແລ້ວຮູ້ກ່ຽວກັບເລື່ອງນີ້).
ປົກກະຕິແລ້ວມັນພຽງພໍທີ່ຈະຜ່ານພາລາມິເຕີ "--prefix
'HKEY_LOCAL_MACHINE\SOFTWARE'" ຫຼືຄ້າຍຄືກັນໃນເວລາເຮັດການຮວມ ແລະສົ່ງອອກ.
--ການເຂົ້າລະຫັດ UTF-16LE|ASCII
ເມື່ອລວມເຂົ້າກັນ (ເທົ່ານັ້ນ), ທ່ານອາດຈະຕ້ອງລະບຸການເຂົ້າລະຫັດສໍາລັບສະຕຣິງທີ່ຈະໃຊ້ໃນ
ໄຟລ໌ຮັງ. ນີ້ແມ່ນອະທິບາຍຢ່າງລະອຽດໃນ "ENCODING STRINGS" ໃນ
ຊະນະ::Hivex::Regedit(3).
ຄ່າເລີ່ມຕົ້ນແມ່ນໃຊ້ UTF-16LE, ເຊິ່ງຄວນເຮັດວຽກກັບ Windows ລຸ້ນຫຼ້າສຸດ.
--unsafe-printable-strings
ເມື່ອສົ່ງອອກ (ເທົ່ານັ້ນ), ສົມມຸດວ່າສະຕຣິງແມ່ນ UTF-16LE ແລະພິມພວກມັນເປັນສະຕຣິງແທນ.
ຂອງລໍາດັບ hex. ເອົາຈຸດລະຫັດສູນສຸດທ້າຍອອກຈາກສະຕຣິງຖ້າມີ.
ອັນນີ້ແມ່ນບໍ່ປອດໄພແລະບໍ່ໄດ້ຮັກສາຄວາມຊື່ສັດຂອງຊ່ອຍແນ່ໃນ hive ຕົ້ນສະບັບສໍາລັບການ
ເຫດຜົນຕ່າງໆ:
· ຖືວ່າການເຂົ້າລະຫັດຕົ້ນສະບັບແມ່ນ UTF-16LE. ສະຕຣິງ ASCII ແລະສະຕຣິງອື່ນໆ
ການເຂົ້າລະຫັດຈະເສຍຫາຍໂດຍການຫັນປ່ຽນນີ້.
· ສົມມຸດວ່າທຸກຢ່າງທີ່ມີປະເພດ 1 ຫຼື 2 ແມ່ນສະຕຣິງ ແລະອັນນັ້ນແທ້ໆ
ທຸກສິ່ງທຸກຢ່າງອື່ນບໍ່ແມ່ນສາຍ, ແຕ່ພາກສະຫນາມປະເພດໃນ hives ທີ່ແທ້ຈິງແມ່ນບໍ່ຫນ້າເຊື່ອຖື.
· ສູນເສຍຂໍ້ມູນກ່ຽວກັບວ່າຈຸດລະຫັດສູນປະຕິບັດຕາມ string ໃນ hive
ຫຼືບໍ່.
ທັງຫມົດນີ້ເກີດຂຶ້ນເນື່ອງຈາກວ່າ hive ຕົວຂອງມັນເອງບໍ່ມີຂໍ້ມູນກ່ຽວກັບສາຍເຊືອກ
ເຂົ້າລະຫັດແລ້ວ (ເບິ່ງ "ENCODING STRINGS" ໃນ ຊະນະ::Hivex::Regedit(3)).
ທ່ານພຽງແຕ່ຄວນໃຊ້ທາງເລືອກນີ້ສໍາລັບການ hack ໄວແລະ debugging ຂອງເນື້ອໃນ hive,
ແລະ ບໍ່ເຄີຍ ໃຊ້ມັນຖ້າຜົນຜະລິດຈະຖືກສົ່ງເຂົ້າໄປໃນໂຄງການອື່ນຫຼືເກັບໄວ້ໃນ
ຮັງອື່ນ.
ໃຊ້ hivexregedit ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net