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; }
Common::Rect SaveFileReadStream::readRect() { Common::Rect result; result.left = readUint32LE(); result.top = readUint32LE(); result.right = readUint32LE(); result.bottom = readUint32LE(); return result; }
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(); }
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; } }
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; }
bool SaveFileReadStream::readBool() { return readUint32LE(); }
int SaveFileReadStream::readInt() { return readUint32LE(); }