基于谷歌内核(Chromium)浏览器Cookie值的读取工具
一、基于谷歌内核浏览器的cookie文件保存位置
以目前流行的三款基于Chrominum内核的浏览器为例,Cookie文件保存在当前用户的AppData目录下,注意该文件没有扩展名。
1、谷歌的Chrome
C:\Users\当前用户\AppData\Local\Google\Chrome\User Data\Default\Network\cookies
2、奇虎的360se
C:\Users\当前用户\AppData\Roaming\360se6\User Data\Default\Network\cookies
3、微软的Edge
C:\Users\当前用户\AppData\Local\Microsoft\Edge\User Data\Default\Network\cookies
注意360的保存位置略有不同。
二、Cookie文件的格式和加密方式
该Cookie文件是sqlite格式的数据库文件,可以用sqlite数据库浏览工具打开查看,如下图:

打开观察发现cookie值是被加密的,采用的加密算法是AES,确切的说是GCM算法。要进行解密则需要知道秘钥key和向量iv。那么key和iv保存在哪?
三、秘钥key在哪
秘钥文件在“Local State”文件中,注意这是一个json文件,不是目录,所在位置在Cookies文件的上两层目录中。对应上述三款浏览器分别如下:
C:\Users\当前用户\AppData\Local\Google\Chrome\User Data\Local State
C:\Users\当前用户\AppData\Roaming\360se6\User Data\Local State
C:\Users\当前用户\AppData\Local\Microsoft\Edge\User Data\Local State
该文件是一个json文件,其中的“os_crypt/encrypted_key”键值是以base64的编码保存的加密后的key。base64解码后是一个二进制数据块。前5个字符是"DPAPI",是加密算法标记,可以忽略,后面才是被加密后的key。
DPAPI(Data Protection Application Programming Programming Interface)是Windows操作系统内置的数据加密接口,主要用于保护敏感信息(如密钥、用户凭据等)。这是windows特有的加密算法,不在openssl算法库中,只能使用windows自带的API函数CryptUnprotectData对加密后的key进行解密,其它语言应该有对API的封装或实现。
为何要采用DPAPI的方式对key进行加密呢?
它的好处是,只有在本机调用CryptUnprotectData函数对本机的key进行解密才能成功,如果将“Local State”拷贝到其它机器进行解密则会失败。也就是说DPAPI在加密的过程中加入了当前用户的“身份”和“机器”信息,解密时会进行校验。这种设计就确保了你无法通过“偷窃”的方式对key值进行解密(比如拷贝到自己的机器上慢慢研究),只能在“案发现场”进行解密,从而在某种程度上保护了cookie的安全。
四、向量iv在哪
iv就在cookie加密的数据中,cookies数据库文件的“encryped_value”字段中。其编码格式为:3字节的标志符+12字节iv+真正的AES加密数据。
该值的前三个字符是“v10”,可忽略,从第3个字符(以0为起始值)开始的后12个字节是iv。AES加密数据从第15个字节开始到最后。
到此为止我们已经得到了key、iv以及待解密的AES数据。接下来就可以调用AES解密函数对加密数据进行解密了。
五、CookieReader工具介绍
由于谷歌的Chromium内核在运行时会以“完全独占”的方式(其它程序无法共享读取)打开cookies数据库文件,因此使用该工具前要关闭对应的浏览器,否则将无法读取到该浏览器的cookie数据。当然也可以将cookies文件拷贝出来进行读取。即使以这种方式也要先关闭对应的浏览器,否则拷贝出来的cookies文件是空文件。强烈建议拷贝出来后进行读取。
同样,在该工具读取Cookies文件时,对应的浏览器也无法正常读取到Cookie数据,因为无法独占打开数据库了。点击下载CookieReader工具

