写在前面
- 关于使用 QtCipherSqlitePlugin 插件加密的一些注意事项。比如,修改默认加密算法的某些关键值
- 如果 还没有读过作者的文档, 请移步到这里
- 之前笔者也做过逆向,SqliteCipher加密原来是将密码和锁放在了本地, 看来本地加密文件蛮失望的。 😄
- 显然, 只要知道了密码, 剩下的都不是问题了。
- 那么, 密码怎么来? 如果你的密码是从写在本地的(程序内), 那么 IDA 就是密码查找工具。 很轻松就能找到代码中的密码。 什么, 密码放在服务器? 哈哈,找出密码还有其他的攻击方式, 具体的方法,这里不展开了。 (有点跑题了)
本文目标
- 关于 SqlieCipher 加密
- 修改源码,尽量避免和他人的一致
QtCipherSqlitePlugin 加密
- QtCipherSqlitePlugin插件内部调用了 sqlite3_rekey 函数 实现密钥的增加、变更和解除
- 加密源码分析,文件sqlitecipher.cpp中 open函数 做了一些关