Пример #1
0
function scanall($path)
{
    echo "path {$path} <br>";
    $handle = opendir($path);
    $i = 0;
    echo "i= " . $i . "<br>";
    while ($dir = readdir($handle) !== false) {
        $i = $i++;
        echo "i= " . $i . "<br>";
        if ($dir !== "." && $dir !== "..") {
            echo "no . no .. " . $dir . " <br>";
            if (is_file($path . "/" . $dir)) {
                echo "  " . $path . "/" . $dir . "<br>";
                //$arDir[]= array();
            }
            if (is_dir($path . "/" . $dir)) {
                echo " ar: " . $path . "/" . $dir . "<br>";
                scanall($path . "/" . $dir);
            }
        }
        // 		else {$arDir[]=$dir;}
    }
    // 	return $arDir;
}
Пример #2
0
function scanall($root)
{
    global $find, $infectedFiles, $showOnlyInfectedFiles, $cleanInfected;
    $time_start = microtime_float();
    $root = str_replace("//", "/", $root);
    echo "<li>" . $root;
    $directories = fetchfolders($root);
    ob_implicit_flush();
    ob_flush();
    sleep(1);
    if (is_array($directories)) {
        // get all files
        if (($tmp = fetchfiles($root)) !== null) {
            echo "<ul>";
            $files = $tmp;
            foreach ($files as $file) {
                $numMatches = checkMalware($root . $file, $find);
                if (!empty($numMatches)) {
                    if ($cleanInfected) {
                        cleanInfected($root . $file, $find);
                    }
                    echo "<li style='background-color:c00'><p style='padding:0 0 0 5px; margin:0; color:#fff'>" . ($infectedFiles[] = $root . $file);
                    echo " - " . (microtime_float() - $time_start) . "</p></li>";
                } elseif (!$showOnlyInfectedFiles) {
                    $infectedFiles[] = $root . $file;
                    echo "<li>" . $file . "</li>";
                    // $root.$file
                }
            }
            echo "</ul>";
        }
        echo "<ol>";
        foreach ($directories as $dir) {
            echo "<li>" . $dir;
            ob_implicit_flush();
            ob_flush();
            sleep(1);
            // get all files
            if (($tmp = fetchfiles($dir)) !== null) {
                echo "<ul>";
                $files = $tmp;
                foreach ($files as $file) {
                    if ($dir[strlen($dir) - 1] === "/") {
                        $dir = substr($dir, 0, -1);
                    }
                    $numMatches = checkMalware($dir . "/" . $file, $find);
                    if (!empty($numMatches)) {
                        if ($cleanInfected) {
                            cleanInfected($dir . "/" . $file, $find);
                        }
                        echo "<li style='background-color:c00'><p style='padding:0 0 0 5px; margin:0; color:#fff'>" . ($infectedFiles[] = $dir . "/" . $file);
                        echo " - " . (microtime_float() - $time_start) . "</p></li>";
                    } elseif (!$showOnlyInfectedFiles) {
                        $infectedFiles[] = $dir . "/" . $file;
                        echo "<li>" . $file . "</li>";
                    }
                }
                echo "</ul>";
            }
            // gel all directories
            if ($root[strlen($root) - 1] === "/") {
                $tmp_root = substr($root, 0, -1);
            }
            if (($tmp = fetchfolders($dir . "/")) !== null && $dir !== $tmp_root) {
                foreach ($tmp as $d) {
                    $a = scanall($d . "/");
                    if (is_array($a)) {
                        array_merge($infectedFiles, $a);
                    }
                }
            }
            echo "</li>";
        }
        echo "</ol>";
    } else {
        // get all files
        if (($tmp = fetchfiles($root)) !== null) {
            echo "<ul>";
            $files = $tmp;
            foreach ($files as $file) {
                $numMatches = checkMalware($root . $file, $find);
                if (!empty($numMatches)) {
                    if ($cleanInfected) {
                        cleanInfected($root . $file, $find);
                    }
                    echo "<li style='background-color:c00'><p style='padding:0 0 0 5px; margin:0; color:#fff'>" . ($infectedFiles[] = $root . $file);
                    echo " - " . (microtime_float() - $time_start) . "</p></li>";
                } elseif (!$showOnlyInfectedFiles) {
                    $infectedFiles[] = $root . $file;
                    echo "<li>" . $file . "</li>";
                    // $root.$file
                }
            }
            echo "</ul>";
        }
    }
    echo "</li>";
    return $infectedFiles;
}