#cookies #webkit #file-reader #safari

binarycookies

Mac os cookie 文件读取器包

3 个版本

0.1.2 2024年1月19日
0.1.1 2024年1月18日
0.1.0 2024年1月18日

#58 in macOS 和 iOS API

22 每月下载量

MIT 许可证

19KB
379 代码行数,不包括注释

关于 Binarycookies-Reader

binarycookies 是用于解码 Safari 或 WebKit 的 .binarycookies 文件的程序。

Safari cookies 文件,也称为 Safari 二进制 cookies 文件(Cookies.binarycookies)格式

更多信息:https://github.com/libyal/dtformats/blob/main/documentation/Safari%20Cookies.asciidoc

GitHub

https://github.com/findre/binarycookies-reader

关于错误

  • InvalidIndexOverBounds:索引超出范围,格式错误,cookie 版本无效?
  • InvalidSignature:cookie 文件必须以 'cook' 开头
  • InvalidStartCode:起始代码以 '[0x00, 0x00, 0x00, 0x00]' 开头
  • EndCodeError
  • EndHeaderCodeError
  • DataOverSize
  • SystemIOError:当使用 'new' 函数时,覆盖 io 错误

使用方法

1. 使用 'from_vec' 函数

use std::{fs::File, io::Read};
use binary_cookies::BinaryCookiesReader;

fn main() {
    let mut target = File::open("/Users/foo/Library/HTTPStorages/boo.binarycookies").unwrap();
    let mut data = Vec::new();
    let _ = target.read_to_end(&mut data).unwrap();
    let mut d = BinaryCookiesReader::from_vec(&data);
    let _ = d.deocde().unwrap();
    for pages in d.origin_pages() {
        for cookie in pages.cookies() {
            println!("{} | {} | {} | {}", cookie.domian_str(), cookie.name_str(), cookie.value_str(), cookie.http_only);
        }
    }
}

2. 使用 'new' 函数

use binary_cookies::BinaryCookiesReader;

fn main() {
    let target = String::from("/Users/foo/Library/HTTPStorages/boo.binarycookies");
    let mut dec = BinaryCookiesReader::new(&target).unwrap();
    let _ = d.deocde().unwrap();
    for pages in d.origin_pages() {
        for cookie in pages.cookies() {
            println!("{} | {} | {} | {}", cookie.domian_str(), cookie.name_str(), cookie.value_str(), cookie.http_only);
        }
    }
}

无运行时依赖