【Bitburner】脚本合辑

源码地址


以下代码不完整

扫描所有服务器

export async function main(ns) {
	//一级服务器列表
	var serv = ["n00dles","foodnstuff","sigma-cosmetics","joesguns","hong-fang-tea","harakiri-sushi","iron-gym"];
	//不断扫描下一级服务器,并添加到列表中
	var temp = ns.scan(serv[i]);
	// j取1,因为temp[0]是上一级服务器
	for(var j=1;j<temp.length;++j){
		serv.push(temp[j]);
	}
}

打开成功NUKE需要的端口数

for(var i=0;i<serv.length;++i){
	switch(ns.getServerNumPortsRequired(serv[i])){
		case 0: {
			await ns.nuke(serv[i]);
			break;
		}
		case 1:	{
			if(ns.fileExists("BruteSSH.exe")){
				await ns.brutessh(serv[i]);
				await ns.nuke(serv[i]);
				if(ns.getServerMaxRam(serv[i]))
				{
					await ns.scp("hack.js",serv[i],"home");
					await ns.exec("hack.js", serv[i], ns.getServerMaxRam(serv[i])*3/8);
				}	
			}
			break;	
		}
		case 2: {
			if(ns.fileExists("FTPCrack.exe")){
				await ns.ftpcrack(serv[i]);
				await ns.brutessh(serv[i]);
				await ns.nuke(serv[i]);
			}
			break;
		}
		case 3: {
			if(ns.fileExists("relaySMTP.exe")){
				await ns.relaysmtp(serv[i]);
				await ns.ftpcrack(serv[i]);
				await ns.brutessh(serv[i]);
				await ns.nuke(serv[i]);
			}
			break;
		}
		case 4: {
			if(ns.fileExists("HTTPWorm.exe")){
				await ns.httpworm(serv[i]);
				await ns.relaysmtp(serv[i]);
				await ns.ftpcrack(serv[i]);
				await ns.brutessh(serv[i]);
				await ns.nuke(serv[i]);
			}
			break;
		}
		case 5: {
			if(ns.fileExists("SQLInject.exe")){
				await ns.sqlinject(serv[i]);
				await ns.httpworm(serv[i]);
				await ns.relaysmtp(serv[i]);
				await ns.ftpcrack(serv[i]);
				await ns.brutessh(serv[i]);
				await ns.nuke(serv[i]);
			}
			break;
		}
		default: break;
	}

自动购买云服务器

export async function main(ns) {
	// 定义需要购买的云服务器的RAM大小,建议钱攒够10m后购买8G的
	var ram = 1024;
	var serv = ns.getPurchasedServers();
	var i = serv.length;
	// 如果购买过一些云服务器,则在这些云服务器上运行针对某一服务器的hack脚本
	if(i>0){
		for(var j=0;j<i;++j){
			await ns.scp("buyrun.js",serv[j],"home");
			await ns.exec("buyrun.js",serv[j],ram*3/8);
			} 
	}
	// 判断是否还有云服务器购买份额
	while(i<ns.getPurchasedServerLimit()){
		// 判断当前home主机上的钱是否足够购买一台云服务器
		if(ns.getServerMoneyAvailable("home")>ns.getPurchasedServerCost(ram)){
			// 云服务器的命名设为Serv-x
			var hn = ns.purchaseServer("Serv-"+i, ram);
			await ns.scp("buyrun.js",hn,"home");
			await ns.exec("buyrun.js",hn,ram*3/8);
			++i;
		}
		await ns.sleep(1000);
	}
}

删除所有购买的云服务器

export async function main(ns) {
    var serv = ns.getPurchasedServers();
    for(var i=0;i<serv.length;i++){
        ns.deleteServer(serv[i]);
    }
}

寻找某一服务器

export async function main(ns) {
	// 需要寻找的服务器
	var target = ["run4theh111z"];//CSEC\avmnite-02h\I.I.I.I\run4theh111z\fulcrumassets
	var i = 0;
	// indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置
	// 当"home"出现在数组最后一位,则得出了寻找路径
	// scan()函数扫描出的值的第一个为上一级服务器名
	while(target.indexOf("home")==-1){
		var temp = ns.scan(target[i++]);
		target.push(temp[0]);
	}
	// 输出的路径为倒序
	ns.tprint(target);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逃离地狱的恶魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值