function getCommand($poConfig) { $dbCon = connectTo($poConfig, "PublicOpinion", FALSE, TRUE); $dbUser = $poConfig->getSetting("PublicOpinion", "DBUser"); $dbTable = "Courthouse." . $dbUser . "_TASKS"; $sqlGetCommand = "SELECT `command`,`target`,`words`,`job_id` FROM " . $dbTable . " WHERE `complete`=FALSE LIMIT 1;"; $resultCommand = $dbCon->query($sqlGetCommand); return $resultCommand->fetch_row(); }
function resetCLCSdb($dbType, $dbConfig) { $dbCon = connectTo($dbConfig, $dbType, FALSE, TRUE); $configFile = "Config/" . $dbType . ".sql"; $dbCon->query("DROP DATABASE IF EXISTS {$dbType}"); $dbCon->query("CREATE DATABASE {$dbType}"); $dbCon->close(); loadSQLFile($dbType, $dbConfig, $configFile); }
function showCourthouseStatus($chConfig) { $dbCon = connectTo($chConfig, "Courthouse", TRUE, FALSE); $tempWordResults = $dbCon->query("SELECT COUNT(*) FROM Words"); $tempWord = $tempWordResults->fetch_row(); if (is_null($tempWord)) { $wordCount = 0; } else { $wordCount = $tempWord[0]; } $tempTargetResults = $dbCon->query("SELECT COUNT(*) FROM Targets"); $tempTarget = $tempTargetResults->fetch_row(); if (is_null($tempTarget)) { $targetCount = 0; } else { $targetCount = $tempTarget[0]; } $tempWordResults->close(); $tempTargetResults->close(); $dbCon->close(); echo "Statistics:\n"; echo "Words: " . $wordCount . "\n"; echo "Targets: " . $targetCount . "\n"; userAck(); }
function updateFromCourthouses($jConfig) { $dbCon = connectTo($jConfig, "Justice", TRUE, FALSE); $sqlAllCourthouses = "SELECT `address`,`port`,`username`,`userpass` FROM Courthouses;"; $allCH = $dbCon->query($sqlAllCourthouses); $sqlSolvedTargets = "SELECT `hash_value`,`cleartext_value` FROM Targets WHERE `isbenchmark`=false and `cleartext_value` IS NOT NULL;"; $solutions = array(); while ($chRecord = $allCH->fetch_row()) { $chAddress = $chRecord[0]; $chPort = $chRecord[1]; $chUser = $chRecord[2]; $chPass = $chRecord[3]; $chCon = connectManual($chAddress, $chUser, $chPort, $chPass, "Courthouse", FALSE); $solvedTargets = $chCon->query($sqlSolvedTargets); while ($targetSolution = $solvedTargets->fetch_row()) { $hVal = $targetSolution[0]; $cVal = $targetSolution[1]; $solutions[$hVal] = $cVal; } $solvedTargets->close(); } $chCon->close(); $numSolved = count($solutions); echo "Found " . $numSolved . " new solutions across all Courthouses.\n"; if ($numSolved) { $sqlSolutions = ""; foreach ($solutions as $key => $value) { $sqlSolutions .= "UPDATE `Targets` SET `cleartext_value`='" . $value . "', `confidence`=100 WHERE `hash_value` = '" . $key . "';"; } $dbCon->multi_query($sqlSolutions); $dbCon->close(); } else { $dbCon->close(); } sleep(1); }
function registerNode($chConfig, $nodeID, $gpu, $ipa) { $onetimePass = getPassword(); createUserAndTable($chConfig, $nodeID, $onetimePass); $hasGPU = "FALSE"; if (is_int($gpu) && $gpu > 0) { $hasGPU = "TRUE"; } $currentDate = date('Y-m-d H:i:s'); $sqlRegisterNode = "INSERT INTO Nodes (`node_id`, `has_gpu`, `ip_address`, `last_checkin`) VALUES ( '" . $nodeID . "', '" . $hasGPU . "', '" . $ipa . "', '" . $currentDate . "' );"; $dbCon = connectTo($chConfig, "Courthouse", TRUE, FALSE); $addResult = $dbCon->query($sqlRegisterNode); echo $onetimePass; $dbCon->close(); assignJob($chConfig, $nodeID); }