| Server IP : 127.0.0.1 / Your IP : 216.73.216.48 Web Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT DESKTOP-3H4FHQJ 10.0 build 19045 (Windows 10) AMD64 User : win 10 ( 0) PHP Version : 8.2.12 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : D:/xampp/perl/vendor/lib/Win32/Exe/ResourceEntry/ |
Upload File : |
# Copyright 2004 by Audrey Tang <cpan@audreyt.org>
package Win32::Exe::ResourceEntry::Name;
use strict;
use base 'Win32::Exe::ResourceEntry';
use constant SUBFORMAT => (
N_RVA => 'V',
);
sub NameAddress {
my ($self) = @_;
$self->N_RVA & ~($self->high_bit);
}
sub SetNameAddress {
my ($self, $data) = @_;
$self->SetN_RVA($data | $self->IsDirectory);
}
sub IsEscaped {
my ($self) = @_;
$self->N_RVA & ($self->high_bit);
}
sub Name {
my ($self) = @_;
my $section = $self->first_parent('Resources');
my $addr = $self->NameAddress;
my $size = unpack('v', $section->substr($addr, 2));
my $ustr = $section->substr($addr + 2, $size * 2);
my $name = $self->decode_ucs2($ustr);
$name =~ s{([%#/])}{sprintf('%%%02X', ord($1))}eg;
return $name;
}
sub SetName {
die "XXX unimplemented";
}
1;