注册 登录
LUPA开源社区 返回首页

jiang001的个人空间 http://www.lupaworld.com/?263754 [收藏] [复制] [分享] [RSS]

我的博客

Linux下读取Windows注册表

已有 1464 次阅读2011-7-7 11:08 |系统分类:IT技术

  为了在linux下能够解读注册表文件,需要几个小工具:首先是一个Pascal语言写的dumphive,负责将windows注册表文件转换为 文本格式;另外还需要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可执行程序了。再安装Win32-Registry-File-1.10和 Tie-IxHash-1.22,这两个perl程序的安装方法类似,先解压,在运行perl MakeFile.pl 生成makfile,再运行make,最后make install

  真正的工作就可以开始了

  1. 首先将windows所在分区挂载到/mnt/目录上,(如果挂载不了,需要下载并安装ntfsprogs)

  2. cp /mnt/WINDOWS/system32/config/SYSTEM /tmp/system 将注册表文件拷贝到tmp目录下

  3. dumphive /tmp/system /tmp/system.reg 将注册表文件转换为文本格式

  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下的结构了。注意这里的get后的参数中的system,跟第2步时生成的文件名有 关,如果将windows下的注册表文件拷贝成aaa,再用dumphive去转换,则生成的注册表文本文件都是以aaa开头的。当执行用cat system.reg,后就可以明显的看出来。

  另外Win7跟xp的注册表文件,在linux下解读出来还是有很大差异的,每一个字段前都有一个类似UUID的值。

 已同步至 jiang001的微博

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部