原本以为Linux下读取Windows的注册表是个异想天开、无法实现的想法,忽然发现了老外写的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.htm,才知道原来早就有人做过了。

为了在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的值。

Windows如何读取Linux,Linux下读取Windows注册表相关推荐

  1. 56-20210402华为海思Hi3516DV300的linux系统下读取TF卡(eMMC模式)

    56-20210402华为海思Hi3516DV300的linux系统下读取TF卡(eMMC模式) 2021/4/2 15:02 https://xueqiu.com/7970718062/159110 ...

  2. 关于linux环境下访问Windows数据库的处理方法

    ** 关于linux环境下访问Windows数据库的处理方法 1 首先需要知道windows系统下的ip地址,打开cmd控制台,输入ipconfig这个命令,获取window的本地ip地址,方便lin ...

  3. QT在linux环境下读取和设置系统时间

    QT在linux环境下读取和设置系统时间 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:Fedora12 开发软件:QT 读取系统时间 ...

  4. 组策略 计算机 用户账户控制,Windows 10 (用户帐户控制组策略和注册表) - Microsoft 365 Security | Microsoft Docs...

    用户帐户控制组策略和注册表项设置 04/19/2017 本文内容 适用范围 Windows 10 Windows Server 2016 组策略设置 UAC 管理中心可以配置 10 个组策略 (用户帐 ...

  5. C/C++语言 Windows API更改文件、文件夹或注册表权限的所有者

    C/C++语言, 调用Windows API更改文件.文件夹或注册表权限的所有者 所用到的函数 GetUserName                 //获取当前登陆用户名 LookupAccoun ...

  6. windows更换壁纸cmd命令,window修改注册表更换壁纸,已设壁纸缓存地址

    windows更换壁纸cmd命令,window用注册表更换壁纸,已设壁纸缓存地址 1.修改注册表更换壁纸 1.打开运行: cntrl + R 2.输入 regedit 3.找到壁纸地址对应的键值对 4 ...

  7. Windows用于控制 TCP 确认 (ACK)行为的注册表项 -TcpAckFrequency

    Windows用于控制 TCP 确认 (ACK)行为的注册表项 -TcpAckFrequency 笔者说: 此修改,在测试TCP吞吐量时,可能会提高,需要根据实际的环境进行对弈验证.我测试时修改为20 ...

  8. Linux系统下挂载Windows分区

    1. 手工挂载 在Linux中也可以读取Windows分区,包括fat32格式的和ntfs格式的.首先你得知道Linux下对硬盘分区的称呼.比如Windows下的C盘通常是hda1,D盘是hda5,E ...

  9. 在虚拟机linux环境下编译windows版adb fastboot

    原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...

  10. 图灵机器人 linux,群晖Docker下通过VNC打开Linux环境下的windows程序,Q酷图灵机器人...

    这也是一个思路,在linux环境下,我们通常通过wine来运行windows程序,这个是酷Q官方的Docker映像,有Dockerfile参考,对于明白原理的人可以移植很多windows程序到我们的群 ...

最新文章

  1. SDNU 1330.Max Sum(最大子序列和)
  2. 【DevOps进行时】C/S端界面自动化测试:微软UIAutomation实践
  3. AI技术的“践行者” — 云测试成为企业降本增效利器
  4. load()是python文件操作的函数_python基础总结(函数,文件操作)
  5. 岳云鹏:买128G手机仅112G可用!手机系统占用存储空间应厂商消化?
  6. ToB销售的成交,需要客户对供应商有三个信任
  7. 尴尬的风险管理如何深入下去-某公司为例
  8. python3虚拟环境的设置
  9. 学习PetShop3.0(9)工厂的资料
  10. 各地的磁倾角_全国各地区地磁场强度表
  11. 关于虚拟机IP更改问题教给大家一个必杀技
  12. x86 android 显卡 tablet2,Re: android4.4.2将tablet更改为phone
  13. DTCC 回顾:技术破局,分布式数据库创赢未来
  14. ODM和OEM的区别
  15. “计算机诺贝尔奖”的首位华人得主姚期智
  16. 成长的痛苦:流播放服务令音乐人版税受损
  17. uboot usb网卡分析
  18. android网易云信使用方法,网易云信Android版demo修改为自己所用
  19. python3思维导图.xmind_Xmind和FreeMind思维导图格式互转
  20. 多系统折腾记录(老电脑MBR分区)

热门文章

  1. Skyscraper
  2. OS / Linux / Select 调用流程
  3. python拟合曲线误差分析_python曲线拟合不能给出合理的拟合结果
  4. 节点服务器虚拟网络,虚拟网络功能节点放置研究
  5. mysql 遍历二叉树_【自考】数据结构之二叉树遍历
  6. phpstudy一直自动停止启动_发动机自动启停,到底是省油还是毁车?
  7. 32.Docker安装MongoDb
  8. django 在保存数据前进行数据校验
  9. 蓝桥杯练习题十六进制转十进制
  10. Python全栈之路系列----之-----内置函数和匿名函数lamdba