kakaotalk数据库密钥生成方法

2024-02-29 09:28

本文主要是介绍kakaotalk数据库密钥生成方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PRAGMA KEY "ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402"的生成

PRAGMA KEY生成算法如下:

Base64Encode(SHA512(AES-128-CBC(UUID + Disk Model Name + Disk SerialNumber))) = ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==
来自服务器的用户唯一标识:410545402

获取系统UUID命令如下:
wmic csproduct get "UUID"

编程方式获取UUID:
https://www.cnblogs.com/strive-sun/p/12516247.html

获取Disk Model Name和Disk SerialNumber命令如下:
wmic diskdrive get model, serialnumber

具体方法如下:
原始字符串:                        4D5882F5-E72C-41E0-9ADA-E2DAD13438C6|Samsung SSD 870 EVO 1TB SCSI Disk Device|S6PVNX0W101380D
Padding后的字符串(16字节对齐):    4D5882F5-E72C-41E0-9ADA-E2DAD13438C6|Samsung SSD 870 EVO 1TB SCSI Disk Device|S6PVNX0W101380D\x03\x03\x03
                                    或如
                                    D1EA91EE-8E1C-D4C3-D204-0C9D9280E10B|Samsung SSD 860 EVO 250GB|S4CKNF0NB09400F\x02\x02

AES key的生成算法:
SHA1(BIN(1DC1B6C365BA5451DA4F730F237CF6635E272D273636363636363636363636363636363636363636363636363636363636363636363636363636363636363636)) = 9FBAE3118FDE5DEAEB8279D08F1D4C79
其中BIN(1DC1B6C365BA5451DA4F730F237CF6635E272D273636363636363636363636363636363636363636363636363636363636363636363636363636363636363636)为kakaotalk内置固定值
即9FBAE3118FDE5DEAEB8279D08F1D4C79也是固定值

最终密钥如下:
key: 9FBAE3118FDE5DEAEB8279D08F1D4C79
iv:  00000000000000000000000000000000

AES-128-CBC("4D5882F5-E72C-41E0-9ADA-E2DAD13438C6|Samsung SSD 870 EVO 1TB SCSI Disk Device|S6PVNX0W101380D\x03\x03\x03") = E68133E9403DDC9B296DAF66031EA677898E92FA8BF8C00C448175330713458B1441E202A6B07E07E929CDB804509F8231EE583D57828E82529425A617B70B8BB1B9FB20E86843F661811EE9CAC3CF95912A49569DD0B6E29DDA1D397E363752

SHA512(BIN("E68133E9403DDC9B296DAF66031EA67789..........."))后的值:
3834a79e4930c801ec5f080210840b0a90317526611ac29e815d18f04b1277be1d579b33677efe0aca8d28693122565f83ca7955720f77f2d38e8463da4171e0

Base64Encode(BIN(3834a79e4930c801ec5f080210840b0a90317526611ac29e815d18f04b1277be1d579b33677efe0aca8d28693122565f83ca7955720f77f2d38e8463da4171e0))后的值:
ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==


*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\chatLogs_***.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\chatListInfo.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\openLinkListInfo.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\talkfile.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\talkmedia.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\TalkUserDB.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\floatingList.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\CalendarDB.edb
    PRAGMA KEY='ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402';
    key: 3711E27978F77806353B53C64A04170A
    iv:  6D182988C85D70A7A68FB8D52327BDDB
    
    PRAGMA KEY生成方法:
        用PRAGMA KEY循环拼接凑够512字节,大于512字节截取512字节,然后计算512字节的MD5值得到key值,如下512字节:
        ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402ODSnnkkwyAHsXwgCEIQLCpAxdSZ
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))


*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\talk_user_prf.edb
    PRAGMA KEY='wNZcRLUmfenh9CsPpEd/lg==';
    key: DCA452465C0EA62218FC3A2BE31332B5
    iv:  D99ED28F9BE1C140A6D746BBBECBC1BC
    
    PRAGMA KEY生成方法:
        Base64Encode(BIN(MD5("ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402"))) = wNZcRLUmfenh9CsPpEd/lg==
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))
    

