diff --git a/thirdparty/rr-full/plugins/samparse.pl b/thirdparty/rr-full/plugins/samparse.pl index 2db64eb8e1..8046708b3b 100644 --- a/thirdparty/rr-full/plugins/samparse.pl +++ b/thirdparty/rr-full/plugins/samparse.pl @@ -80,12 +80,21 @@ sub pluginmain { my $key_path = 'SAM\\Domains\\Account\\Users'; my $key; my $local_sid = ""; - my $account_value = $root_key->get_subkey("SAM\\Domains\\Account")->get_value("V")->get_data();; - if (defined $account_value) { - my $data_len = length($account_value); - if ($data_len >= 12) { - my @vAt = unpack("VVV",substr($account_value, $data_len-12, 12)); - $local_sid = "S-1-5-21-".$vAt[0]."-".$vAt[1]."-".$vAt[2]; + my $account_key = $root_key->get_subkey("SAM\\Domains\\Account"); + if (defined $account_key) { + my $account_value = $account_key->get_value("V"); + if (defined $account_value) { + my $account_data = $account_value->get_data(); + if (defined $account_data) { + my $data_len = length($account_data); + if ($data_len >= 12) { + my @vArray = unpack("VVV",substr($account_data, $data_len-12, 12)); + my $vArray_len = @vArray; + if ($vArray_len == 3) { + $local_sid = "S-1-5-21-".$vArray[0]."-".$vArray[1]."-".$vArray[2]; + } + } + } } } if ($key = $root_key->get_subkey($key_path)) {