您当前的位置: 首页 >  sql

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

PC微信逆向分析の绕过加密访问SQLite数据库

鱼儿-1226 发布时间:2021-11-03 18:39:40 ,浏览量:0

PC微信逆向分析の绕过加密访问SQLite数据库

作者:zmrbak(赵庆明老师)

前言:微信,无疑是国内目前最为流行的应用软件,其在社交领域的霸主地位依然无人可以撼动!它不但撑起了庞大的腾讯软件帝国的一角,而且足以让腾讯傲立于BAT中国互联网三巨头之首。微信,改变了这个世界,而腾讯也成了无数优秀程序员梦想的归宿。围绕着微信这个软件的延伸,腾讯也无私地为代码世界贡献了近百个优秀的开源项目。从古到今,任何一个巨人,都是站在前一辈巨人的肩膀上而成长为新的巨人。百度如此,阿里如此,腾讯亦是如此。SQLite数据库,一个不为人熟知,但已超过10000亿个设备在使用的开源数据库,已经渗入人们生活的各个环节。目前超过11亿个活跃的微信号,每时每刻都在与这个深藏功与名的SQLite数据库共舞着。由于微信的巨大成功,从而成为众多痴迷技术的探秘者的实验品。同样,嵌入微信内部那个深藏功名的SQLite数据库,也成为这些人的又一个解剖对象。接下来,准备好我们的工具,让我们一起来窥探其中的奥妙! 微信中的数据库无论是在微信安装还是运行的时候,普通用户是不会觉察到微信中居然还有一个默默无闻的SQLite数据库。就算在微信的安装目录中,你也不会发现有任何对于SQLite数据库的描述、说明和感谢(基于SQLite的许可协议,不允许以SQLite的名义来推销产品),但是却在用户的文件夹下(C:\Users\xxxxxx\Documents\WeChat Files\xxxx\Msg\)留下一堆以db为扩展名的文件。对于细心的探索者来说,微信留下来的任何蛛丝马迹,都会变成重要的探秘线索。这些db文件,都是经过加密处理的。即使你怀疑它是一个SQLite数据库文件,但是你根本无法用任何一个SQLite管理器打开。虽然网上有不少的文章告诉你,去到微信中寻找那个密码,然后使用某某工具进行解密还原。先不说这些工具各种各样的莫名其妙的问题,就算你确实可以顺利搞到密码,再到完成了解密,再进行访问,其实已经晚了半拍。当然,你要相信,腾讯的那些顶级程序员,会在保证软件功能和性能的情况下,会为这些探秘者设置各种各样的障碍。至少我们知道,那些db文件的确是一个个SQLite数据库,只是经过了加密处理而已。 窥探SQLite数据库SQLite数据库是一个开源的软件,也就是说,任何人都可以免费地获取它的源代码,对它进行研究、分析,当然还有修改。如果你要把你修改的内容“贡献”给SQLite官方,那么你必须申明你放弃你修改的这些代码的“版权”,不过你提供的代码基本不会原样照搬,而是被SQLite官方按照自己的标准重写一次(开源,但不开放)。当然,如果你要修改后自己用的话,那就随便你啦,SQLite官方并不会找你要钱。即便如此,谷歌依然每年给予SQLite巨额的赞助,当然国内腾讯、阿里等这些巨头也毫不吝啬。虽然这个软件包括源代码在内都是免费开放的,但由于有不少的巨头为其撑腰,就算SQLite不收你的钱,它也会活得很好。如果你非要交钱买个许可的话,那就花6000美元买一个吧,官方称这些钱会用于资助SQLite的持续改进和支持。既然SQLite数据库是开放源代码的,而且还有来自微信开发团队的严苛加密,那么将其与微信一起研究,则更为令人振奋。登上SQLite的官方主页,http://www.sqlite.org,你可以随时把SQLite诞生以来近20年的各个版本抓来研究一番。网站上还有各种示例,教你如何使用SQLite数据库,详尽的各种解说,如果你愿意,你可以通过这个网站了解到它的各种之末细节和详尽的实现方式。虽然,网站没提供中文版,不过,语言并不是障碍,谷歌浏览器的翻译功能,可以让你了解个八九不离十。 一个简单的SQLite示例如果你还不知道这个SQLite数据库怎么用,网站上提供了TCL的示例代码和C语言的示例代码。现摘抄C示例代码如下(代码来源:https://www.sqlite.com/quickstart.html)。  

[C++] 纯文本查看 复制代码
?
01  #include
02  #include
03 
04  static int callback(void *NotUsed, int argc, char **argv, char **azColName){
05    int i;
06    for(i=0; i
关注
打赏
1604459285
查看更多评论
0.1099s