Esempio n. 1
0
bool Nicookie::safariFindPage(QIODevice &device)
{
    qint64 begin_pos = device.pos();

    // Page Header
    quint32 page_header = readUint32BE(device);
    if (page_header != 0x00000100) {
        setError(Nicookie::InvalidDataFormtaError);
        return false;
    }

    // No. of cookies
    quint32 cookie_num = readUint32LE(device);
    if (cookie_num == 0) {
        // エラーじゃ無い?
        return false;
    }

    // Cookie N offset
    QList<quint32> cookie_offset_list;
    for (quint32 i = 0; i < cookie_num; i++) {
        cookie_offset_list.append(readUint32LE(device));
    }

    // Cookie N
    for (auto &cookie_offset: cookie_offset_list) {
        device.seek(begin_pos + cookie_offset);
        if (safariFindCookie(device)) return true;
    }

    return false;
}
Esempio n. 2
0
Common::Rect SaveFileReadStream::readRect() {
	Common::Rect result;
	result.left = readUint32LE();
	result.top = readUint32LE();
	result.right = readUint32LE();
	result.bottom = readUint32LE();
	return result;
}
Esempio n. 3
0
void ArchiveReader::openArchive(const char *filename) {
	open(filename);
	uint32 firstOffs = readUint32LE();
	uint count = firstOffs / 4;
	_offsets = new uint32[count];
	_offsets[0] = firstOffs;
	for (uint i = 1; i < count; i++)
		_offsets[i] = readUint32LE();
}
Esempio n. 4
0
bool Nicookie::safariFindCookie(QIODevice &device)
{
    qint64 begin_pos = device.pos();

    readUint32LE(device); // cookie_size not use
    readUint32LE(device); // unknown
    readUint32LE(device); // flags not use
    readUint32LE(device);  // unknown
    quint32 url_offset = readUint32LE(device);
    quint32 name_offset = readUint32LE(device);
    quint32 path_offset = readUint32LE(device);
    quint32 value_offset = readUint32LE(device);

    // check url
    device.seek(begin_pos + url_offset);
    if (!checkSameStr(device, Nicookie::COOKIE_HOST)) return false;

    // check name
    device.seek(begin_pos + name_offset);
    if (!checkSameStr(device, Nicookie::COOKIE_NAME)) return false;

    // check path
    device.seek(begin_pos + path_offset);
    if (!checkSameStr(device, Nicookie::COOKIE_PATH)) return false;

    device.seek(begin_pos + value_offset);
    QString str = readStr(device);
    if (str.isEmpty()) {
        setError(Nicookie::NotFoundDataError);
        return false;
    } else {
        this->userSession = str;
        return true;
    }
}
Esempio n. 5
0
int MfcArchive::readCount() {
	int count = readUint16LE();

	if (count == 0xffff)
		count = readUint32LE();

	return count;
}
Common::String StateReadStream::readString() {
	// Read the string length
	uint32 length = readUint32LE();

	// Read the string
	char *data = new char[length];
	read(data, length);
	Common::String string(data, length);
	delete[] data;

	return string;
}
Esempio n. 7
0
bool SaveFileReadStream::readBool() {
	return readUint32LE();
}
Esempio n. 8
0
int SaveFileReadStream::readInt() {
	return readUint32LE();
}