Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^4: dll not embedded in PAR::Packer's output (ppsimple.pl)

by Anonymous Monk
on Nov 29, 2015 at 09:36 UTC ( #1148802=note: print w/replies, xml ) Need Help??


in reply to Re^3: dll not embedded in PAR::Packer's output
in thread dll not embedded in PAR::Packer's output

um, yeah, wrote this a while ago, ... not convinced its worth pursuing
#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; Main( @ARGV ); exit( 0 ); sub Main { @_ or return print Usage(); for my $inf( @_ ){ Snack::Attack( $inf ); } } ## end sub Main sub Usage { print <<"__USAGE__"; $0 $0 foo.pl $0 foo.pl bar.pl baz.pl ... makes foo.exe bar.exe baz.exe ... __USAGE__ } ## end sub Usage BEGIN { package Snack; $INC{'Snack.pm'} = __FILE__; use Config(); use Proc::Background; use File::HomeDir; use Data::Dump qw/ dd /; use File::Which qw( which ); use Capture::Tiny qw/ capture /; use List::AllUtils qw( uniq ); use File::Find::Rule qw/ rule find /; use Storable qw/ retrieve /; use Path::Tiny qw/ path /; our $MY_DATA = File::HomeDir->my_data; #~ our $MY_DATA = Cwd::cwd(); our $PP = which('pp') or die "pp not installed "; our $WXPAR = which('wxpar') or die "wxpar not installed "; our $SCANDEPS = which('scandeps') or die "scandeps not installed +"; our $OBJDUMP = which('objdump') ; our $PARL = which('parl') ; our $EXE_UPDATE= which('exe_update') || which('exe_update.pl'); our $CACHEFILE = "$MY_DATA/par-pp-CACHEFILE.dat"; our @EXCLUDE_CONFIG_LIBS = map { "$_.$Config::Config{so}" } $Confi +g::Config{libs} =~ m{-l(\S+)}g ; our @INCLUDE_PERL_LIBS ; our @EXCLUDE_PARL_LIBS ; ## https://en.wikipedia.org/wiki/$PATH our @PATH = uniq( File::Spec->curdir, File::Spec->path, grep { -e $_ } $Config::Config{installsitebin}, $Config::Confi +g{installvendorbin}, $Config::Config{installbin} ); #~ } sub new { my( $class, %args ) = @_; my $self = bless { MY_DATA => $MY_DATA, PP => $PP, WXPAR => $WXPAR, SCANDEPS => $SCANDEPS, OBJDUMP => $OBJDUMP, REFLESSINC => [ grep { !ref$_ } @INC ], PATH => [ @PATH ], %args }, $class; undef %args; my $infile = $self->{infile} or die "need infile"; my $outfile = $infile ; $outfile =~ s/\.(?:plx|pl|plw|pm|pod|t|txt)//i; $outfile .= $Config::Config{exe_ext} if $Config::Config{exe_ex +t}; $self->{outfile} ||= $outfile; $self->{CACHEFILE} = $CACHEFILE ; ## it is shared @EXCLUDE_PARL_LIBS or @EXCLUDE_PARL_LIBS = $self->dll_linked( + [ $PARL ] ); ## should be global ... and filtered on %windir% and/or + $^X @INCLUDE_PERL_LIBS or @INCLUDE_PERL_LIBS = $self->dll_linked( + [ $^X ] ); ## should be global ... and filtered on %windir% and/or $ +^X $self->{EXCLUDE_CONFIG_LIBS} ||= [ @EXCLUDE_CONFIG_LIBS ]; $self->{INCLUDE_PERL_LIBS} ||= [ @INCLUDE_PERL_LIBS ]; $self->{EXCLUDE_PARL_LIBS} ||= [ @EXCLUDE_PARL_LIBS ]; return $self; } ## end sub new #~ sub exists { #~ sub dll_cached { sub dll_get_fullpath { my( $self, $key ) = @_; my $short = lc path( $key )->basename; ## yuck return $self->{dll_paths}{ $short }; } #~ sub add_dll { sub dll_add_path { my( $self, $key, $fullpath ) = @_; $fullpath ||= $key; my $short = lc path( $key )->basename; my $full = "".path( $fullpath )->realpath; ## should be real warn "dll_add_path( $short )( $full ) "; $self->{dll_paths}{ $short } ||= $full; ## PUSH!?!?! { md5sum +}{ filepath }++ return; } sub dll_linked_already { my( $self, $file ) = @_; #~ warn "@_ "; my $duh = $self->{dll_linked_already}{ "".path( $file)->realpa +th }++; return $duh; } ## end sub dll_linked_already #~ sub linked_dlls { sub dll_linked { ## TODO stuff my $self = shift; my $filesref = shift; my $depth = shift || 0; if( $depth > 0 ){ warn "UHOH depth $depth " } my @files = grep { ! $self->dll_linked_already($_) } @$file +sref; $depth == 0 and not(@files) and die "UH OH empty $filesref ", +Data::Dump::pp( $filesref ), " "; @files or warn("no eligible files at depth $depth in " , Data: +:Dump::pp( $filesref ), " ") and return(); my @realdirs = map { "".path($_)->parent } @files; push @realdirs, @{ $self->{REFLESSINC} }; my $OBJDUMP = $self->{OBJDUMP} or die "objdump not installed +"; my( $stdout, $stderr, $exit ) = capture { system( $OBJDUMP, '-p', @files ); }; if( $exit ){ $stderr =~ s{\s+$}{}; warn "(@files):$exit: $stderr "; return; } #~ ::dd(-cap,[( $stdout, $stderr, $exit ) ]); my @dlls = $stdout =~ /DLL.Name:\s*(\S+)/gmi; @dlls = uniq( @dlls ); RELFILE: for my $relfile ( @dlls ){ if( my $full = $self->dll_get_fullpath( $relfile ) ){ warn "SKIPPING( $relfile ) BECAUSE( $full ) "; next RELFILE; } REFLESS: for my $inc ( @realdirs ){ my $file = "$inc/$relfile"; if( -e $file ){ $relfile = $file; $self->dll_add_path( $relfile ); #~ last REFLESS; next RELFILE; } } if( my $whichfile = $self->dll_which( $relfile ) ){ $relfile = $whichfile; $self->dll_add_path( $relfile ); } } ## recurse , infinitely { my @recurse_files; for my $file ( @dlls ){ if( not -e $file ){ warn "SKIPPING FROM RECURSION RELATIVE UNRESOLVED +( $file ) "; } else { push @recurse_files, $file; } } if( @recurse_files and $depth < 7 ){ push @dlls, $self->dll_linked( \@recurse_files , $dept +h+1 ) ; } #~ push @dlls, $self->dll_linked( \@recurse_files , $depth ++1 ) if $depth < 5; } if( $depth == 0 ){ for my $file ( @dlls ){ if( path( $file )->is_absolute ){ $self->dll_add_path( $file ); } else { warn "UHOHUHOHUHOHUHOH( $file ) "; } } } return wantarray ? @dlls : $dlls[0]; } ## end sub dll_linked #~ sub dllwhich { sub dll_which { ::dd(\@_); my $self = shift; my @paths = ( @{$self->{PATH}} ); return undef unless @_; my $all = wantarray; my @files = map { my @fyle = $_; if( not /\.[^\.]+/ ){ @fyle = ( "$_.dll", "$_.so" ); ## stupid mod_perl file +names .... why would I care? } @fyle } @_; @files = $files[0] if not $all; my @dlls; for my $file ( @files ){ if( (my $realdll = path($file ) )->is_absolute ){ push @dlls, "$realdll" if $realdll->is_file; next; } for my $path ( @paths ){ if( my $realdll= eval{ path( $path, $file )->realpath +}){ push @dlls, "$realdll" if $realdll->is_file; } } } $all ? @dlls : $dlls[0]; } ## end sub dll_which sub plx_scandeps { my $self = shift; my( $SCANDEPS, $infile, $CACHEFILE ) = @{$self}{qw{ SCANDEPS i +nfile CACHEFILE }}; my @args = ( $SCANDEPS, '-V', '-c', '-C' => $CACHEFILE, $infil +e ); ::dd( \@args ); my( $stdout, $stderr, $exit ) = capture { system @args, }; if( $exit ){ $stderr =~ s{\s+$}{}; warn "plx_scandeps(( $infile ))(( $CACHEFILE )):exit($exit +): $stderr "; return; }elsif( $stderr ){ warn "$stderr\n"; } my @dlls = $stdout =~ m{#\s+(\S+?\Q$Config::Config{so}\E)\s+\[ +shared\]}g; if( $stdout =~ m{(IUP|FLTK|Tk|Wx|Prima|Gtk|Qt|Win32.GUI|SDL|X1 +1|PerlObjCBridge)\.pm}i ){ $self->{"DETECTED_$1"} = $1; $self->{"DETECTED_GUI"} = $1; } $self->{SCANDEPS_DLLS} = [ @dlls ]; for my $relfile ( @dlls ){ ## turn auto/... into $INC[]/auto.. +. REFLESS: for my $inc ( @{ $self->{REFLESSINC} } ){ my $file = "$inc/$relfile"; if( -e $file ){ $relfile = $file; $self->dll_add_path( $relfile ); last REFLESS; } } } $self->{SCANDEPS_DLLS_FULLAPTH} = [ @dlls ]; $self->{SCANNED_SCANDEPS_DLLS} = [ $self->dll_linked( \@dlls ) + ]; return $self; } ## end sub plx_scandeps sub Snack::Attack { ::dd(\@_); my $infile = shift; @_ and die "no more args fool "; my $self = Snack::->new( infile => $infile ); ::dd( $self ); $self->plx_scandeps; ::dd( $self ); #~ return; $self->pack_exe; #~ $self->try_it_out; return; } ## end sub Snack::Attack sub pack_exe { my $self = shift; my @args = ( $self->{DETECTED_Wx} ? $self->{WXPAR} : $self->{PP} , '--cachedeps' => $self->{CACHEFILE} , '-vvv', ); push @args, '-M' => 'Wx::Perl::Packager' if $self->{DETECTED_W +x}; #~ push @args, '--gui' if $self->{DETECTED_GUI}; #~ { #~ my $goners_re = join '|', map { quotemeta($_) } @{ $sel +f->{EXCLUDE_CONFIG_LIBS} }; my $goners_re = do { my @goners = ( @{ $self->{EXCLUDE_CONFIG_LIBS} }, @{ $ +self->{EXCLUDE_PARL_LIBS} } ); @goners = map { path( $_ )->basename } @goners; join '|', map { quotemeta($_) } uniq( @goners ); }; my $windir = $ENV{WINDIR}; ## win32itis win64itis winitis my %dlls ;; for my $relfile ( @{ $self->{INCLUDE_PERL_LIBS} } , @{ $se +lf->{SCANNED_SCANDEPS_DLLS} } , ){ if( my $full = $self->dll_get_fullpath( $relfile ) ){ my $windired = 0; $windired = 1 if defined $windir and path($windir) +->subsumes($full); if( $relfile =~ m{$goners_re$}i or $windired ){ warn "removing -l ($relfile) "; } else { warn "adding -l ($full) "; $dlls{$full}++; } if( not $relfile =~ m{^(?:a(?:a(?:aamon|client)|c( +?:c(?:essibilitycpl|tres)|l(?:edit|ui)|p(?:page|roxy)|t(?:i(?:on(?:ce +nter(?:cpl)?|queue)|veds)|xprxy))|d(?:h(?:api|svc)|m(?:parse|tmpl)|p( +?:rovider|tif)|rclient|s(?:ldpc?|msext|n(?:ds|[tw]))|tschema|v(?:api3 +2|pack))|e(?:cache|evts|inv|lupsvc|p(?:du|ic))|l(?:rsvc|ttab)|m(?:str +eam|xread)|p(?:cups|ds|i(?:\-ms\-win\-(?:appmodel\-(?:identity|runtim +e|state)\-l1\-1\-0|base\-(?:bootconfig|util)\-l1\-1\-0|core\-(?:a(?:p +(?:iquery|p(?:compa|ini)t)|toms)\-l1\-1\-0|b(?:em|i(?:clt|p(?:lm|tclt +))api)\-l1\-1\-0|c(?:o(?:m(?:\-private|m)?\-l1|nsole\-l[12])|rt\-l[12 +])\-1\-0|d(?:atetime\-l1\-1\-[01]|e(?:bug\-l1\-1\-[01]|layload\-l1\-1 +\-[01]))|errorhandling\-l1\-1\-[01]|fi(?:bers\-l(?:1\-1\-[01]|2\-1\-0 +)|le\-l(?:1\-[12]|2\-1)\-0|rmware\-l1\-1\-0)|h(?:andle\-l1\-1|eap\-(? +:l1\-[12]|obsolete\-l1\-1))\-0|i(?:nterlocked\-l1\-[12]\-0|o\-l1\-1\- +[01])|job\-l[12]\-1\-0|kernel32\-(?:legacy|private)\-l1\-1\-0|l(?:ibr +aryloader\-l1\-1\-[01]|ocal(?:ization\-(?:l(?:1\-[12]|2\-1)|obsolete\ +-l1\-1|private\-l1\-1)|registry\-l1\-1)\-0)|m(?:emory\-l1\-1\-[01]|is +c\-l1\-1\-0|ultipleproviderrouter\-l1\-1\-0)|n(?:ame(?:dpipe\-l1\-[12 +]|space\-l1\-1)|ormalization\-l1\-1)\-0|p(?:ath\-l1\-1\-0|r(?:ivatepr +ofile\-l1\-1\-0|o(?:cess(?:environment\-l1\-[12]\-0|security\-l1\-1\- +0|t(?:hreads\-l1\-1\-[01]|opology\-(?:obsolete\-)?l1\-1\-0))|file\-l1 +\-1\-0))|s(?:api(?:\-(?:ansi|obsolete))?|m\-(?:app|info|plm))\-l1\-1\ +-0)|r(?:e(?:altime\-l1|gistry(?:\-(?:l[12]|private\-l1)|userspecific\ +-l1))\-1|tlsupport\-l1\-[12])\-0|s(?:h(?:lwapi\-(?:legacy|obsolete)|u +tdown)\-l1\-1|idebyside\-l1\-1|tring(?:\-(?:l[12]|obsolete\-l1)|ansi\ +-l1|loader\-l1)\-1|y(?:nch\-l1\-[12]|s(?:info\-l1\-[12]|temtopology\- +l1\-1)))\-0|t(?:hreadpool\-(?:l(?:1\-[12]|egacy\-l1\-1)|private\-l1\- +1)|imezone\-(?:private\-)?l1\-1|oolhelp\-l1\-1)\-0|u(?:ti|r)l\-l1\-1\ +-0|version(?:\-private|ansi)?\-l1\-1\-0|w(?:in(?:dowserrorreporting|r +t(?:\-(?:error(?:private)?|propertysetprivate|r(?:egistration|o(?:buf +fer|parameterizediid))|string))?)|ow64)\-l1\-1\-0|xstate\-l1\-1\-[01] +)|d(?:evices\-(?:config|query|swdevice)\-l1|ownlevel\-(?:advapi32\-l[ +12]|normaliz\-l1|ole32\-l1|sh(?:ell32\-l1|lwapi\-l[12])|user32\-l1|ve +rsion\-l1)|x\-d3dkmt\-l1)\-1\-0|event(?:ing\-(?:c(?:lassicprovid|on(? +:sum|troll))er|legacy|obsolete|provider)|log\-(?:legacy|private))\-l1 +\-1\-0|gdi\-ie\-rgn\-l1\-1\-0|http\-time\-l1\-1\-0|input\-ie\-interac +tioncontext\-l1\-1\-0|mm\-(?:joystick\-l1|m(?:ci\-l1|isc\-l[12]|me\-l +1)|playsound\-l1|time\-l1)\-1\-0|n(?:et\-isolation|tuser\-(?:dc\-acce +ss|ie\-(?:clipboard|message|w(?:indow|mpointer))|rectangle|sysparams| +uicontext))\-l1\-1\-0|ole32\-ie\-l1\-1\-0|power\-(?:base|setting)\-l1 +\-1\-0|ro\-typeresolution\-l1\-1\-0|s(?:e(?:curity\-(?:a(?:ctivedirec +toryclient|ppcontainer|udit)\-l1\-1\-0|base\-(?:l1\-[12]|private\-l1\ +-1)\-0|credentials\-l[12]\-1\-0|grouppolicy\-l1\-1\-0|lsa(?:lookup\-l +(?:1\-1\-[01]|2\-1\-0)|policy\-l1\-1\-0)|provider\-l1\-1\-0|s(?:ddl(? +:\-ansi|parsecond)?|ystemfunctions)\-l1\-1\-0|trustee\-l1\-1\-0)|rvic +e\-(?:core\-l1\-1\-[01]|management\-l[12]\-1\-0|private\-l1\-1\-0|win +svc\-l1\-[12]\-0))|h(?:core\-(?:comhelpers|obsolete|registry|s(?:cali +ng|tream(?:\-winrt)?|ysinfo)|thread|unicodeansi)|ell\-shell(?:com|fol +ders)|lwapi\-ie)\-l1\-1\-0))|logen|rcl|setschema)|p(?:h(?:elp|lpdm)|i +(?:d(?:api|policyengineapi|svc)|nfo)|mg(?:mts|r)|rep(?:api|sync)|srup +rov|x(?:alluserstore|deployment(?:client|extensions|server)|packaging +|s(?:ip|treamingdatasourceps|ysprep)))|ss)|s(?:ferror|pnet_counters|y +cfilt)|t(?:kctrs|mpvcno|race|l)|u(?:di(?:o(?:dev|en(?:dpointbuilder|g +)|kse|s(?:es|rv))|t(?:cse|nativesnapin|pol(?:icygpinterop|msg)))|inst +allagent|t(?:h(?:broker|ext|fw(?:cfg|gp|snapin|wizfwk)|hostproxy|ui|z +)|o(?:disc|play))|xiliarydisplay(?:api|c(?:lassinstaller|pl)|driverli +b|services))|v(?:i(?:cap|fil)32|meter|rt|tapi|wav)|xinstsv|z(?:role(? +:ui|s)|sqlext))\.dll|b(?:a(?:se(?:csp|srv)|t(?:meter|t))|c(?:d(?:pro| +sr)v|p47langs|rypt(?:primitives)?)|de(?:hdcfglib|repair|svc|ui)|fe|i( +?:displ|oc(?:pl|redprov)|srv|ts(?:igd|p(?:erf|rx[234567]))|winrt)|l(? +:ackbox|b(?:_p|event|re)s|uetoothapis)|oot(?:menuux|res|str|ux|vid)|r +(?:dgcfg|idgeres|ow(?:cli|se(?:lc|ui|wm|r)))|t(?:h(?:ci|hfsrv|mtpcont +exthandler|panapi|radiomedia|s(?:erv|qm))|panui)|wunpairelevated|i)\. +dll|c(?:_(?:g18030|is(?:2022|cii))|a(?:b(?:inet|view)|llbuttons(?:\.p +roxystub)?|mocx|p(?:esnpn|i(?:provider|sp))|rd(?:game)?s|tsrv(?:ps|ut +)?)|c(?:fgnt|a)|d(?:fview|modem|osys|[dm])|e(?:rt(?:c(?:li|redprovide +r|a)|en(?:roll(?:ui)?|c)|mgr|p(?:oleng|rop))|wmdm)|f(?:g(?:bkend|mgr3 +2)|mifs(?:proxy)?)|h(?:artv|kwudrv|sbrkr|tbrkr|xreadingstringime)|i(? +:admin|odm|rcoinst|c)|l(?:bcat(?:ex|q)|fsw32|iconfg|rhost|usapi|b)|m( +?:cfg32|d(?:ext|ial32)|i(?:cryptinstall|fw|pnpinstall)|lua|nclim|p(?: +bk32|rops)|s(?:etacl|tplua)|util)|n(?:bjmon|etcfg|g(?:audit|credui|pr +ovider)|vfat)|o(?:firedm|l(?:bact|or(?:cnv|ui))|m(?:addin|base|c(?:at +|tl32)|dlg32|pstui|re(?:pl|s)|s(?:nap|vcs)|uid)|n(?:fmsp|nect(?:edacc +ountstate)?|s(?:entux|ole))|py|r(?:pol|rengine))|pfilters|r(?:ed(?:ss +p|ui)|ppresentation|tdll|ypt(?:32|base|catsvc|dl[gl]|ext|net|owinrt|s +(?:vc|p)|ui(?:wizard)?|xml))|s(?:c(?:api|dll|mig|obj|svc|ui)|rsrv|seq +chk)|tl3d32|i)\.dll|d(?:2d1|3d(?:1(?:0(?:_1(?:core)?|core|level9|warp +)|[01])|8thk|im(?:700)?|pmesh|r(?:amp|m)|xof|[89])|a(?:conn|f(?:bth|p +rintprovider|upnp|w(?:cn|fdprovider|sd))|mm|nim|otpcredentialprovider +|t(?:aclen|ime|usage)|v(?:clnt|hlpr)|s)|b(?:g(?:eng|help)|msrpcn|n(?: +etlib|mpntw))|c(?:iman32|omp)|d(?:aclsys|o(?:iproxy|res)|p(?:_ps|chun +k|trace|utils)|raw(?:ex)?)|e(?:f(?:ault(?:devicemanager|locationcpl|p +rinterprovider)|rag(?:proxy|svc))|legatorprovider|sk(?:adp|mon|perf)| +v(?:dispitemprovider|enum|i(?:ce(?:a(?:ccess|ssociation)|center|d(?:i +splaystatusmanager|riverretrievalclient)|elementsource|metadata(?:par +sers|retrievalclient)|pairing(?:folder|handler|proxy)?|setup(?:manage +r(?:api)?|statusprovider)|uxres)|nv)|mgr|obj|propmgr|rtl))|f(?:dts|rg +(?:res|snap|ui)|s(?:cli|him|shlex))|gnet|hcp(?:c(?:monitor|ore6?|svc6 +?)|mon|qec|sapi)|i(?:a(?:ctfrm|g(?:cpl|perf))|fxapi|gest|m(?:ap|s(?:j +ob|ntfy|roam))|nput8?|s(?:can|kcopy|mapi|p(?:ci|ex|lay)))|lnashext|m( +?:band|co(?:mpos|nfig)|d(?:lgs|sk(?:mgr|res2?))|i(?:me|ntf)|loader|oc +x|rc|s(?:cript|erver|tyle|ynth)|u(?:sic|til)|v(?:dsitf|scres))|ns(?:a +pi|cmmc|ext|hc|rslvr)|o(?:c(?:prop2?|umentperformanceevents)|t3(?:api +|cfg|dlg|gp(?:clnt|ui)|hc|ms?m|svc|ui))|p(?:api(?:provider|srv)?|cdll +|layx?|modemx|n(?:a(?:ddr|thlp)|et|h(?:past|upnp)|lobby|modem|wsock)| +serial|v(?:acm|oice|vox)|wsockx?|[sx])|r(?:m(?:clien|mgrtn|stor|v2clt +)|prov|t(?:prov|transport)|vstore|t)|s(?:32gt|auth|dmo(?:prp)?|howrdp +filter|kquo(?:ta|ui)|ound(?:3d)?|p(?:arse|r(?:op|pres))|query|role|se +(?:nh|c)|ui(?:ext)?|wave)|tsh|u(?:i70|ser)|w(?:m(?:api|core|redir)|ri +te)|x(?:7vb|8vb|diagn|g(?:wd)?i|masf|p(?:ps|task(?:ringtone|sync))|t( +?:msft|rans)|va2|p))\.dll|e(?:a(?:p(?:olqec|p(?:3hst|cfg|gnui|host|pr +xy)|qec|svc)|s(?:consent|invoker\.proxystub|wrt))|fs(?:adu|core|lsaex +t|svc|util)|hstor(?:api|pwdmgr|shell)|ls(?:core|hyph|lad|trans)?|n(?: +c(?:api|d(?:ec|ump))|ergy(?:prov|task)?)|qossnap|rsvc|sent(?:97|prf)? +|v(?:ent(?:cls|log)|r)|x(?:p(?:lorerframe|srv)|t(?:\-ms\-win\-(?:a(?: +dvapi32\-(?:auth|e(?:ncryptedfile|vent(?:ingcontroller|log))|lsa|msi| +ntmarta|psm\-app|registry|s(?:afer|hutdown))|uthz\-(?:c(?:laimpolicie +s|ontext)|remote))|b(?:iometrics\-winbio|luetooth\-deviceassociation| +randing\-winbrand)|c(?:luster\-(?:clusapi|resutils)|md\-util|ng\-rng| +om\-(?:clbcatq|ole32|psmregister))|domainjoin\-netjoin|f(?:irewallapi +\-webproxy|s(?:\-clfs|utilext\-(?:ifsutil|ulib)))|g(?:di\-(?:d(?:c\-c +reate|evcaps|raw|c)|font|metafile|path|r(?:ender|gn)|wcs)|papi\-group +policy|ui\-uxinit)|kernel(?:32\-(?:appcompat|datetime|errorhandling|f +ile|package(?:\-current)?|registry|sidebyside|transacted|windowserror +reporting)|base\-processthread)|m(?:f\-winmm|m\-(?:msacm|pehelper|wmd +rmsdk)|pr\-multipleproviderrouter|rmcorer\-resmanager|siltcfg\-msi)|n +(?:e(?:tworking\-winipsec|wdev\-config)|t(?:dsa(?:\-activedirectoryse +rver|pi\-activedirectoryclient)|os\-(?:ks(?:ecurit|igningpolic)y|tm)| +user\-(?:caret|d(?:c\-access\-ext|ialogbox|raw)|gui|keyboard|m(?:e(?: +nu|ssage)|isc|ouse)|p(?:owermanagement|rivate)|rectangle\-ext|s(?:tri +ng|y(?:nch|sparams\-ext))|window(?:class|station)?)))|ole32\-(?:bindc +tx|clipboard\-ie|ie\-ext|oleautomation)|pr(?:inter\-winspool|ofile\-( +?:profsvc|userenv))|r(?:as\-(?:ras(?:api32|dlg|man)|tapi32)|ometadata +\-dispenser)|s(?:amsrv\-accountstore|cesrv\-server|e(?:cur(?:32\-tran +slatename|ity\-(?:cr(?:ed|ypt)ui|kerberos|vaultcli))|ssion\-(?:userin +it|w(?:in(?:init|sta)|tsapi32))|tupapi\-(?:c(?:fgmgr32(?:local|remote +)|lassinstallers)|inf|logging))|hell(?:32\-shell(?:com|folders)|\-(?: +propsys|sh(?:ell32|lwapi)))|mbshare\-sscore|pinf\-inf|xs\-oleautomati +on)|umpoext\-umpo|w(?:e(?:bio\-pal|r\-reporting|vtapi\-eventlog)|in(? +:http|inet)\-pal|lan\-(?:grouppolicy|onexui|scard)|sclient\-devlicens +e|wan\-wwapi))\-l1\-1\-0|mgr|s))|s)\.dll|f(?:3ahvoas|aultrep|d(?:bth( +?:proxy)?|devquery|eploy|p(?:host|np|r(?:int|oxy))|respub|ssdp|w(?:cn +|net|sd)|e)|e(?:client|edbacktool)|h(?:autoplay|c(?:at|fg|leanup|pl)| +e(?:ngine|vents)|listen|s(?:hl|rch(?:api|ph)|vc(?:ctl)?)|task|ux(?:a( +?:dapter|pi)|common|graphics|presentation))|i(?:le(?:appxstreamingdat +asource|mgmt)|ndnetprinters|rewall(?:api|controlpanel))|l(?:drclnr|tl +ib)|m(?:api|ifs|s)|ntcache|ont(?:ext|sub)|phc|r(?:ame(?:buf|dyn(?:os) +?)|prov)|su(?:sd|tilext)|t(?:hsvc|lx041e|srch)|undisc|ve(?:api(?:base +)?|c(?:erts|pl)|recover|skybackup|ui|wiz)|w(?:cfg|puclnt|remotesvr)|x +s(?:api|com(?:ex|pose(?:res)?)?|e(?:vent|xt32)|mon|r(?:esm|oute)|st|t +(?:30|iff)|utility|xp32))\.dll|g(?:a(?:cinstall|meux(?:legacygdfs)?)| +cdef|di(?:32|plus)|e(?:nuinecenter|tuname)|l(?:cndfilter|mf32|u32)|p( +?:api|edit|k(?:csp|rsrc)|pr(?:efcl|next)|s(?:cript|vc)|text)|roupingh +c)\.dll|h(?:323msp|al(?:acpi|extintc(?:lpio|uart)dma|macpi)?|baapi|c( +?:coin|providers)|elppaneproxy|g(?:cpl|print)|hsetup|id(?:serv)?|link +|net(?:cfg|mon|wiz)|ot(?:plug|s(?:potauth|tartuseragent))|t(?:tp(?:ap +i|prx[mp])|ui))\.dll|i(?:as(?:a(?:cct|ds)|datastore|hlpr|migplugin|na +p|polcy|r(?:ad|ecst)|s(?:am|do|vcs))?|c(?:a(?:api|rd(?:ie|res))|coins +tall|f(?:gnt5|upgd)|m(?:32|ui|p)|oncodecservice|s(?:igd|vc)|w(?:dial| +phbk))|d(?:ctrls|listen|ndl|store|q)|e(?:a(?:dvpack|k(?:eng|sie|ui)|p +fltr)|dkcs32|frame|peers|r(?:nonce|tutil)|s(?:etu|yspre)p|ui)|f(?:mon +|sutilx?)|g(?:ddiag|mpagnt)|issuba|keext|ls|m(?:a(?:ge(?:hlp|res|sp1) +|pi(?:2fs|2)?)|eshare|gutil|jp(?:10|81)k|m32)|n(?:et(?:c(?:fg|omm|plc +)|mib1|pp(?:ui)?|res)|fo(?:cardapi|soft)|itpki|ked|put(?:switch)?|sen +g)|ologmsg|p(?:busenum(?:proxy)?|hlp(?:api|svc)|montr|nathlp|promon|r +(?:op|t(?:prio|rmgr))|s(?:ecs(?:np|vc)|msnap)|v6mon|x(?:montr|promn|r +(?:ip|tmgr)|sap|wan))|r(?:32_32|41_qcx?|50_(?:32|qcx?)|class|mon)|s(? +:csi(?:cpl|dsc|e(?:xe|d)|log|um|wmi(?:v2)?)|ign32)|t(?:ircl|ss|vdata) +|u(?:engine|ilp)|xsso|yuv_32)\.dll|j(?:et500|nwmon|obexec|s(?:cript9? +|proxy))\.dll|k(?:bd(?:10(?:1[abc]|6n|[136])|a(?:rm(?:ph|ty|[ew])|x2| +zel?|[123l])|b(?:ash|ene|gph1?|hc|lr|ulg|[eru])|c(?:an|herp?|z[12]|[a +rz])|d(?:iv[12]|[av])|est?|f(?:ar|i1|[acior])|g(?:ae|eo(?:er|me|oa|qw +)?|kl|r(?:lnd|1)|r)|h(?:a[uw]|e(?:220|319|bl3|la[23]|pt|b)|u1|[eu])|i +(?:b(?:m02|o)|n(?:asa|be[12n]|dev|en|guj|hin|kan|ma[lr]|ori|pun|t(?:a +m|el)|uk2)|t142|ul(?:at|tn)|[crt])|jpn|k(?:az|hmr|ni|or|urd|yr)|l(?:a +o|isu[bs]|k41[aj]|t[12]|v1|[atv])|m(?:a(?:cst|ori|c)|lt4[78]|on(?:mo) +?|yan)|n(?:e(?:c(?:95|at|nt)|pr|c)|ko|o1|so|tl|[eo])|ogham|p(?:ash|ha +gs|l1|[lo])|r(?:o(?:pr|st)|u[1m]|[ou])|s(?:l1|ms(?:fi|no)|n1|or(?:ex| +s[1t])|w09|yr[12]|[fglpw])|t(?:a(?:ile|jik|t)|h[0123]|i(?:fi2?|prc)|u +(?:rme|[fq]))|u(?:ghr1?|kx|r(?:du|1)|s[alrx]|zb|[krs])|vntc|wol|y(?:a +k|ba|c[cl]))|d(?:1394|_02_(?:1(?:0ec|4e4)|8086)|com|hv1394|net|s(?:cl +i|tub)|usb|vm)|e(?:epaliveprovider|r(?:beros|nel(?:32|base|ceip))|y(? +:iso|mgr))|msvc|orwbrkr|suser|tmw32|d)\.dll|l(?:2(?:gpstore|nacp|sech +c)|a(?:ng(?:cleanupsysprepaction|wrbk)|prxy)|i(?:c(?:dll|mgr10|wmi)|n +kinfo|stsvc|vessp)|l(?:dpnotify|td(?:api|res|svc))|m(?:hsvc|rt)|o(?:a +dperf|ca(?:l(?:s(?:ec|pl)|ui)|tionapi)|g(?:hours|oncli))|p(?:ksetuppr +oxyserv|r(?:help|monui)|k)|s(?:asrv|cshostpolicy|mproxy|m)|uainstall| +z32)\.dll|m(?:a(?:g(?:_hook|nification)|intenanceui|pi(?:32|stub))|b( +?:ae(?:api(?:public)?|xmlparser)|smsapi|ussdapi)|c(?:astmib|d(?:srv)? +32|ewmdrmndbootstrap|hgrcoi|i(?:avi32|cda|ole32|qtz32|seq|wave)|mde|s +rchph|tres|update_(?:authenticamd|genuineintel)|x(?:2svc|driv))|d(?:h +cp|minst)|e(?:diametadatahandler|m(?:diag|orydiagnostic))|f(?:3216|a( +?:acenc|sfsrcsnk)|c(?:4(?:0u|2u|[02])|70|aptureengine|ore|subs)|d(?:v +dec|s)|error|h264enc|m(?:ediaengine|jpegdec|p(?:eg2|4)srcsnk)|net(?:c +ore|src)|p(?:la[ty]|s)|readwrite|s(?:rcsnk|vr)|transcode|vdsp|wmaaec) +|gmtapi|i(?:crosoft(?:\-windows\-(?:battery\-events|hal\-events|kerne +l\-p(?:np|ower|rocessor\-power)\-events|p(?:dc|rocessor\-aggregator\- +events))|\.managementconsole)|dimap|g(?:flt|isol|libnt|uiresource)|me +filt|utils)|l(?:ang|l_(?:hp|mtf|qic))|m(?:c(?:base|ex|fxcommon|ico|nd +mgr|s(?:hext|s)|i)|d(?:evapi|rv)|futil|res|utilse)|nmdd|o(?:bsync|de( +?:mui|x)|ntr_ci|ricons)|p(?:3dmod|4(?:3d(?:ec|mo)|sd(?:ec|mo))d|g4d(? +:ec|mo)d|r(?:api|d[di]m|ext|msg|ui)|ssvc|r)|q(?:ad|certui|dscli|gentr +|ise|logmgr|oa|perf|qm|rt(?:dep)?|s(?:ec|nap)|trig|u(?:pgrd|til))|rm( +?:cor|index)er|s(?:a(?:atext|c(?:3enc|m32)|fd|psspc|sn1|ud(?:decmft|i +te))|c(?:a(?:ndui|t32)|hed|lmd|ms|o(?:nf|r(?:ee|ie[rs]))|px(?:32r|l32 +)|tf(?:monitor|ui|p)?)|d(?:a(?:diag|rt)|bg2|elta|mo|r[im]|tc(?:krm|lo +g|prx|tm|uiu|vsp1res)|xmlc)|e(?:ncode|xc[hl]40)|f(?:eeds(?:bs)?|tedit +)|g(?:ina|svc)|html(?:e[dr])?|i(?:cofire|d(?:crl[34]0|ent|le|ntld)|ef +tp|hnd|ltcfg|m(?:g32|sg|tf)|r3jp|sip|wer)|j(?:et(?:oledb)?|int|te[rs] +)40|keyprot(?:cli|ect)|l(?:bui|s31|tus40)|m(?:msp|peg2(?:ade|en|vde)c +)|n(?:etobj|sspc)|o(?:bjs|e(?:acct|rt2)|rc(?:32r|l32))|p(?:atch[ac]|b +d(?:acoinst|e40|a)|ms(?:nsv|p)|orts|rivs)|r(?:2c(?:enu)?|a(?:hc|t(?:e +lc|ing))|clr40|d(?:2x40|3x40|pwebaccess|c)|e(?:cr|pl)40|le32)|s(?:ap| +c(?:ntrs|p)|h(?:avmsg|ooks|a)|i(?:gn32|p32|tlb)|p(?:ellcheckingfacili +ty|htb|rxy|h)|rch|vp|wch)|t(?:ask|ext(?:40|prediction)|ime|lsapi|scax +)|utb|v(?:1_0|bvm[56]0|c(?:irt|p(?:110_clr040|[56])0|r(?:1[01]0_clr04 +00|70|t[24]0|t))|fw32|id(?:c(?:32|tl)|eodsp)|proc)|w(?:3prt|dat10|ebd +vd|mdm|s(?:ock|tr10))|x(?:bde40|ml(?:2r|3r|6r|[236r])?)|yuv|i)|tx(?:c +lu|dm|ex|legih|oci)|ui(?:fontset|languageclean)up|y(?:comput|docs)|[f +i])\.dll|n(?:a(?:p(?:crypt|dsnap|hlpr|i(?:nsp|psec)|montr)|rrhook|t(? +:ivehooks|urallanguage6))|c(?:a(?:api|svc)|bservice|d(?:autosetu|pro) +p|objapi|rypt(?:prov|sslp|ui)?|si|xpnt|i)|d(?:de(?:api|nb32)|f(?:api| +etw|hcdiscovery)|is(?:capcfg|hc|implatform)|proxystub|uprov)|e(?:goex +ts|t(?:api32|bios|c(?:enter|fgx|orehc)|diagfx|event|fxperf|i(?:ohlp|d +)|join|logon|m(?:an|sg)|p(?:lwiz|ro(?:fm(?:svc)?|jw|visionsp|f))|rap| +shell|trace|u(?:i[012]|tils)|work(?:explorer|itemfactory|map|status)| +h)|wdev)|input|l(?:a(?:api|hc|svc)|html|m(?:gp|proxy|sprep)|s(?:bres| +d(?:ata0(?:0(?:0[012379acdf]|1[01389abd]|2[012467a]|3[9e]|4[5679abce] +)|41[46]|81[6a]|c1a)|l)|lexicons0(?:0(?:0[12379acdf]|1[01389abd]|2[01 +2467a]|3[9e]|4[5679abce])|41[46]|81[6a]|c1a)|models0011))|m(?:evtmsg| +mkcert)|ormaliz|p(?:mproxy|ptools)|rpsrv|s(?:h(?:http|ipsec|wfp)|isvc +|i)|t(?:asn1|d(?:ll|s(?:ap|bcl)i)|l(?:an(?:man|ui2?)|sapi)|m(?:arta|s +(?:api|dba|evt|mgr|svc))|print|s(?:dexts|hrui)|vdm(?:cpl|d))|w(?:api( +?:16|32)|cfg|event|provau|wks))\.dll|o(?:akley|bjsel|c(?:cache|manage +|setapi)|d(?:bc(?:32(?:gt)?|bcp|c(?:onf|p32|r32|u32)|int|j[it]32|p32r +|trac)|dbse32|exl32|fox32|pdx32|text32)|emlicense|fffilt|gldrv|le(?:3 +2|a(?:cc(?:hooks|rc)?|ut32)|c(?:li|nv)32|dlg|pr(?:o32|n)|res|svr32|th +k32)|n(?:ex(?:ui)?|lineidcpl)|obefldr|p(?:cservices|engl32)|s(?:basel +n|ksupport|uninst))\.dll|p(?:2p(?:collab|g(?:asvc|raph)|netsh|svc)?|a +(?:ckage(?:stateroaming|r)|nmap|utoenr)|c(?:a(?:cli|dm|evts|svc|ui)|p +(?:ksp|tpm12)|wu(?:tl|m))|dh(?:ui)?|e(?:erdist(?:ad|cleaner|httptrans +|s(?:vc|h)|wsddiscoprov)?|rf(?:c(?:entercpl|trs)|disk|n(?:et|w)|os|pr +oc|t(?:rack|s)))|hoto(?:metadatahandler|wiz)|i(?:dgenx?|fmgr|d)|jlmon +|ku2u|l(?:ay(?:listfolder|sndsrv|to(?:manag|statusprovid)er)|ustab|a) +|mcsnap|n(?:gfilt|idui|p(?:policy|setup|ts|ui|xassoc(?:prx)?)|rp(?:au +to|hc|nsp|svc))|o(?:lstore|rtabledevice(?:api|c(?:lassextension|onnec +tapi)|s(?:tatus|yncprovider)|types|w(?:iacompat|mdrm))|ts|w(?:ercpl|r +prof))|pcsnap|r(?:esentation(?:cffrasterizernative_v0300|hostproxy|na +tive_v0300)|flbmsg|int(?:dialogs|filterpipelineprxy|isolationproxy|ui +)|n(?:cache|fldr|ntfy|tvpt)|o(?:cinst|f(?:api|ext|map|prov|svc(?:ext) +?)|psys|v(?:core|svc|thrd)|ximity(?:common|service))|vdmofcomp)|s(?:a +pi|base|chdprf|hed|isdecd|m(?:odulediscoveryprovider|srv)|nppagn|t(?: +ask|or(?:sv|e)c))|u(?:i(?:api|obj)|rchasewindowslicense)|w(?:launcher +|rshplugin|sso))\.dll|q(?:a(?:gent(?:rt)?|sf)|c(?:ap|liprov)|dvd?|ed( +?:it|wipes)|mgr(?:prxy)?|osname|s(?:hvhos|vrmgm)t|u(?:artz|ery|til)|w +ave)\.dll|r(?:a(?:c(?:engn|pldlg)|dar(?:dt|rs)|s(?:a(?:dhlp|pi32|uto) +|c(?:fg|hap|trs)|d(?:ia|l)g|gcw|m(?:ans?|bmgr|ontr|xs|m)|p(?:la|p)p|q +ec|rad|s(?:api|er)|t(?:api|ls)))|cbdyctl|d(?:chost|p(?:c(?:fgex|ore(? +:kmts|ts)?)|d3?d|en(?:c(?:dd|om)|dp)|refd(?:rvapi|d)|snd|udd|wsx)|s(? +:appxhelpe|dwmd)r|vvmtransport)|e(?:agent|covery|g(?:api|ctrl|idle|sv +c|wizc)|mo(?:tepg|vedevice(?:contexthandler|elevated))|nd|s(?:ampledm +o|eteng(?:mig)?|utils))|fxvmt|gb9rast|httpaa|iched(?:20|32)|mapi|nr20 +|o(?:amingsecurity|metadata|tmgr|utetab)|pc(?:diag|epmap|http|n(?:dfp +|s[4h])|rt(?:remote|4)|ss)|s(?:aenh|fsaps|hx32|mps|trtmgr|vp(?:msg|pe +rf|sp))|t(?:ffilt|ipxmib|utils|m)|wnh)\.dll|s(?:3legacy|a(?:fr(?:cdlg +|dm|slv)|m(?:cli|lib|pleres|srv)|s)|be(?:io|res)?|c(?:a(?:nsetting|rd +(?:dlg|s(?:sp|vr))|vengeui)|c(?:base|ls|sccp)|e(?:cli|srv|xt)|h(?:ann +el|ed(?:cli|svc))|ksp|lgntfy|r(?:edir|ipto|obj|ptadm|run))|d(?:autopl +ay|cpl|engin2|hcinst|iag(?:eng|prv|schd)|ohlp|pblb|rsvc|shext)|e(?:ar +chfolder|c(?:host|logon|proc(?:_(?:isv|ssp(?:_isv)?))?|ur(?:32|ity))| +n(?:d(?:cmsg|mail)|s(?:api|cfg|or(?:performanceevents|s(?:api|c(?:las +sextension|pl)))|rsvc)|s)|r(?:ialui|vdeps|wvdrv)|ssenv|t(?:bcdlocale| +networklocation|ting(?:monitor|sync(?:info)?)|up(?:api|cln|dll|etw))) +|f(?:c(?:_o|file)s|mapi|c)|h(?:a(?:cct|remediacpl)|core|doc(?:lc|vw)| +ell(?:32|style)|folder|gina|im(?:eng|gvw)|lwapi|media|pafact|s(?:crap +|etup|vcs)|unimpl|websvc)|i(?:g(?:ndrv|tab)|m(?:auth|cfg)|sbkup)|kdll +|l(?:ayerxp|cext|wga|c)|m(?:artcard(?:credentialprovide|simulato)r|b( +?:helperclass|wmiv2)|iengine|logcfg|s(?:deviceaccessrevocation|pace|r +outer)|tpapi)|n(?:dvolsso|mp(?:api|snap)|tsearch)|o(?:ft(?:kbd|pub)|r +t(?:server2003compat|windows6(?:compat|1)))|p(?:acecontrol|bcd|cmsg|e +rror|fileq|inf|m(?:pm|sg)|net|o(?:olss|pk)|p(?:c(?:ext|om(?:api|mdlg) +|c)|inst|np|objs|uinotify|w(?:inob|mi)|c)|w(?:i(?:nsat|z(?:eng|img|re +s|ui))|mp)|p)|q(?:l(?:ce(?:compact4|oledb[34]|qp[34]|se[34])0|srv32|u +nirl|w(?:id|oa))|mapi)|r(?:c(?:hadmin|lient|ore)|events|helper|m(?:_p +s|client|lib|s(?:can|hell|tormod)|trace)|puxnativesnapin|rstr|svc|um( +?:api|svc)|v(?:cli|svc)|wmi|[hm])|s(?:core(?:ext)?|dp(?:api|srv)|pi(? +:cli|srv)|shim|tpsvc)|t(?:artupscan|client|i_ci|o(?:bject|r(?:age(?:c +ontexthandler|wmi(?:_passthru)?)|ewuauth|prop|svc))|r(?:eamci|m(?:dll +|filt)|ucturedquery)|i)|u(?:bscriptionmgr|d)|v(?:cpack|svc)|wprv|x(?: +proxy|s(?:hared|s(?:rv|tore))|s)|y(?:nc(?:center|eng|hostps|infrastru +cture(?:ps)?|reg|ui)|s(?:class|fxui|inv|main|ntfy|prepmce|setup|tem(? +:cpl|eventsbroker(?:client|server)))))\.dll|t(?:2embed|a(?:b(?:btn(?: +ex)?|svc)|pi(?:32|lua|migplugin|perf|s(?:rv|ysprep)|ui|3)|sk(?:barcpl +|comp|schd(?:ps)?))|bs(?:svc)?|cp(?:ipcfg|m(?:ib|on(?:ui)?))|dh|erm(? +:mgr|srv)|h(?:awbrkr|eme(?:cpl|service|ui)|readpoolwinrt|umbcache)|im +e(?:broker(?:client|server)|datemuicallback|synctask)|l(?:ntsvr|scs)p +|pm(?:compc|tasks|vsc)|query|r(?:a(?:ffic|pi)|kwks)|s(?:appcmp|byuv|c +(?:fgwmi|hannel)|ddd|errredir|gqec|mf|p(?:kg|nprdrcoinstaller|ubwmi)| +srvlic|usb(?:gdcoinstaller|redirectiongrouppolicyextension)|workspace +)|tls(?:auth|cfg)|vratings|w(?:ext|in(?:ap|u)i)|xf(?:log|w32)|zres)\. +dll|u(?:bpm|cmhc|d(?:hisapi|wm)|exfat|fat|i(?:a(?:nimation|utomationc +ore(?:res)?)|com|hub|r(?:eng|ibbon(?:res)?))|lib|m(?:andlg|dmxfrm|p(? +:npmgr|o(?:ext|wmi)|o)|rdp|b)|n(?:attend|i(?:ime|mdmat|plat)|tfs)|pnp +(?:host|ui)?|r(?:eg|lmon|l)|s(?:b(?:ceip|mon|perf|ui)|er(?:32|account +controlsettings|cpl|env|initext|language(?:profilecallback|scpl))|p10 +|tprov)|tildll|udf|x(?:init|lib(?:res)?|sms|theme))\.dll|v(?:a(?:ult( +?:c(?:li|redprovider)|roaming|svc)?|n)|b(?:ajet32|oxogl(?:arrayspu|cr +util|errorspu|feedbackspu|pa(?:ck|ssthrough)spu)|script)|cdex|d(?:mdb +g|s(?:_ps|bas|dyn|util|vd))|er(?:ifier|sion)|f(?:podbc|wwdm32)|ga(?:2 +56|64k)?|i(?:dreszr|rtdisk)|joy|m(?:applicationhealthmonitorproxy|bus +(?:coinstaller|pipe|res)|dcoinstall|ic(?:res|timeprovider)|rdvcore|s( +?:rvc|torfltres))|p(?:c\-s3|nike(?:api)?)|s(?:cmgrps|s(?:_ps|api|trac +e))|wipxspx)\.dll|w(?:3(?:2t(?:ime|opl)|ssl)\.dll|a(?:bsyncprovider|v +(?:dest|emsp))\.dll|b(?:emcomn|iosrvc)\.dll|c(?:m(?:api|csp|svc)|n(?: +api|csvc|eap(?:auth|peer)proxy|netsh|wiz)|spluginservice)\.dll|d(?:fr +es|i(?:asqmmodule|gest)|score|[ci])\.dll|e(?:b(?:c(?:amui|heck|lnt)|h +its|io|s(?:ervices|ocket)|vw)|c(?:api|svc)|r(?:c(?:oncpl|plsupport)|d +iagcontroller|svc|ui)|vt(?:api|fwd|svc)|r)\.dll|f(?:apigp|dprov|hc|sr +)\.dll|h(?:ealog|helpe)r\.dll|i(?:a(?:aut|d(?:efui|ss)|rpc|s(?:c(?:an +profiles|r)|ervc|hext)|trace|v(?:ideo|usd))\.dll|mgapi\.dll|n(?:32spl +\.dll|b(?:io|rand)\.dll|credprovider\.dll|dows(?:\.(?:applicationmode +l(?:\.(?:background\.(?:systemevents|time)broker|store(?:\.testingfra +mework)?))?|devices\.(?:enumeration(?:\.ps)?|geolocation|p(?:ortable| +rinters\.extensions)|sensors)|g(?:lobalization(?:\.fontgroups)?|raphi +cs(?:\.printing)?)|help\.runtime|immersiveshell\.serviceprovider|medi +a(?:\.(?:devices|mediacontrol|renewal|streaming(?:\.ps)?))?|networkin +g(?:\.(?:backgroundtransfer|connectivity|networkoperators\.hotspotaut +hentication|proximity|sockets\.pushenabledapplication))?|s(?:ecurity\ +.(?:authentication\.onlineid|credentials\.ui\.credentialpicker)|torag +e\.(?:applicationdata|compression)|ystem\.(?:display|profile\.hardwar +eid|remotedesktop))|ui(?:\.(?:i(?:mmersive|nput\.inking)|xaml))?|web) +|codecs(?:ext)?|livelogin)\.dll|ethc\.dll|fax\.dll|http\.dll|i(?:n(?: +et(?:\.dll)?|itext\.dll)|psec\.dll)|langdb\.dll|m(?:de|mbase|soirmpro +tector|m)\.dll|n(?:si|tbbu)\.dll|opcirmprotector\.dll|r(?:nr|s(?:cmd| +mgr|srv))\.dll|s(?:atapi|card|hfhc|ku|ockhc|r(?:pc|v)|t(?:rm|a)|ync(? +:metastore|providers)?)\.dll|t(?:rust|ypes)\.dll|usb\.dll)|sp\.dll|tn +esswmiv2provider\.dll)|ks(?:cli|p(?:brokerax|rtps)|svc)\.dll|l(?:an(? +:api|c(?:fg|onn)|dlg|gpui|h(?:lp|c)|inst|ms?m|pref|radiomanager|s[ev] +c|u(?:til|i))|dap32|gpclnt|id(?:c(?:li|redprov)|fdp|nsp|prov|res|svc) +|notify|roamextension|s0wndh)\.dll|m(?:a(?:dmo[de]|lfxgfxdsp|sf)|code +cdspps|d(?:m(?:log|ps)|rm(?:dev|net|sdk))|err(?:enu|or)|i(?:c(?:lnt|m +iplugin)|d(?:com|x)|prop|scmgr|tomi)|netmgr|p(?:asf|c(?:ore|[dm])|d(? +:ui|xm)|e(?:ffects|ncen)|hoto|loc|mde|ps|s(?:hell|rcwp)|ui)|s(?:dmo(? +:e2|[de])|gapi|pdmo[de]|tream)|v(?:core|d(?:ecod|mo(?:e2|d)|spa)|enco +d|s(?:de|en)cd|xencd)|[ip])\.dll|o(?:rkerdd|w(?:32|fax(?:ui)?))\.dll| +p(?:c(?:ao|cpl|mig|svc|umi|websync)|d(?:_ci|busenum|s(?:h(?:ext|servi +ceobj)|p)|wcn)|n(?:apps|core|inprc|prv|sruprov)|c)\.dll|s(?:2(?:_32|h +elp)|c(?:api|i(?:nterop|svif)|lient|misetup|proxystub|svc)|d(?:api|ch +ngr|mon|printproxy|scanproxy)|e(?:cedit|pno)|h(?:atm|bth|con|e(?:lper +|xt)|i(?:p6|rda|sn)|netbs|qos|rm|tcpip)|m(?:a(?:gent|nmigrationplugin +|uto)|plpxy|res|svc|wmipl)|nmp32|ock32|s(?:ervice|hared|ync)|tdecod)\ +.dll|tsapi32\.dll|u(?:a(?:ext|pi|u(?:eng1?|serv))|cltu[ix]|d(?:f(?:co +installer|platform|svc|x)|river)|ps2?|s(?:ettingsprovider|hareduxreso +urces)|webv?)\.dll|vc\.dll|wa(?:api|n(?:a(?:dvu|p)i|c(?:fg|onn)|hc|in +st|mm|pr(?:ef|otdim)|radiomanager|svc)|pi)\.dll|zc(?:dlg|s(?:api|vc)) +\.dll)|x(?:a(?:ctsrv|udio2_8)|enroll|input(?:1_4|9_1_0)|ml(?:filter|l +ite|provi?)|olehlp|p(?:ob2res|s(?:filt|gdiconverter|p(?:1res|2res|3re +s|rint)|rasterservice|s(?:ervices|hhdr|vcs)))|w(?:izards|reg|tp(?:dui +|w32)))\.dll|z(?:gmprxy|ipfldr)\.dll|\-)$}i ){ warn "adding ANYWAY -l ($full) "; $dlls{$full}++; } } else { warn "COULDN'T FIND IT SO ignoring -l ($relfile) " +; ## Wx::Perl::Packager helps Wx } } push @args, map {; "-l" => $_ } sort keys %dlls ; } push @args, '--output' => $self->{outfile}, '-c', $self->{infi +le} ;; ::dd( \@args ); system @args; print "try $$self{outfile} \nif it works without %PATH% chan +ge it to gui with ( $EXE_UPDATE )\n"; return; } ## end sub pack_exe } ## end BEGIN __END__

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1148802]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2018-06-18 08:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?



    Results (109 votes). Check out past polls.

    Notices?