IE Cookie文件格式说明

作者: 字体:[增加 减小] 类型:转载

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

IE 的 Cookie 文件保存在 ?:\Documents and Settings\\Cookies 目录,后缀为.txt

可以直接使用 API SHGetFolderPath 取得 Cookie 文件的保存目录

不过我没发现 Delphi2007 有这个 API 的声明,所以自己声明了一下

代码如下(发现代码高亮支持 Pascal 了,呵呵)

GetCookieFolder

复制代码 代码如下:

function SHGetFolderPath(hwndOwner: HWND; nFolder: Integer; hToken: HWND;

dwFlags: Word; pszPath: PChar): Boolean; stdcall; external shell32 name 'SHGetFolderPathA';

function GetCookieFolder: string;

var

P: array[0..MAX_PATH] of Char;

begin

SHGetFolderPath(0, CSIDL_COOKIES, 0, 0, @P[0]);

Result := IncludeTrailingBackslash(P);

end;

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

枚举 Cookie 文件

GetCookieFiles

复制代码 代码如下:

procedure GetCookieFiles(APath: string; AList:TStrings);

var

Sr: TSearchRec;

begin

if FindFirst(APath + '*.txt', faArchive, Sr) = 0 then

begin

repeat

if Sr.Name[1] = '.' then Continue;

AList.Add(Sr.Name);

until FindNext(Sr) 0;

FindClose(Sr);

end;

end;

下面才是重点,Cookie 文件的格式,呵呵

Cookie 文件只是个纯粹的文本文件,以换行符(ASCII=10)为分隔符

可以使用 TStringList 读取,会自动分行的

格式如下

复制代码 代码如下:

a_cookie

.123

my.demo.site

*

其中

第1行为 Cookie 名称

第2行是 Cookie 的值

第3行是 Cookie 所属站点的地址

第4行是个标记值(注:准确来说应该是表示该Cookie是否被加密)

第5行为超时时间的低位(Cardinal/DWORD)

第6行为超时时间的高位

第7行为创建时间的低位

第8行为创建时间的高位

第9行固定为 * ,表示一节的结束

需要注意的是这里使用的时间并非 Delphi 的 TDateTime,而是 FILETIME(D里为对应的TFileTime)

一个文件可能包含有多个节,按上面的格式循环即可

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

ConvertToDateTime

复制代码 代码如下:

function FileTimeToDateTime(FT: TFileTime): TDateTime; inline;

var

ST: TSystemTime;

begin

FileTimeToLocalFileTime(FT, FT);

FileTimeToSystemTime(FT, ST);

Result := SystemTimeToDateTime(ST);

end;

function ConvertToDateTime(L, H: Cardinal): TDateTime;

var

FT: TFileTime;

begin

FT.dwLowDateTime := L;

FT.dwHighDateTime := H;

Result := FileTimeToDateTime(FT);

end;

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

作者: 字体:[增加 减小] 类型:转载

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

IE 的 Cookie 文件保存在 ?:\Documents and Settings\\Cookies 目录,后缀为.txt

可以直接使用 API SHGetFolderPath 取得 Cookie 文件的保存目录

不过我没发现 Delphi2007 有这个 API 的声明,所以自己声明了一下

代码如下(发现代码高亮支持 Pascal 了,呵呵)

GetCookieFolder

复制代码 代码如下:

function SHGetFolderPath(hwndOwner: HWND; nFolder: Integer; hToken: HWND;

dwFlags: Word; pszPath: PChar): Boolean; stdcall; external shell32 name 'SHGetFolderPathA';

function GetCookieFolder: string;

var

P: array[0..MAX_PATH] of Char;

begin

SHGetFolderPath(0, CSIDL_COOKIES, 0, 0, @P[0]);

Result := IncludeTrailingBackslash(P);

end;

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

枚举 Cookie 文件

GetCookieFiles

复制代码 代码如下:

procedure GetCookieFiles(APath: string; AList:TStrings);

var

Sr: TSearchRec;

begin

if FindFirst(APath + '*.txt', faArchive, Sr) = 0 then

begin

repeat

if Sr.Name[1] = '.' then Continue;

AList.Add(Sr.Name);

