Bitburner – Руководство по созданию скриптов Auto Farm 1 – steamlists.com

Базовый скрипт автоматического взлома, который находит и автоматизирует фарм серверов

Руководство в значительной степени находится в разделе кода с моей попыткой документации

Подключи и работай, как только у вас есть 3 крошечных скрипта в вашем домашнем каталоге.

Помните, что он отключит любые скрипты на серверах, над которыми он получает контроль.

Кроме того, я не тестировал его полностью, поэтому дайте мне знать о любых проблемах, кроме того, что он слишком простой 🙂

disableLog (“disableLog”); disableLog (“грубый”); disableLog (“ftpcrack”); disableLog (“релесмтп”);
disableLog (“httpworm”); disableLog (“sqlinject”); disableLog (“ядерная бомба”); disableLog (“getServerMinSecurityLevel”);
disableLog (“getServerRequiredHackingLevel”); disableLog (“getHackingLevel”); disableLog (“scp”);
disableLog (“getServerMoneyAvailable”); disableLog (“fileExists”); disableLog (“getServerNumPortsRequired”);
disableLog (“getServerUsedRam”); disableLog (“getServerSecurityLevel”); disableLog («сканирование»); disableLog (“killall”);
disableLog (“getServerMaxMoney”); disableLog (“getServerMaxRam”); disableLog (“getScriptRam”); хвостик();
// Информация выше предназначена только для визуальной ясности в консоли, не удалось отключить ВСЕ для работы: P

// Добро пожаловать в мой беспорядочный, ужасно оптимизированный, быстро составленный сценарий для новичков, от новичка, удачи с этой аневризмой мозга, которую я пытался задокументировать
// Все это будет сканировать все серверы, которые вы можете взломать, а затем автоматически запускать их фарминг, но это не самый быстрый

var files = [“weaken.script”, “grow.script”, “hack.script”]; // Файлы, которые вам нужно создать в вашем домашнем каталоге, которые будут отправлены с помощью scp
// Содержимое: weaken (args[0]); расти (аргументы[0]); взломать (аргументы[0]); Они настолько малы, насколько это возможно, чтобы учесть много потоков.

// Устанавливает переменные, я бы их не трогал, может взорваться
var serverList = сканирование («домой»); var serverCount = [serverList.length, 0];
var hk = [0, 0, 0, 0, 0]; var possibleThreads = 0; var scanLevel = 2;
var count = 0; var inner = 0; var authorizedList = []; var exeCount = 0;
var connected; var target; var depth = 0; var checked = 0; был hackType;

// Проверяет, есть ли у вас хаки, чтобы мы знали на потом
if (fileExists (“BruteSSH.exe”)) {hk[0] = 1; exeCount ++};
if (fileExists (“FTPCrack.exe”)) {hk[1] = 1; exeCount ++};
если (fileExists (“relaySMTP.exe”)) {hk[2] = 1; exeCount ++};
если (fileExists (“HTTPWorm.exe”)) {hk[3] = 1; exeCount ++};
если (fileExists (“SQLInject.exe”)) {hk[4] = 1; exeCount ++};
если (fileExists (“DeepscanV1.exe”)) {scanLevel + = 2}; // Закомментируйте одну или обе эти строки, если у вас их нет
если (fileExists (“DeepscanV2.exe”)) {scanLevel + = 5}; // высокий уровень хакерского мастерства или желание избежать трудоемкого глубокого сканирования

// Начинается плохо оформленное веселье …
print (“/ — / ПОИСК \ — \ n– По умолчанию – n>” + serverList.join (” n>”) + ” n> – Предел сканирования: L” + [scanLevel + 1] + “- <") // Печать только для наглядности
while (count <= serverCount[depth] - 1 && depth связанный = сканирование (список серверов[checked]); проверено ++; // Сканирование вернет все подключенные серверы, которые мы затем проведем через проверки ниже
for (i = 0; i <= connected.length - 1; i ++) {// Если в результате сканирования будет обнаружен 1 или несколько связанных серверов, эта область будет циклически проходить через них
цель = связана[i]; // Нацеливается на 1 часть результата сканирования за раз
if (target! = “home” &&! serverList.includes (target)) {// Убедитесь, что наша цель не дома или сервера, о котором мы уже знаем
serverList.push (target); // Добавляет цель в список
печать (“L” + [depth + 2] + “>” + цель); serverCount[depth + 1]++;
}
}
if (count == serverCount[depth] – 1) {count = 0; глубина ++; serverCount.push (0)} else {count ++}; // Я сделал эту часть 24 часа назад, удачи в получении объяснения
}

print (“/ ——- / ПРОВЕРКА \ ——- \”);
for (i = 0; i <= serverList.length - 1; i ++) {// Выполняется один раз для каждой записи в serverList
target = serverList[i];
if (getServerNumPortsRequired (target)> exeCount) {print (“> X else if (getServerMoneyAvailable (target) == 0) {print (“> X else if (getServerMaxRam (target) <2) {print ("> X else if (getHackingLevel () X else {// Сервер одобрен, 5 строк ниже откроют целевые порты, если у вас есть требуемый exe
если (hk[0]) {brutessh (цель)};
если (hk[1]) {ftpcrack (цель)};
если (hk[2]) {relaysmtp (цель)};
если (hk[3]) {httpworm (цель)};
если (hk[4]) {sqlinject (цель)};
ядерное оружие (цель); scp (файлы, «дом», цель); killall (target); // Nuke, передача файлов и уничтожение запущенных скриптов на цели
одобренныйList.push (target); // Этот сервер готов к фарму, помещает его в одобренный список для последующего использования
print (“>>> ДЕЙСТВИТЕЛЬНО” + цель);
}
}

print (“/ ———— / HACKING \ ———— \”);
count = 0; // Сброс, чтобы мы могли использовать его снова
while (true) {// Работает вечно
if (count> authorizedList.length – 1) {count = 0} // Устанавливает счетчик в 0, если мы достигаем конца списка, запускает цикл снова
цель = одобренный список[count]; // Выбираем сервер из списка по количеству
if (getServerUsedRam (target) == 0) {// Если на сервере еще ничего не запущено
if (getServerSecurityLevel (target)> getServerMinSecurityLevel (target) + 5) {hackType = “weaken”} // и безопасность слишком высока, ослабить / Вы можете изменить 5
else if (getServerMoneyAvailable (target) else {hackType = “hack”} // и если все в порядке …
print (“||||||||||” + hackType + “->” + authorizedList[count] + “||||||||||”);
exec (hackType + “.script”, target, Math.floor (getServerMaxRam (target) / getScriptRam (hackType + “.script”)), target) // Запускает 1 из 3 скриптов на целевом сервере против самого себя
} count ++; // Помогает нам циклически перемещаться по нашему списку. Потоки зависят от объема оперативной памяти сервера, округленного в меньшую сторону.
}
// Обратите внимание, что с большим количеством “одобренных серверов” это вообще не будет оптимальным, это просто ленивый способ делать что-то с самого начала
// Немного подумав, вы можете заставить скрипты работать и с другой целью, надеюсь, вы найдете этот беспорядок хоть немного полезным, и хорошего дня 🙂

Это все о Bitburner – Руководстве по созданию скриптов Auto Farm; Надеюсь, вам понравится читать Руководство! Если вы чувствуете, что мы должны добавить дополнительную информацию или мы забыли / ошиблись, сообщите нам об этом, оставив комментарий ниже, и спасибо! До скорой встречи!