/** * * @param $path * @param $doLog */ function getScanData($path = '', $doLog = false) { $configModel =& JModel::getInstance('Configuration', 'JDefenderModel'); $params = new JParameter($configModel->getIni()); JD_Scanner::loadScanner(); $fsScanner = false; if (!$this->getState('filesystem.scanned')) { $fsScanner =& JD_Filesystem_Scanner::getInstance(); $fsScanner->loadValidator(); // Set the "first scan" flag. if ($this->_isFirstScan()) { foreach ($fsScanner->listeners as $k => $v) { if (method_exists($v, 'setFirstScan')) { $fsScanner->listeners[$k]->setFirstScan(true); } } } if ($doLog) { JD_Vars_Helper::setVar('status', 'jdefender_scan', JText::_('Scanning filesystem')); } // Run scanners if (empty($this->_filesystem_data)) { $this->_filesystem_data = $fsScanner->scan($path); } } $optScanner = false; if (!$this->getState('options.scanned')) { $optScanner =& JD_Options_Scanner::getInstance(); $optScanner->loadValidator(); if ($doLog) { JD_Vars_Helper::setVar('status', 'jdefender_scan', JText::_('Scanning system settings')); } // scan if (empty($this->_options_data)) { $this->_options_data = $optScanner->scan(); $this->setState('options.scanned', true); } } // If filesystem scan ended if (!empty($this->_filesystem_data['EOF'])) { $this->setState('filesystem.scanned', true); unset($this->_filesystem_data['EOF']); } $result = array('filesystem' => &$this->_filesystem_data, 'options' => &$this->_options_data); return $result; }
/** * Loads Scanner implementations * @param $name * @return mixed filename or boolean */ function loadScanner($name = false) { jimport('joomla.filesystem.file'); if ($name) { $name = JFile::makeSafe($name); } if (!$name) { $scanners = JD_Scanner::getScannerNames(); $dir = JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'scanners'; foreach ($scanners as $s) { require_once $dir . DS . $s . '.php'; } return true; } $path = JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'scanners' . DS . 'jd_' . $name . '_scanner.php'; if (JFile::exists($path)) { require_once $path; return 'JD_' . ucfirst($name) . '_Scanner'; } return false; }
function __construct() { parent::__construct(); $this->_new_version = null; }
function createScanFileList() { $doLog = JD_Scan_Helper::isLogging(); // disable logging for now JD_Scan_Helper::setLogging(false); $fsScanner =& JD_Scanner::getInstance('filesystem'); // Register a validator, to form a filelist. $fileListCreator = new JD_Filelist_Creator(); $fsScanner->register($fileListCreator); // Make the file list $results = $fsScanner->scan(JPATH_ROOT, false); $filename = $this->_getFileListName(); // Write the file list to a temporary file file_put_contents($filename, $results['filelist'][1]); // Set filelist filename for scan process JD_Scan_Helper::setFilelist($filename); JD_Scan_Helper::setLogging($doLog); // Store total file number JD_Vars_Helper::setVar('total', 'jdefender_scan', $fsScanner->_filesScanned + $fsScanner->_foldersScanned); return array($fsScanner->_filesScanned, $fsScanner->_foldersScanned); }
/** * Loads validator(s) * (non-PHPdoc) * @see administrator/components/com_jdefender/lib/scanners/JD_Scanner#loadValidator($name) * @override */ function loadValidator($names = false) { if (!$names) { $names = glob(JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'validators' . DS . 'filesystem' . DS . '*.php'); foreach ($names as $k => $v) { $names[$k] = basename($v); } $names = array_map(array(&$this, '_getValidatorName'), $names); } settype($names, 'array'); parent::loadValidator($names, 'filesystem'); }
/** * Loads validator(s) * (non-PHPdoc) * @see administrator/components/com_jdefender/lib/scanners/JD_Scanner#loadValidator($name) * @override */ function loadValidator($names = false) { if (!$names) { $names = glob(JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'validators' . DS . 'live_protection' . DS . '*.php'); foreach ($names as $k => $v) { if (strpos($v, 'abstract') !== false) { unset($names[$k]); continue; } $names[$k] = basename($v); } $names = array_map(array(&$this, '_getValidatorName'), $names); } settype($names, 'array'); parent::loadValidator($names, 'live_protection'); }