异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复;本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告。本人所有文章仅在CSDN、掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是盗文!
本文件针对 .../WeChat Files/wxid_xxxxxxxx/Msg下的各个文件解密后的内容进行概述。
未作特别说明的情况下,“聊天记录数据”指代的数据结构上都和Multi文件夹中的完整聊天记录数据相同或类似。
本文默认你已经获取并且解密了 SQLite 文件,关于这一步的具体方法,详见:微信PC端数据库文件解密_异想之旅的博客-CSDN博客
关于 Multi 文件夹内的数据库详见:微信PC端各个数据库文件结构与功能简述 - Multi文件夹_异想之旅的博客-CSDN博客
微信小程序的相关数据,包括但不限于:
RecentWxAppStarWxAppWAContact意义不大。
企业微信联系人数据,包括但不限于:
ChatInfoChatSession(未确认与ChatInfo的关系;这其中的Content字段是最近一条消息,疑似用于缓存展示的内容)UsrInfoMyUsrInfo特别说明的是,我目前还没有详细查证,这其中的聊天是否包含使用普通微信身份与企业微信用户发起的聊天,还是只包含使用绑定到普通微信的企业微信身份与其它企业微信身份发起的聊天。
企业微信聊天记录数据,包括所有和企业微信。
与BizChat一样,我还没有确定涉及的范围究竟是只有企业微信-企业微信还是同时包含普通微信-企业微信。
另外,此处的消息与Multi文件夹中真正的微信消息不同的是在于没有拆分数据库。
这个也是企业微信的数据,包括联系人、企业信息、与企业微信联系人的消息等。
简单看了一下,觉得应该这个是普通微信-企业微信的数据,上面biz前缀的是企业微信-企业微信
这个不常用,而且也没有全新的数据结构,不再详细说了。
看起来像是企业微信的通知消息,你也可以理解为企业微信的企业应用消息
顾名思义表情包相关,包括但不限于以下内容:
aesKey字段但我没测试)顺便吐槽一句,微信这些地方居然使用 http 而非 https
顾名思义收藏的内容相关,包括但不限于:
有BizContactHeadImg和ContactHeadImg1两张表,应该是二进制格式的各个头像
微信朋友圈的相关数据:
问了问 ChatGPT 并经过一点简单的尝试,我暂且认定前缀为 FTS 的数据库可能都和全文搜索(Full-Text Search)相关。
有一堆表,我能读懂的有 FTSChatroom15_content 和 FTSContact15_content 两个,分别对应的是微信“聊天”界面会展示的消息会话(包括公众号等)和“联系人”界面会出现的所有人(有的时候并不是所有联系人都会出现在“聊天”中),信息包含昵称、备注名和微信号,也和微信支持搜索的字段相匹配。
搜索收藏内容的索引,还是只能看懂 FavData1_content,不过那些看不懂的表也是和上面 FTSContact 存在的表命名方式一样。
还发现有意思的一点:对于收藏内容通过文字搜索,电脑版是把所有东西拼接成一个超长字符串来实现的。这对于文本、链接等没啥问题,但是对于合并转发消息,就会出现搜索 [图片] 这一关键词可以生效的奇怪事情。
按照名字,这应该是用来搜索聊天记录的。然而显然他不可能把所有的聊天记录索引,打开之后FTSChatMsg2_content表中也只有几百条数据,暂且认为这个也没用吧。
这个数据库前缀不一样,但是看内容和结构应该还是一个搜索相关,搜索的是聊天记录中的文件,这里存储了文件名和其所在的聊天。不过FTSMsgSearch18_content和SessionAttachInfo两张表记录数量有显著差异,不确定是哪个少了或是怎样。
将文件/图片/视频的文件名指向保存它们的文件夹名称(例如2023-04),有用但不多。
严格来说这只是一个数据库,不应该和分类平级,但是我认为这是分析到目前以来最核心的,因此单独来说了。
一些软件的介绍,猜测可能是关于某些直接从手机APP跳转到微信的转发会带有的转发来源小尾巴的信息
与公众号相关的内容,应该主要是账号本身相关。
能确定的是 BizSessionNewFeeds 这张表保存的是订阅号大分类底下的会话信息,包括头像、最近一条推送等。
保存“聊天”列表中每个会话最后一次标记已读的时间
存储群聊相关信息
顺便再吐槽一下,微信这个位置有一个命名出现异常的,别的表前缀都是ChatRoom,而突然出现一个ChatroomTool
顾名思义,联系人。不过这里的联系人并不是指你的好友,而是所有你可能看见的人,除好友外还有所有群聊中的所有陌生人。
存了一部分好友的拍一拍后缀,但是只有几个,我记得我电脑上显示过的拍一拍似乎没有这么少?
真正的“聊天”栏目显示的会话列表,一个不多一个不少,包括“折叠的群聊”这样子的特殊会话;信息包括名称、未读消息数、最近一条消息等
这张表在我这里有百余条数据,但是我实在没搞明白它是什么
该数据库包含多个表,然而大多数都是空白的。有明确内容的表主要包括以下:
根据名字猜测是客户端配置信息,然而其内部只有Config和MmExptAppItem两张表且内容都很短(小于10行),无法确定其实际作用。
本人打开时这里面没有任何有效数据,表包括ChatCRMsg Name2ID Session TransCRTable四张,猜测可能是微信小程序等的客服聊天相关内容。
在我这里这个东西两张表只有一行有效数据,根据名称猜测这是公众号或小程序创建的一些奇怪聊天。
其中有一个名为UnSupportedMsg的表,猜测内容是电脑端不支持的消息(例如微信红包等等),记录在这里以保证本地数据完整
只有一张表ImageTranslateCache,在我这里其内部没有任何数据
只有一张表LinkHistory,在我这里其内部没有任何数据
只有两张表ChatCRVoice和MediaInfo,在我这里其内部没有任何数据
应该是海外微信的 Voip 通话功能,和我们没关系
该数据库文件没有加密,可直接读取。
该文件主要字段为二进制字符串,无法分析。
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co