下拉框有四种模式:
1、自选择cookie文件
该方式下,用户可以自己指定需要打开的Cookie文件, 比如将Cookies文件拷贝到本机的其它地方进行读取。
2、谷歌Cookie文件
该方式下,用户无需选择Cookie文件,该工具直接读取当前谷歌浏览器的Cookie目录所在的文件,此时务必要关闭谷歌浏览器。
3、360 Cookie文件
同上,读取360浏览器的Cookie。
4、Edge Cookie文件
同上,读取微软Edge浏览器的Cookie文件。
基于谷歌内核(Chromium)浏览器Cookie值的读取工具的更多相关文章
- python selenium中如何测试360等基于chrome内核的浏览器
转自:https://blog.csdn.net/five3/article/details/50013159 直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为 ...
- 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器
首先在 http://www.cftea.com/tools/downloads/Cef.zip 下载文件包. 一.将文件解压拖入到 Visual Studio 对应的 WinForm 项目中. 二. ...
- 基于IE内核的浏览器:WebBrowser上的网页与Winform本身交互[Demo下载]
http://blog.udnz.com/Article/Invoke_Javascript_On_Webbrowser_In_Winform.aspx C# 中调用 网页上的 Javascript ...
- 基于Gecko内核的简单浏览器实现
分享一个基于Gecko内核的简单浏览器实现过程. 项目需要需要开发一个简单浏览器,由于被访问的网页中有大量Apng做的动画,使用IE内核的webbrowser不能播放,使用基于WebKit和Cefsh ...
- Chrome浏览器Cookie解密
做过 web 开发的都知道:浏览器会把重要的认证登录认证信息存放到 cookie 中,在 cookie 有效期内,再次访问这个网站的时候就可以直接从 cookie 中获取到登录信息,这样就可以实现自动 ...
- Google之Chromium浏览器源码学习——base公共通用库(一)
Google的优秀C++开源项目繁多,其中的Chromium浏览器项目可以说是很具有代表性的,此外还包括其第三开发开源库或是自己的优秀开源库,可以根据需要抽取自己感兴趣的部分.在研究.学习该项目前的时 ...
- 浏览器cookie数
<?php for ($w=0; $w < 200 ; $w++) { setcookie('name'.$w,'value'.$w, time()+3600*10 ); } var_du ...
- 给Webkit内核的浏览器控件增加互交功能
转载请说明出处,谢谢~~ 昨天封装了基于webkit的wke浏览器内核,做成了duilib的浏览器控件,实现了浏览功能,但是单单的浏览功能还不满足需求,在我的仿酷狗项目中乐库的功能需要与浏览器互交. ...
- 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述
写在开头 在各个电商平台发展日渐成熟的今天.很多时候,我们需要一些平台上的基础数据.比如:商品分类,分类下的商品详细,甚至业务订单数据.电商平台大多数提供了相应的业务接口.允许ISV接入,用来扩展自身 ...
- chromium浏览器开发系列第三篇:chromium源码目录结构
上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流. 另外,官网的不一定准确,他们其实也很懒,所以最主要还是靠 ...
随机推荐
- 【调研】Vision Language Model Safety
Adversarial Attacks White-box Attacks Task-specific Attacks 的目标是针对某个具体的任务(如图像描述生成.指代表达理解等),通过精心设计的对抗 ...
- Go 调用系统默认浏览器打开链接
Go Package 相关包 os/exec 实例 调用Windows系统默认浏览器打开链接 package main import ( "fmt" "os/exec&q ...
- 剖析 Docker Swarm 操作对容器端口影响
剖析 Docker Swarm 操作对容器端口影响 一.背景阐述 在使用 Docker Swarm 构建集群环境过程中,于 ts3 节点出现了原有的容器端口全部失效,手动重启后才恢复的情况.期间涉及 ...
- .net WorkFlow 流程会签
WikeFlow官网:www.wikesoft.com WikeFlow学习版演示地址:workflow.wikesoft.com WikeFlow学习版源代码下载:https://gitee.com ...
- RL · Exploration | 使用时序距离构造 intrinsic reward,鼓励 agent 探索
论文标题:Episodic Novelty Through Temporal Distance. ICLR 2025,8 8 6 5 poster. arxiv:https://arxiv.org/a ...
- 多线程,Join()
一.定义:就是该线程是指的主线程等待子线程的终止.也就是在子线程调用了join()方法,后面的代码,只有等到子线程结束了才能执行 二.不加join: class Thread1 extends Thr ...
- mysql、PikaDB的使用方法和优化策略
Mysql 字段选择 尽量选用INT,BIGINT,4字节8字节的消耗小于varchar.字符串选择VARCHAR增加拓展性. 时间应使用时间戳BIGINT存储,不使用DATETIME. 不使用BLO ...
- php -S命令开启一个纯php的web服务、命令行直接运行php代码
php -S ip:port 命令可以开启一个纯php的web服务,如: php -S 127.0.0.1:8080 # ip指定为localhost也是可以的 tips:端口号必填,服务的根目录即 ...
- 多线程——ThreadPool
参考:第三节:ThreadPool的线程开启.线程等待.线程池的设置.定时功能 - Yaopengfei - 博客园 (cnblogs.com) C# AppDomain 详解_勇于尝试,却要三思后行 ...
- SpringIntegrationRamble
目录 Why SpringIntegration Background Consolidate Architecture ESB service Popular Solutions Getting S ...