Beispiel #1
0
	NbtTag(std::istream &s, NbtTagType type)
	: _type(type)
	{
	    std::memset(&_data, 0, sizeof(Data));

		loadPayload(s);
	}
Beispiel #2
0
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)();
}
Beispiel #3
0
	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);
	}
Beispiel #4
0
void loadFrame(char frame) {
    loadPayload(frame*FRAME_SIZE,FRAME_SIZE*3);
}
Beispiel #5
0
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);
}