ヤミRoot VoidGate
User / IP
:
216.73.216.2
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
itrave
/
perl5
/
lib
/
perl5
/
Gaim
/
Log
/
Viewing: Finder.pm
########################################### package Gaim::Log::Finder; ########################################### use strict; use warnings; use Log::Log4perl qw(:easy); use File::Find (); our $VERSION = "0.02"; ########################################### sub new { ########################################### my($class, @options) = @_; my ($home) = glob "~"; my $start_dir; for (qw(.purple .gaim)) { my $dir = "$home/$_"; if(-d $dir) { $start_dir = "$dir/logs"; last; } } my $self = { start_dir => $start_dir, callback => sub { 1 }, @options, }; return bless $self, $class; } ########################################### sub find { ########################################### my($self, $start_dir) = @_; $start_dir = $self->{start_dir} unless defined $start_dir; File::Find::find sub { $self->wanted() }, $start_dir; } ########################################### sub wanted { ########################################### my($self) = @_; return if $File::Find::name =~ m#$self->{start_dir}/(.*?)/(.*?)/.system/#; my $path = $File::Find::name; my($protocol, $local_user, $remote_user, $file) = $path =~ m#$self->{start_dir}/(.*?)/(.*?)/(.*?)/(.*\.txt)$#; if(defined $file) { $self->{callback}->($self, $File::Find::name, $protocol, $local_user, $remote_user, $file ); } } 1; __END__ =head1 NAME Gaim::Log::Finder - Find Gaim's Log Files =head1 SYNOPSIS use Gaim::Log::Finder; my $finder = Gaim::Log::Finder->new( callback => sub { print "Found $_[1]\n"; } ); $finder->find(); =head1 DESCRIPTION Gaim::Log::Finder traverses through all known Gaim log file hierarchies and calls back to the previously defined callback function every time it finds a Gaim log file. =head2 Methods =over 4 =item C<my $finder = Gaim::Log::Finder->new(callback =E<gt> $coderef)> The callback function that gets passed in as a code reference will be called later for every log file found (see below). The finder will start in the C<.gaim/logs> directory under the current user's home directory. If it finds C<.purple/logs>, which is the log file location for gaim > 2.0 logs, it will use that instead. If, for some reason you want to start at a different location, pass it in as C<start_dir>: my $finder = Gaim::Log::Finder->new( callback => sub { print "Found $_[0]\n"; }, start_dir => "/tmp", ); =item C<my $finder = $parser-E<gt>find()> Starts the finder, and will call the previously defined callback function every time it finds a Gaim log file. It will pass the following parameters to the callback function: sub gaim_log_callback { my($self, $logfile, $protocol, $local_user, $remote_user, $file) = @_; # ... } C<$self> is an object reference to the finder itself. C<$logfile> is the full path to the logfile. C<$protocol> is the IM transport mechanism/provider used, this could be C<yahoo>, C<aim>, C<jabber> or similar. C<$local_user> is the local user's userid. C<$local_user> is the user's id who's at the other end of the conversation. C<$file> is the name of the text file. =back =head1 LEGALESE Copyright 2007 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR 2007, Mike Schilli <cpan@perlmeister.com>
Coded With 💗 by
0x6ick