Windows如何读取Linux,Linux下读取Windows注册表
原本以為Linux下讀取Windows的注冊表是個異想天開、無法實現(xiàn)的想法,忽然發(fā)現(xiàn)了老外寫的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.htm,才知道原來早就有人做過了。
為了在linux下能夠解讀注冊表文件,需要幾個小工具:首先是一個Pascal語言寫的dumphive,負(fù)責(zé)將windows注冊表文件轉(zhuǎn)換為文本格式;另外還需要Win32-Registry-File-1.10,這是一個用perl語言寫的,分析、讀取注冊表的工具,同時Win32-Registry-File-1.10還依賴另外一個perl工具Tie-IxHash-1.22。
dumphive的下載地址為http://gitorious.com/canaima-gnu-linux/dumphive/commits/upstream,Win32-Registry-File-1.10為http://search.cpan.org/~avatar/Win32-Registry-File-1.10/File.pm,Tie-IxHash-1.22為http://search.cpan.org/~chorny/Tie-IxHash-1.22/lib/Tie/IxHash.pm
在正式開始工作前,先要將工具軟件安裝好,首先解壓縮dumphive包,由于它是由Pascal語言寫出的,所以要下載free Pascal的編譯器,在Ubuntu下,用apt-get install fpc即可,然后進入src目錄下,直接make就可以獲得dumphive可執(zhí)行程序了。再安裝Win32-Registry-File-1.10和Tie-IxHash-1.22,這兩個perl程序的安裝方法類似,先解壓,在運行perl MakeFile.pl 生成makfile,再運行make,最后make install
真正的工作就可以開始了
1.首先將windows所在分區(qū)掛載到/mnt/目錄上,(如果掛載不了,需要下載并安裝ntfsprogs)
2.cp /mnt/WINDOWS/system32/config/SYSTEM /tmp/system 將注冊表文件拷貝到tmp目錄下
3.dumphive /tmp/system /tmp/system.reg 將注冊表文件轉(zhuǎn)換為文本格式
4.再編寫一個test.pl腳本 ,比如:
use Win32::Registry::File;
$reg = new Win32::Registry::File();
$reg->open('system.reg');
use Data::Dumper;
print Dumper($reg->get(['system\ControlSet001\Control']));
然后perl test.pl就可以看的ControlSet001\Control下的結(jié)構(gòu)了。注意這里的get后的參數(shù)中的system,跟第2步時生成的文件名有關(guān),如果將windows下的注冊表文件拷貝成aaa,再用dumphive去轉(zhuǎn)換,則生成的注冊表文本文件都是以aaa開頭的。當(dāng)執(zhí)行用cat system.reg,后就可以明顯的看出來。
另外Win7跟xp的注冊表文件,在linux下解讀出來還是有很大差異的,每一個字段前都有一個類似UUID的值。
總結(jié)
以上是生活随笔為你收集整理的Windows如何读取Linux,Linux下读取Windows注册表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设置打开ssl连接错误怎么解决方案 解决
- 下一篇: 怎么制作u盘声音 教你DIY U盘弹出音