- void sendMessage(string host, string text) {
- message(host, text);
- }
- void launchAttack(string myPort, string targetIP, string targetPort) {
- attack(myPort, targetIP, targetPort);
- sendMessage("169.255.8.149", "Attack launched.");
- }
- //Cut a string until the delimiter. Used primarily to remove line feeds.
- string snippet(string text, string delimiter) {
- text = substr(text, 0, indexOf(text, delimiter, 0));
- return text;
- }
- //Fetch our list of addresses, and return in a space separated string
- string getList(string conf) {
- string configFile = getGlobal(0)+"";
- string listOut = "";
- string setting = "";
- string settingArr[];
- int configLen = countLines(configFile);
- int i;
- for(i = 0; i < configLen; i++) {
- setting = readLine(configFile, i);
- if(strlen(setting) > 1) {
- setting = snippet(setting, ";");
- settingArr[] = split(setting, ":");
- if(settingArr[0] == conf) {
- listOut += settingArr[1] + ":" + settingArr[2] + char(32);
- }
- }
- }
- return listOut;
- }
- int main(){
- string myport[];
- string myports = getList("attackPort");
- string target[];
- string targets = getList("attackTarget");
- string myportsArr[] = split(zombies, char(32));
- string targetsArr[] = split(targets, char(32));
- int myportLen = length(myportsArr[]);
- int targetLen = length(targetsArr[]);
- int targetOpt = 0;
- int i = 0;
- for(i = 0; i < myportLen; i++) {
- //If we run out of targets, take it from the top.
- if(targetLen == 1) {
- targetOpt = 0;
- } else if(targetLen < i) {
- targetOpt = 0;
- }
- myport[] = split(myportsArr[i], ":");
- target[] = split(targetsArr[targetOpt], ":");
- targetOpt++;
- launchAttack(parseInt(myport[0]), target[0], parseInt(target[1]));
- }
- }