*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\Contacts\*.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\url_image_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\ocii_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\oci_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\mci_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\gfve_t_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\gfbe_t_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\fci_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\chat_data\cli_http_v2.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\OCH\*.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\DigitalItem\*.edb
    PRAGMA KEY='9c29e49f6f88e8205ba5ac69b69f2017ecef8a9cfa4914837ae28f9176d171829f0ce6a8500948b2849f59709383366af4d2c4f4d122ed0df4a1a74b5d0ed81a';
    key: D2CACEE5594F087A01DB4914AA86515D
    iv:  845A1BE233E620352CC603429221755E
    
    PRAGMA KEY生成方法:
        SHA512(ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402) = 9C29E49F6F88E8205BA5AC69B69F2017ECEF8A9CFA4914837AE28F9176D171829F0CE6A8500948B2849F59709383366AF4D2C4F4D122ED0DF4A1A74B5D0ED81A
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))
    
    
*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\CardList\*.edb
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\OpenLinkPreset\*.edb
    PRAGMA KEY='b9ece4a7b2db75a036668a183e8bcb92db6cf35ca6af43137c7c57e57c4e36a7d7b6e27c1fab53abf2fcafe28fd70f859827e8691a6a04d3140f6037a043084c';
    key: 69865EF5A4C942D613CB06911EE849A1
    iv:  C62B8FCC2609D56C1B42310640BEA6BA
    
    PRAGMA KEY生成方法:
        SHA512(ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==) = B9ECE4A7B2DB75A036668A183E8BCB92DB6CF35CA6AF43137C7C57E57C4E36A7D7B6E27C1FAB53ABF2FCAFE28FD70F859827E8691A6A04D3140F6037A043084C
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))
        
    
*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\MultiProfileDB.edb
    PRAGMA KEY='multiprofileODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402';
    key: B80CC2DF36B6E999E55F0E2F61822B8D
    iv:     5D3928A461849997F499D6AB48B265FE
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))
    
    
*****************************************************************************************************************************************************
C:\Users\coder\AppData\Local\Kakao\KakaoTalk\users\5fea7626aa67c9a1771a5187f2d76a0f72cea0ba\emoticon.edb
    PRAGMA KEY='lqiUl0d+4a5b128KX+hBAQ==';
    key: 07384C5E696577273FCAA39E6368E3E5
    iv:  70B046C444DAC5673C4B94FC38DF87EE

    PRAGMA KEY生成方法:
        Base64Encode(BIN(MD5(emoticonODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==emoticon))) = lqiUl0d+4a5b128KX+hBAQ==
    
    key = MD5(PRAGMA KEY ... 512)
    iv = MD5(Base64Encode(BIN(key)))


*****************************************************************************************************************************************************
聊天缓存文件密钥生成方法(该密钥可以解密缓存文件)(解密算法AES-128-CBC)
    TalkUserDB.edb中存在userId为410545402,type为-10
    
    MD5("ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==410545402") -> key: C0D65C44B5267DE9E1F42B0FA4477F96
    MD5("wNZcRLUmfenh9CsPpEd/lg==")                                                                          -> iv:  C250094FB2CD56DC05A2DBCCAA7473D7


    Base64Encode(Bin(C0D65C44B5267DE9E1F42B0FA4477F96)) -> "wNZcRLUmfenh9CsPpEd/lg=="

    python计算式子: 
    base64.b64encode(binascii.a2b_hex('C0D65C44B5267DE9E1F42B0FA4477F96')) -> "wNZcRLUmfenh9CsPpEd/lg=="


*****************************************************************************************************************************************************
资源文件(.xml)key、iv计算:
MD5("KAKAOTALK_PC_FOREVER")                                 -> key: 0836C74406758FAC2DB40BD748A822E1
MD5(Base64Encode(BIN("0836C74406758FAC2DB40BD748A822E1")))     -> iv:  B926ADA81AA03AEF588297D003460EDA


*****************************************************************************************************************************************************
connect_conf文件内容解密:
密钥生成方法:
MD5(ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==20150201) -> F5B7FA7B0AB82F001464071B06EDEA32
Base64Encode(BIN(F5B7FA7B0AB82F001464071B06EDEA32)) -> 9bf6ewq4LwAUZAcbBu3qMg==
MD5(9bf6ewq4LwAUZAcbBu3qMg==) -> 9D34DD3905C3D67DA976DB41A8BF18EC
key: F5B7FA7B0AB82F001464071B06EDEA32
iv:  9D34DD3905C3D67DA976DB41A8BF18EC

*****************************************************************************************************************************************************
mss.dat文件内容解密:
密钥生成方法:
MD5("ODSnnkkwyAHsXwgCEIQLCpAxdSZhGsKegV0Y8EsSd74dV5szZ37+CsqNKGkxIlZfg8p5VXIPd/LTjoRj2kFx4A==20220725") -> 6FA181D480D4FEFEE87F4EF3C4C717D2
Base64Encode(BIN(6FA181D480D4FEFEE87F4EF3C4C717D2)) -> b6GB1IDU/v7of07zxMcX0g==
MD5(b6GB1IDU/v7of07zxMcX0g==) -> 9C8CC6BB84D1D57CE01CE25E4D824663
key: 6FA181D480D4FEFEE87F4EF3C4C717D2
iv:  9C8CC6BB84D1D57CE01CE25E4D824663

这篇关于kakaotalk数据库密钥生成方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758296

相关文章

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave