基于谷歌内核(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的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流. 另外,官网的不一定准确,他们其实也很懒,所以最主要还是靠 ...
随机推荐
- 入口函数与包初始化:Go程序的执行次序
前言 我们可能经常会遇到这样一个问题:一个 Go 项目中有数十个 Go 包,每个包中又有若干常量.变量.各种函数和方法,那 Go 代码究竟是从哪里开始执行的呢?后续的执行顺序又是什么样的呢? 事实上, ...
- JS处理数据四舍五入(tofixed与round的区别详解)
1 .tofixed方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.例如将数据Num保留2位小数,则表示为:toFixed(Num):但是其四舍五入的规则与数学中的规则 ...
- BUUCTF---checkln(ROT加密)
题目 dikqTCpfRjA8fUBIMD5GNDkwMjNARkUwI0BFTg== 解题 1.看见有==,尝试base64解码,但解码失败 2.尝试其它Base加密均失败 3.重新思考有等于号的加 ...
- 【Markdown】简明语法手册
Cmd Markdown 简明语法手册 标签: Cmd-Markdown 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体. 示例: 这是 *斜体*,这是 **粗体** 这是 斜体,这是 粗体. ...
- ASP.NET Core 阿弥陀佛中间件
Amitabha n. <梵>(佛)阿弥陀佛 佛曰: 因果 那么一天 看见文章1. 发现还有2.这么个中间件 于是追寻源码,发现了3. 再然后寻思自己也可以写一个什么中间件,以便学习掌握 ...
- 聊聊AI Agent与AI 数字分身
提供AI应用咨询+陪跑服务,有需要回复1 Manus爆火后,网上出现了很多AI热门名词,比如Agent.AI分身,并且有一张技术架构实现图: 怎么说呢,也许这张图是对的,但就我这边实际的项目实践情况以 ...
- ubuntu 22.04安装NFS
一.概述 1. 定义 NFS(Network File System)是一种分布式文件系统协议,最初由 Sun Microsystems 开发,并于1984年发布.它允许不同主机通过网络共享文件和目录 ...
- configparser.ConfigParser
这是fens.conf里的初始内容: 下面是python3中configparser的处理原码:import configparsercf = configparser.ConfigParser()c ...
- 🎀java-自定义日志注解
简介 创建自定义日志注解,对相关接口记录请求日志. 环境 SpringBoot 实现 注解定义 定义注解类 package com.zk.app.annotation; import com.zk.a ...
- [开源] .NetCore 使用 ORM FreeSql 访问 MySql/Mariadb
1.创建项目 我们以 console 类型项目试验 插入.删除.更新.查询 等功能,创建控制台项目,使用命令: dotnet new console dotnet add package FreeSq ...