#!/usr/bin/perl -w use strict; use warnings; use Cwd qw(); my $path = Cwd::cwd(); my $date = localtime(); my $count=0; my $count_file = 0; my $report = "$path/report_$date.txt"; open (FINDIT, "find $path -name '*.js' -type f -print |") || die "Couldn't execute find!\n"; while (my $filename = ) { $count_file++; open (TABLETKA, "$filename") || die "Can't open $filename: $!\n"; my @lines = ; seek(TABLETKA,0,0); my @clean = ; foreach (@lines) { if ($_ =~ m#(document\.write\(''\);)#) { foreach (@clean) { $count++; if ( s{([[:space:]];document\.write\(''\);)}{ //eof} ) { close (TABLETKA); open (APP, ">$filename") || die "Can't open FOR WRITING $filename: $!\n"; print APP @clean; close (APP); open (REPORT, ">>$report") || die "Can't open a report.txt: $!\n"; chomp($filename); print REPORT "$count_file. FILE: $filename\nINFECTED LINE NUMBER: $count\nCLEANING DATE: $date\n\n"; close (REPORT); $count = 0; } elsif ( s{([^[:space:]])(;document\.write\(''\);)}{$1; //eof} ) { close (TABLETKA); open (APP, ">$filename") || die "Can't open FOR WRITING $filename: $!\n"; print APP @clean; close (APP); open (REPORT, ">>$report") || die "Can't open a report.txt: $!\n"; chomp($filename); print REPORT "$count_file. FILE: $filename\nINFECTED LINE NUMBER: $count\nCLEANING DATE: $date\n\n"; close (REPORT); $count = 0; } elsif ( s{(;document\.write\(''\);)}{ //eof} ) { close (TABLETKA); open (APP, ">$filename") || die "Can't open FOR WRITING $filename: $!\n"; print APP @clean; close (APP); open (REPORT, ">>$report") || die "Can't open a report.txt: $!\n"; chomp($filename); print REPORT "$count_file. FILE: $filename\nINFECTED LINE NUMBER: $count\nCLEANING DATE: $date\n\n"; close (REPORT); $count = 0; } } } } }