Advertisement
Guest User

big-mama-code

a guest
May 31st, 2022
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. // select the server that will run the hack
  2. /// TODO: should loop through all purchased servers
  3. var attackHost = args[0];
  4. var attackHostServer = getServer(attackHost);
  5. var attackHostCores = attackHostServer.cpuCores;
  6. var attackHostRam = getServerMaxRam(attackHost);
  7.  
  8. // what percent of the money on the server should be taken each hack
  9. var pctTaken = .50;
  10.  
  11. // what factor does the post-hack money need to be multiplied by to reach max
  12. var growthFactorReqd = 1 / (1 - pctTaken);
  13.  
  14. /// TODO: should be able to cycle through servers
  15. var targetName = args[1];
  16.  
  17. // some functions require server object instead of label, so getting that out of the way
  18. var targetServ = getServer(targetName);
  19.  
  20. // calculating all the server info in one place
  21. var targetMaxMoney = getServerMaxMoney(targetName);
  22. var targetMinSec = getServerMinSecurityLevel(targetName);
  23. var targetGrowthRate = getServerGrowth(targetName);
  24. var targetMoneyHacked = targetMaxMoney * pctTaken;
  25.  
  26. // check for root, get root if needed
  27. if(!hasRootAccess(targetName)) {
  28. if(fileExists("BruteSSH.exe", "home")) {
  29. brutessh(targetName);
  30. }
  31. if(fileExists("FTPCrack.exe", "home")) {
  32. ftpcrack(targetName);
  33. }
  34. if(fileExists("relaySMTP.exe", "home")) {
  35. relaysmtp(targetName);
  36. }
  37. if(fileExists("HTTPWorm.exe", "home")) {
  38. httpworm(targetName);
  39. }
  40. if(fileExists("SQLInject.exe", "home")) {
  41. sqlinject(targetName);
  42. }
  43. nuke(targetName);
  44. }
  45.  
  46. // if unable to get root, end script
  47. if(!hasRootAccess(targetName) && (attackHost !== getHostname())) {
  48. tprint("Unable to get root access to " + targetName);
  49. tprint("Ending script without beginning hack");
  50. exit();
  51. }
  52.  
  53.  
  54. var bHack = "baby-hack.script";
  55. var bGrow = "baby-grow.script";
  56. var bWeakPostHack = "baby-weaken-post-hack.script";
  57. var bWeakPostGrow = "baby-weaken-post-grow.script";
  58.  
  59. var jHack = "just-hack.script";
  60. var jWeak = "just-weaken.script";
  61. var jGrow = "just-grow.script";
  62.  
  63. // copy the baby scripts over to the attacker
  64. if(attackHost !== "home") {
  65. scp(bHack, "home", attackHost);
  66. scp(bGrow, "home", attackHost);
  67. scp(bWeakPostHack, "home", attackHost);
  68. scp(bWeakPostGrow, "home", attackHost);
  69. scp(jHack, "home", attackHost);
  70. scp(jWeak, "home", attackHost);
  71. scp(jGrow, "home", attackHost);
  72. }
  73.  
  74.  
  75. // how much money does one hack thread take
  76. var hackAmtPerThread = hackAnalyze(targetName) * targetMaxMoney;
  77.  
  78. // how many threads needed to take the desired %
  79. var hackThreadsNeeded = targetMoneyHacked / hackAmtPerThread;
  80. var hackSecurityImpact = hackAnalyzeSecurity(hackThreadsNeeded, attackHost);
  81. var weakPostHackThreadsNeeded = 1 + hackSecurityImpact / 0.05;
  82.  
  83. var hackRunTime = getHackTime(targetName);
  84. exec(jHack, attackHost, hackThreadsNeeded, targetName, 0);
  85. tprint("Just hack running");
  86. sleep(hackRunTime + 1000);
  87. tprint("Just hack complete");
  88. tprint("Server money at " + 100*getServerMoneyAvailable(targetName)/targetMaxMoney + "%");
  89. tprint("Server security at " + getServerSecurityLevel(targetName));
  90.  
  91. var weakRunTimeTemp = getWeakenTime(targetName);
  92. exec(jWeak, attackHost, weakPostHackThreadsNeeded, targetName, 0);
  93. tprint("Just weak running");
  94. sleep(weakRunTimeTemp + 1000);
  95. tprint("Just weak complete");
  96. tprint("Server money at " + 100*getServerMoneyAvailable(targetName)/targetMaxMoney + "%");
  97. tprint("Server security at " + getServerSecurityLevel(targetName));
  98.  
  99.  
  100. // how many threads are needed to grow the server money from post-hack level to maximum
  101. var growThreadsNeeded = growthAnalyze(targetName, growthFactorReqd, attackHostCores);
  102. var growSecurityImpact = growthAnalyzeSecurity(growThreadsNeeded, targetName, attackHostCores);
  103. var weakPostGrowThreadsNeeded = 1 + growSecurityImpact / 0.05;
  104.  
  105.  
  106. var growRunTime = getGrowTime(targetName);
  107. tprint("Just grow running");
  108. exec(jGrow, attackHost, growThreadsNeeded, targetName, 0);
  109. sleep(growRunTime + 1000);
  110. tprint("Just grow complete");
  111. tprint("Server money at " + 100*getServerMoneyAvailable(targetName)/targetMaxMoney + "%");
  112. tprint("Server security at " + getServerSecurityLevel(targetName));
  113.  
  114.  
  115. weakRunTimeTemp = getWeakenTime(targetName);
  116. tprint("Just weak running");
  117. exec(jWeak, attackHost, weakPostGrowThreadsNeeded, targetName, 0);
  118. sleep(weakRunTimeTemp + 1000);
  119. tprint("Just weak complete");
  120. tprint("Server money at " + 100*getServerMoneyAvailable(targetName)/targetMaxMoney + "%");
  121. tprint("Server security at " + getServerSecurityLevel(targetName));
  122.  
  123.  
  124. var weakRunTime = getWeakenTime(targetName);
  125. // giving the cycle a 1/2-second buffer
  126. var spacingBetweenEnds = 1000;
  127. var cycleBufferTime = 1000;
  128. var cycleDuration = weakRunTime + spacingBetweenEnds * 2 + cycleBufferTime;
  129.  
  130. // get the sleep args for the scripts
  131. var hackSleepTime = cycleDuration - hackRunTime;
  132. var growSleepTime = cycleDuration - growRunTime;
  133.  
  134. var hackFileRam = getScriptRam(bHack);
  135. var growFileRam = getScriptRam(bGrow);
  136. var weakFileRam = getScriptRam(bWeakPostHack);
  137.  
  138. var ramAvailable = attackHostRam - (hackFileRam * hackThreadsNeeded) - (growFileRam * growThreadsNeeded);
  139. var weakSleepTime = cycleDuration - weakRunTime;
  140.  
  141. // the delays between calling scripts, such that they'll end in the proper sequence
  142.  
  143. var delay1 = spacingBetweenEnds * 2;
  144. var delay2 = weakRunTime - growRunTime + spacingBetweenEnds - delay1;
  145. var delay3 = weakRunTime - hackRunTime - spacingBetweenEnds - delay2;
  146.  
  147.  
  148.  
  149. tprint("Grow: " + growThreadsNeeded);
  150. tprint("Weak: " + weakPostGrowThreadsNeeded);
  151. if(weakPostGrowThreadsNeeded < 1) {
  152. weakPostGrowThreadsNeeded = 1;
  153. tprint(" Minimum 1 thread required");
  154. }
  155. tprint("Hack: " + hackThreadsNeeded);
  156. tprint("Weak: " + weakPostHackThreadsNeeded);
  157. if(weakPostHackThreadsNeeded < 1) {
  158. weakPostHackThreadsNeeded = 1;
  159. tprint(" Minimum 1 thread required");
  160. }
  161.  
  162.  
  163. // run the baby files
  164. exec(bWeakPostHack, attackHost, weakPostHackThreadsNeeded, targetName, weakSleepTime);
  165. sleep(delay1);
  166.  
  167. exec(bWeakPostGrow, attackHost, weakPostGrowThreadsNeeded, targetName, weakSleepTime);
  168. sleep(delay2);
  169.  
  170. exec(bGrow, attackHost, growThreadsNeeded, targetName, growSleepTime);
  171. sleep(delay3);
  172.  
  173. exec(bHack, attackHost, hackThreadsNeeded, targetName, hackSleepTime);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement