首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

微信 SQLite 数据库修复实践

作者:guoling 1、前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录。...而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。...损坏率高,修复率低,这两个问题都需要我们着手解决。...SQLite 使用 B+树 存储一个表,整个 SQLite 数据库就是这些 B+树 组成的森林。...这就是官方修复算法成功率这么低的原因,太依赖 master 表了。

8.6K53

微信 SQLite 数据库修复实践

本文来自:微信移动客户端开发团队公众号(WeMobileDev) 1、前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏...而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。...损坏率高,修复率低,这两个问题都需要我们着手解决。...3、SQLite 修复逻辑优化 3.1、master 表 首先我们来看 SQLite 的架构。SQLite 使用 B+树 存储一个表,整个 SQLite 数据库就是这些 B+树 组成的森林。...这就是官方修复算法成功率这么低的原因,太依赖 master 表了。

1.7K40

DNA损伤修复基因数据库

DNA损伤与修复是生命活动中的重要现象,据统计,每个体细胞每天会受到至少六万次的DNA损伤,正是由于DNA损伤修复机制的存在,才能够随时纠正和修复这些损伤,保证生命活动的正常进行。...如果DNA损伤没有被正确修复,可能发生以下3种情况 细胞衰老,加速细胞衰老进程 细胞凋亡,DNA损伤过度无法修复时,会启动凋亡程序来清除损伤的细胞 细胞癌变,DNA损伤部分修复的情况下,细胞会出现各种基因组变异...NER 全称为nucleotide excision repair, 称之为核苷酸切除修复,识别异常的DNA双螺旋结构,针对连续多个碱基的受损进行修复。 3....双链断裂修复 DNA双链的断裂会引起基因组的序列的丢失和重排,是最严重的的DNA损伤,主要通过同源重组修复HR和非同源末端链接修复NHEJ两种方式来修复此类损伤。...给出了对应的基因名称,类别,染色体位置等详细信息,如果关注DNA损伤修复与肿瘤突变的关联,这个数据库值得参考。

1.7K20

关于Mysql数据库的停止服务修复修复成功后的导入问题

第六步 ---- 数据库莫名出现报错:服务器启动失败  今天我在用数据库的时候发现了一个很烦的问题,就是我的mysql数据库停止服务了。  ...后来我查看了很多书籍,以及官方的修改方案,同时页参考了很多大神的修复操作,我得出了一下的结论: 报错解决方案  第一步 我先首先进入我们存放mysql的文件夹中,进入后我们再进入data中,然后把里面的所有东西全部删除...第三步 重新注册我们数据库服务 mysqld -install 第四步 初始化我们重新注册的数据库 mysqld --initialize 这时,我们可以打开我们的mysql数据库的文件夹,可以看到data...第七步 我是用正常的登录的方式登录我们的mysql数据库:  这时,我们的数据库就可以正常启动了!...第八步 我们可以在进入mysql后修改自己好记的密码 然后,我们退出重新,这时输入密码时,我们输入新的密码就可以进入mysql数据库了!

1.8K20

Android组件安全

你可以通过文件系、SQLite数据库、网站,或者其它的你的应用程序可以访问的持久化存储位置来存储数据。...每个Content Provider都对应一个以”content://”开头的特定URI,任何应用都可以通过这个URI操作Content Provider 应用的数据库。...如何修复 1.将不需要导出的Content Provider组件设置为android:exported="false" 2.对访问的目标文件的路径进行有效判断 Broadcast receiver组件暴露...如何修复 1.如果应用的Content Provider组件不必要导出,建议显式设置组件的“android:exported”属性为false 2.如果必须要有数据提供给外部应用使用,建议对组件进行权限控制...如何修复 1.如果App的Service组件不需要导出,或者组件配置了intent filter标签,应设置组件的“android:exported”属性为false 2.如果组件要提供给外部应用使用,

2.3K21

Discuz!X 3.4 任意文件删除漏洞分析

X社区软件1,是一个采用PHP 和MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。 2017年9月29日,Discuz!...经过分析确认,原有的利用方式已经被修复,添加了对属性的formtype判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他unlink条件,实现任意文件删除漏洞。...0x02 复现 登陆DZ前台账户并在当前目录下新建test.txt用于测试 请求 home.php?...由于DZ的旧版代码更新流程不完整,已经没办法找到对应的补丁了,回溯到2013年的DZ3版本中,我们发现了旧的漏洞代码 在白帽子提出漏洞,可以通过设置个人设置来控制本来不可控制的变量,并提出了其中一种利用方式...厂商仅对于白帽子的攻击poc进行了相应的修复,导致几年后漏洞再次爆出,dz才彻底删除了这部分代码… 期间厂商对于安全问题的解决态度值得反思… 在简单的漏洞分析之后发现,任意文件删除可以删除包括data目录下的

2.5K30

Discuz!X 3.4 任意文件删除漏洞分析

X 社区软件,是一个采用 PHP 和 MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。 2017年9月29日,Discuz!...经过分析确认,原有的利用方式已经被修复,添加了对属性的 formtype 判断,但修复方式不完全导致可以绕过,通过模拟文件上传可以进入其他 unlink 条件,实现任意文件删除漏洞。...0x02 复 现 登陆DZ前台账户并在当前目录下新建 test.txt 用于测试 ? ? 请求 home.php?...由于DZ的旧版代码更新流程不完整,已经没办法找到对应的补丁了,回溯到 2013 年的 DZ3 版本中,我们发现了旧的漏洞代码 ?...厂商仅对于白帽子的攻击 poc 进行了相应的修复,导致几年后漏洞再次爆出,dz 才彻底删除了这部分代码... 期间厂商对于安全问题的解决态度值得反思... 相 关 链 接 [1] Discuz!

1.3K80

这是一篇“不一样”的真实渗透测试案例分析文章

关于UC_KEY(dz)的利用,网上基本都是通过uc.php来GetWebShell,但这个漏洞在新版本已经被修复了。...UC_KEY(dz)的利用并不局限与此,你去阅读dbbak.php代码就会发现,有了UC_KEY(dz)我们可以直接备份数据库,下载数据库,从数据库中找到相关信息进行进一步渗透。...现在我们就可以知道其实UC_KEY(dz)是可以从2个地方获取到的,一个是配置文件,一个是数据库。...但是在新版本的x3.4中已经修复了这个漏洞,代码如下: ?...到此成功GetWebShell,在这个过程中,有一点需要注意的是,我们修改了程序原有的UC_KEY(dz),成功GetWebShell以后一定要修复,有2中方法: 从数据库中读取authkey(uc_server

1.8K40

DiscuzX插件出现拼音语言包丢失的解决方法

【操作之前建议先备份一下数据库,然后再操作】 首先,请登录Discuz管理后台,点击“全局”——“性能优化”——“内存优化”,查看是否如下图情况。 如果没有,请忽略直接到下一步。...image.png 语言包丢失解决方法: 到phpmyadmin找到DZ数据库中的 pre_common_plugin 表 (pre是你的数据库表前缀,可能你设置成别的了) 找到出现乱码的插件表名,修改一下版本号改为比...DZ应用中心还要小的版本(修改字段为 version),然后 后台直接到应用中心升级就行了。...这个方法其实就是通过降低之前的插件版本,重新到官方升级插件这样就会自动修复掉语言包乱码问题了。 这个方法目前比较靠谱自己试了有效,而且不容易出现错误。...【操作之前建议先备份一下数据库,然后再操作】

87540
领券