zoukankan      html  css  js  c++  java
  • IE Cookie 文件格式

    这几天在网上无意间看到很多人转载或部分截取了本文的部分内容
    在此声明,转载请注明出处,谢谢

    前几天写了个工具 CookieAdmin 来查看 IE 的 Cookie
    有人问到实现原理,就写了这篇文章
    我不善于写文档或文章,所以还是代码说话吧

    IE 的 Cookie 文件保存在
    ?:\Documents and Settings\<user>\Cookies 目录,后缀为.txt
    可以直接使用 API SHGetFolderPath 取得 Cookie 文件的保存目录
    不过我没发现 Delphi2007 有这个 API 的声明,所以自己声明了一下
    代码如下(发现代码高亮支持 Pascal 了,呵呵)

    GetCookieFolder
    注意 shell32 常量定义在 ShellAPI.pas 里,CSIDL_COOKIES 定义在 ShlObj.pas 里,记得引用

    枚举 Cookie 文件
    GetCookieFiles

    下面才是重点,Cookie 文件的格式,呵呵
    Cookie 文件只是个纯粹的文本文件,以换行符(ASCII=10)为分隔符
    可以使用 TStringList 读取,会自动分行的
    格式如下
    a_cookie
    0.123
    my.demo.site
    1600
    1589052800
    30634450
    672816768
    29899592
    *

    其中
    第1行为 Cookie 名称
    第2行是 Cookie 的值
    第3行是 Cookie 所属站点的地址
    第4行是个标记值(注:准确来说应该是表示该Cookie是否被加密)
    第5行为超时时间的低位(Cardinal/DWORD)
    第6行为超时时间的高位
    第7行为创建时间的低位
    第8行为创建时间的高位
    第9行固定为 * ,表示一节的结束
    需要注意的是这里使用的时间并非 Delphi 的 TDateTime,而是 FILETIME(D里为对应的TFileTime)
    一个文件可能包含有多个节,按上面的格式循环即可

    下面的代码将上述时间转换为 D 里的 TDateTime

    ConvertToDateTime


    怎么样,确实很简单吧?呵呵

  • 相关阅读:
    C#.Net Winform 应用程序莫名其妙崩溃。
    不小心点击安装了搜狗手机助手,顿时有一种草搜狗全体人员的感觉。
    家乐福张江店班车时刻表
    为什么学习设计模式
    同一端口如何区分不同的Socket
    用命令行CMD .bat 相关操作 如: 创建快捷方式 复制文件等
    C++ 时间获取和时间测量
    get all ODBC drivers 驱动
    命令行 编译C#.NET项目
    如何打开.hlp文件指定的topic
  • 原文地址:https://www.cnblogs.com/sephil/p/cookiefmt.html
Copyright © 2011-2022 走看看