403Webshell
Server IP : 81.2.241.106  /  Your IP : 216.73.216.165
Web Server : Apache/2.4.67 (Debian)
System : Linux tranq-f.bakta.org 5.10.0-45-amd64 #1 SMP Debian 5.10.259-1 (2026-07-02) x86_64
User : lisky ( 1002)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/src/packages/openssl-1.0.1k/util/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/src/packages/openssl-1.0.1k/util/src-dep.pl
#!/usr/local/bin/perl

# we make up an array of
# $file{function_name}=filename;
# $unres{filename}="func1 func2 ...."
$debug=1;
#$nm_func="parse_linux";
$nm_func="parse_solaris";

foreach (@ARGV)
	{
	&$nm_func($_);
	}

foreach $file (sort keys %unres)
	{
	@a=split(/\s+/,$unres{$file});
	%ff=();
	foreach $func (@a)
		{
		$f=$file{$func};
		$ff{$f}=1 if $f ne "";
		}

	foreach $a (keys %ff)
		{ $we_need{$file}.="$a "; }
	}

foreach $file (sort keys %we_need)
	{
#	print "	$file $we_need{$file}\n";
	foreach $bit (split(/\s+/,$we_need{$file}))
		{ push(@final,&walk($bit)); }

	foreach (@final) { $fin{$_}=1; }
	@final="";
	foreach (sort keys %fin)
		{ push(@final,$_); }

	print "$file: @final\n";
	}

sub walk
	{
	local($f)=@_;
	local(@a,%seen,@ret,$r);

	@ret="";
	$f =~ s/^\s+//;
	$f =~ s/\s+$//;
	return "" if ($f =~ "^\s*$");

	return(split(/\s/,$done{$f})) if defined ($done{$f});

	return if $in{$f} > 0;
	$in{$f}++;
	push(@ret,$f);
	foreach $r (split(/\s+/,$we_need{$f}))
		{
		push(@ret,&walk($r));
		}
	$in{$f}--;
	$done{$f}=join(" ",@ret);
	return(@ret);
	}

sub parse_linux
	{
	local($name)=@_;

	open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";
	while (<IN>)
		{
		chop;
		next if /^\s*$/;
		if (/^[^[](.*):$/)
			{
			$file=$1;
			$file="$1.c" if /\[(.*).o\]/;
			print STDERR "$file\n";
			$we_need{$file}=" ";
			next;
			}

		@a=split(/\s*\|\s*/);
		next unless $#a == 7;
		next unless $a[4] eq "GLOB";
		if ($a[6] eq "UNDEF")
			{
			$unres{$file}.=$a[7]." ";
			}
		else
			{
			if ($file{$a[7]} ne "")
				{
				print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";
				}
			else
				{
				$file{$a[7]}=$file;
				}
			}
		}
	close(IN);
	}

sub parse_solaris
	{
	local($name)=@_;

	open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";
	while (<IN>)
		{
		chop;
		next if /^\s*$/;
		if (/^(\S+):$/)
			{
			$file=$1;
			#$file="$1.c" if $file =~ /^(.*).o$/;
			print STDERR "$file\n";
			$we_need{$file}=" ";
			next;
			}
		@a=split(/\s*\|\s*/);
		next unless $#a == 7;
		next unless $a[4] eq "GLOB";
		if ($a[6] eq "UNDEF")
			{
			$unres{$file}.=$a[7]." ";
			print STDERR "$file needs $a[7]\n" if $debug;
			}
		else
			{
			if ($file{$a[7]} ne "")
				{
				print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";
				}
			else
				{
				$file{$a[7]}=$file;
				print STDERR "$file has $a[7]\n" if $debug;
				}
			}
		}
	close(IN);
	}


Youez - 2016 - github.com/yon3zu
LinuXploit