Linux下讀取Windows注冊(cè)表
原以為Linux下讀取Windows的注冊(cè)表是個(gè)異想天開(kāi)、無(wú)法實(shí)現(xiàn)的想法,但這篇文章的作者就把他給實(shí)現(xiàn)了。想知道作者是如何實(shí)現(xiàn)的?那就繼續(xù)往下讀吧!
為了在linux下能夠解讀注冊(cè)表文件,需要幾個(gè)小工具:首先是一個(gè)Pascal語(yǔ)言寫(xiě)的dumphive,負(fù)責(zé)將windows注冊(cè)表文件轉(zhuǎn)換為文本格式;另外還需要Win32-Registry-File-1.10,這是一個(gè)用perl語(yǔ)言寫(xiě)的,分析、讀取注冊(cè)表的工具,同時(shí)Win32-Registry-File-1.10還依賴(lài)另外一個(gè)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。
在正式開(kāi)始工作前,先要將工具軟件安裝好,首先解壓縮dumphive包,由于它是由Pascal語(yǔ)言寫(xiě)出的,所以要下載free Pascal的編譯器,在Ubuntu下,用apt-get install fpc即可,然后進(jìn)入src目錄下,直接make就可以獲得dumphive可執(zhí)行程序了。再安裝Win32-Registry-File-1.10和Tie-IxHash-1.22,這兩個(gè)perl程序的安裝方法類(lèi)似,先解壓,在運(yùn)行perl MakeFile.pl 生成makfile,再運(yùn)行make,最后make install
真正的工作就可以開(kāi)始了
1. 首先將windows所在分區(qū)掛載到/mnt/目錄上,(如果掛載不了,需要下載并安裝ntfsprogs)
2. cp /mnt/WINDOWS/system32/config/SYSTEM /tmp/system 將注冊(cè)表文件拷貝到tmp目錄下
3. dumphive /tmp/system /tmp/system.reg 將注冊(cè)表文件轉(zhuǎn)換為文本格式
4. 再編寫(xiě)一個(gè)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步時(shí)生成的文件名有關(guān),如果將windows下的注冊(cè)表文件拷貝成aaa,再用dumphive去轉(zhuǎn)換,則生成的注冊(cè)表文本文件都是以aaa開(kāi)頭的。當(dāng)執(zhí)行用cat system.reg,后就可以明顯的看出來(lái)。
另外Win7跟xp的注冊(cè)表文件,在linux下解讀出來(lái)還是有很大差異的,每一個(gè)字段前都有一個(gè)類(lèi)似UUID的值。
【編輯推薦】
- Windows 8 M1注冊(cè)表功能展示
- 注冊(cè)表讓服務(wù)器遠(yuǎn)程訪(fǎng)問(wèn)更安全
- 四招教你打造輕型Linux桌面環(huán)境
- Linux十大妙用:充當(dāng)Windows修復(fù)工具
- 如何巧妙利用系統(tǒng)注冊(cè)表 防止病毒復(fù)活