mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-08 22:29:33 +00:00
211 lines
4.5 KiB
Perl
211 lines
4.5 KiB
Perl
#-----------------------------------------------------------
|
|
# winbackup.pl
|
|
#
|
|
# Change History
|
|
# 20120812 [fpi] % created from winver.pl
|
|
#
|
|
# References
|
|
#
|
|
# copyright 2012 M. DeGrazia, arizona4n6@gmail.com
|
|
#-----------------------------------------------------------
|
|
package winbackup;
|
|
use strict;
|
|
|
|
my %config = (hive => "Software",
|
|
osmask => 16,
|
|
hasShortDescr => 1,
|
|
hasDescr => 0,
|
|
hasRefs => 0,
|
|
version => 20120812);
|
|
|
|
sub getConfig{return %config}
|
|
|
|
sub getShortDescr {
|
|
return "Get Windows Backup";
|
|
}
|
|
sub getDescr{}
|
|
sub getRefs {}
|
|
sub getHive {return $config{hive};}
|
|
sub getVersion {return $config{version};}
|
|
|
|
my $VERSION = getVersion();
|
|
|
|
sub pluginmain {
|
|
my $class = shift;
|
|
my $hive = shift;
|
|
::logMsg("Launching winbackup v.".$VERSION);
|
|
::rptMsg("winbackup v.".$VERSION);
|
|
::rptMsg("(".getHive().") ".getShortDescr()."\n");
|
|
|
|
my $reg = Parse::Win32Registry->new($hive);
|
|
my $root_key = $reg->get_root_key;
|
|
|
|
my $key_path = "Microsoft\\Windows\\CurrentVersion\\WindowsBackup\\ScheduleParams\\TargetDevice";
|
|
my $key;
|
|
if ($key = $root_key->get_subkey($key_path)) {
|
|
|
|
::rptMsg($key_path);
|
|
::rptMsg("LastWrite Time ".gmtime($key->get_timestamp())." (UTC)");
|
|
::rptMsg("");
|
|
|
|
|
|
my $name;
|
|
eval {
|
|
$name = $key->get_value("PresentableName")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("PresentableName value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" PresentableName = ".$name);
|
|
}
|
|
|
|
my $uniquename;
|
|
eval {
|
|
$uniquename = $key->get_value("UniqueName")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("UniqueName value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" UniqueName = ".$uniquename);
|
|
}
|
|
|
|
|
|
my $devlabel;
|
|
eval {
|
|
$devlabel = $key->get_value("Label")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("Label value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" Label = ".$devlabel);
|
|
}
|
|
|
|
|
|
my $vendor;
|
|
eval {
|
|
$vendor = $key->get_value("DeviceVendor")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("DeviceVendor value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" DeviceVendor = ".$vendor);
|
|
}
|
|
|
|
my $deviceproduct;
|
|
eval {
|
|
$deviceproduct = $key->get_value("DeviceProduct")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("DeviceVendor value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" DeviceProduct = ".$deviceproduct);
|
|
}
|
|
|
|
my $deviceversion;
|
|
eval {
|
|
$deviceversion = $key->get_value("DeviceVersion")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("DeviceVendor value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" DeviceVersion = ".$deviceversion);
|
|
}
|
|
|
|
|
|
my $devserial;
|
|
eval {
|
|
$devserial = $key->get_value("DeviceSerial")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("DeviceSerial value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" DeviceSerial = ".$devserial);
|
|
}
|
|
}
|
|
else {
|
|
::rptMsg($key_path." not found.");
|
|
}
|
|
|
|
#status
|
|
|
|
::rptMsg("");
|
|
$key_path = "Microsoft\\Windows\\CurrentVersion\\WindowsBackup\\Status";
|
|
if ($key = $root_key->get_subkey($key_path)) {
|
|
# ::rptMsg("{name}");
|
|
::rptMsg($key_path);
|
|
::rptMsg("LastWrite Time ".gmtime($key->get_timestamp())." (UTC)");
|
|
::rptMsg("");
|
|
|
|
my $lastresulttime;
|
|
eval {
|
|
$lastresulttime = $key->get_value("LastResultTime")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("LastSuccess value not found.");
|
|
}
|
|
else {
|
|
my @vals = unpack("VV",$lastresulttime);
|
|
my $lrt = ::getTime($vals[0],$vals[1]);
|
|
::rptMsg(" LastResultTime = ".gmtime($lrt)." (UTC)");
|
|
}
|
|
|
|
my $lastsuccess;
|
|
eval {
|
|
$lastsuccess = $key->get_value("LastSuccess")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("LastSuccess value not found.");
|
|
}
|
|
else {
|
|
my @vals = unpack("VV",$lastsuccess);
|
|
my $ls = ::getTime($vals[0],$vals[1]);
|
|
::rptMsg(" LastSuccess = ".gmtime($ls)." (UTC)");
|
|
}
|
|
|
|
my $lasttarget;
|
|
eval {
|
|
$lasttarget = $key->get_value("LastResultTarget")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("LastResultTarget value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" LastResultTarget = ".$lasttarget);
|
|
}
|
|
|
|
my $LRTPrestName;
|
|
eval {
|
|
$LRTPrestName = $key->get_value("LastResultTargetPresentableName")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("LastResultTargetPresentableName value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" LastResultTargetPresentableName = ".$LRTPrestName);
|
|
}
|
|
|
|
|
|
my $LRTTargetLabel;
|
|
eval {
|
|
$LRTTargetLabel = $key->get_value("LastResultTargetLabel")->get_data();
|
|
};
|
|
if ($@) {
|
|
# ::rptMsg("LastResultTargetLabel value not found.");
|
|
}
|
|
else {
|
|
::rptMsg(" LastResultTargetLabel = ".$LRTTargetLabel);
|
|
}
|
|
}
|
|
else {
|
|
::rptMsg($key_path." not found.");
|
|
}
|
|
}
|
|
1;
|