NbtTag(std::istream &s, NbtTagType type) : _type(type) { std::memset(&_data, 0, sizeof(Data)); loadPayload(s); }
void main(void) { FATFS fs; f_mount(&fs, "0:", 1); //Get pressed buttons u32 pressed = HID_PAD; if(((pressed & BUTTON_X) && loadPayload("/aurei/payloads/x.bin")) || ((pressed & BUTTON_Y) && loadPayload("/aurei/payloads/y.bin")) || ((pressed & BUTTON_SELECT) && loadPayload("/aurei/payloads/select.bin")) || ((pressed & BUTTON_START) && loadPayload("/aurei/payloads/start.bin")) || ((pressed & BUTTON_RIGHT) && loadPayload("/aurei/payloads/right.bin")) || ((pressed & BUTTON_LEFT) && loadPayload("/aurei/payloads/left.bin")) || ((pressed & BUTTON_UP) && loadPayload("/aurei/payloads/up.bin")) || ((pressed & BUTTON_DOWN) && loadPayload("/aurei/payloads/down.bin")) || loadPayload("/aurei/payloads/default.bin")) ((void (*)())PAYLOAD_ADDRESS)(); }
NbtTag(std::istream &s) { std::memset(&_data, 0, sizeof(Data)); int8 type; FileUtils::streamRead(s, type); if (type < 0 || type >= TAG_COUNT) FAIL("Invalid tag type: %d", type); _type = NbtTagType(type); if (_type == TAG_END) return; loadArray<uint16, uint8>(s); if (_data.c.data) { _name = std::string(as<const char>(), size_t(_data.c.length)); delete[] as<uint8>(); _data.c.data = nullptr; _data.c.length = 0; } loadPayload(s); }
void loadFrame(char frame) { loadPayload(frame*FRAME_SIZE,FRAME_SIZE*3); }
void processArgs(int argc, char **argv) { globalArgs.attack_port = 0; globalArgs.syn_delay = DEFAULT_SYN_DELAY; globalArgs.payload_size = 0; int opt = 0; while((opt = getopt(argc, argv, optString)) != -1) { switch(opt) { case 'p': loadPayload(optarg); break; case 'd': globalArgs.syn_delay = atoi(optarg); if(globalArgs.syn_delay == 0) printUsage("Invalid delay."); break; case 'h': case '?': printUsage(NULL); default: break; } } char **remArgv = argv + optind; int remArgc = argc - optind; if(remArgc > 2) printUsage("Too many arguments."); if(remArgc < 2) printUsage("Too few arguments."); int ip_index = 0; int iface_index = 1; // If they put the interface before the ip:port, swap the indexes. if(get_iface_ip(&globalArgs.iface_addr, remArgv[iface_index]) == 0) { ip_index = 1; iface_index = 0; if(get_iface_ip(&globalArgs.iface_addr, remArgv[iface_index]) == 0) printUsage("Invalid interface."); } char *ip = remArgv[ip_index]; char *port = remArgv[ip_index]; while(*port != ':' && *port != '\0') port++; if(*port == '\0') printUsage("Please specify a port."); *port = '\0'; port++; globalArgs.attack_port = atoi(port); if(globalArgs.attack_port == 0) printUsage("Invalid port."); if(inet_aton(ip, &globalArgs.attack_ip) == 0) printUsage("Invalid IP address."); printf("[+] Sending packets from %s (%s)\n", remArgv[iface_index], inet_ntoa(globalArgs.iface_addr.sin_addr)); printf("[+] Attacking: %s:%hu...\n", ip, globalArgs.attack_port); }