until FindNext(Sr) 0;

FindClose(Sr);

end;

end;

下面才是重点,Cookie 文件的格式,呵呵

Cookie 文件只是个纯粹的文本文件,以换行符(ASCII=10)为分隔符

可以使用 TStringList 读取,会自动分行的

格式如下

复制代码 代码如下:

a_cookie

.123

my.demo.site

*

其中

第1行为 Cookie 名称

第2行是 Cookie 的值

第3行是 Cookie 所属站点的地址

第4行是个标记值(注:准确来说应该是表示该Cookie是否被加密)

第5行为超时时间的低位(Cardinal/DWORD)

第6行为超时时间的高位

第7行为创建时间的低位

第8行为创建时间的高位

第9行固定为 * ,表示一节的结束

需要注意的是这里使用的时间并非 Delphi 的 TDateTime,而是 FILETIME(D里为对应的TFileTime)

一个文件可能包含有多个节,按上面的格式循环即可

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

ConvertToDateTime

复制代码 代码如下:

function FileTimeToDateTime(FT: TFileTime): TDateTime; inline;

var

ST: TSystemTime;

begin

FileTimeToLocalFileTime(FT, FT);

FileTimeToSystemTime(FT, ST);

Result := SystemTimeToDateTime(ST);

end;

function ConvertToDateTime(L, H: Cardinal): TDateTime;

var

FT: TFileTime;

begin

FT.dwLowDateTime := L;

FT.dwHighDateTime := H;

Result := FileTimeToDateTime(FT);

end;

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


相关文章

  • 纯手工注入语句
  • 纯手工注入语句 第一步先把IE 菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉.否则,不论服务器返回什么错误,IE 都只显示为HTTP 500服务器错误,不能获得更多的提示信 ...查看


  • 如何查看电脑历史操作记录
  • 如何查看电脑历史操作记录? 1.看计算机在哪天运行过~运行了多久! (系统安装在c盘) 找到c:\windows\SchedLgU.txt文件 里面有你自这个系统产生以来曾经工作过的时间,包括哪天开了机 开机时间 关机时间! 2.看你最近运 ...查看


  • Web前端面试题目及答案汇总 – 码农网
  • 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正.:  ) 阅读目录 HTML/CSS部分 JavaScript部分 其他 ...查看


  • 广告行业术语
  • AE --Account Executive--客户代表,或客户执行.代表广告公司接受广告主各种业务,并负责整体执行的人. Account Group--业务小组.广告公司内负责某特定客户之工作小组.以AE 为中心,成员包括行销企划.创意. ...查看


  • IE浏览器如何清除浏览器记录
  • IE浏览器如何清除浏览器记录 大家浏览网页的时候是否注意到上次登陆的邮箱地址,下次再打开的时候,用户名和密码都已经自动填写上了,没错,这些信息统统记录在浏览器记录中,一旦发现你打开对应的网址,浏览器就会自动完成个人信息的输入,大大简化我们登 ...查看


  • 课程技能训练
  • 信息网络开发工具技能训练 2013-2014第1学期 题 目: JSP的内置对象应用训练 院(系.部): 学 生 姓 名 指 导 教 师:: 2013年12月3日 (一) 对于JSP 的基本介绍 通过网络我了解到Java-EE 中应用的技术 ...查看


  • 上网安全小知识
  • 如何使网上信息更安全? 随是基础知识,但对经常上网的用户还是不可缺的. 一.不轻易运行不明真相的程序 如果你收到一封带有附件的电子邮件,且附件是扩展名为EXE一类的文件,这时千万不能贸然运行它,因为这个不明真相的程序,就有可能是一个系统破坏 ...查看


  • 江苏地税纳税人网上办税操作手册
  • 江苏地税大集中系统 纳税人网上办税操作手册 江苏移动地税运维项目组 2014年4月 目录 江苏地税大集中系统 ................................................................. ...查看


  • 国家统计局工业企业联网直报系统
  • 国家统计局工业企业联网直报系统 企业用户快速入门 国家统计局工交司 国家统计局计算中心 2005.9 目 录 第一章 系统概述.................................................... 1 1. ...查看


热门内容