首页
社区
课程
招聘
[原创]pc版微信 数据库备份(1)sqlite 版本的定位
发表于: 2021-1-15 10:21 6775

[原创]pc版微信 数据库备份(1)sqlite 版本的定位

2021-1-15 10:21
6775

pc版微信数据备份思路:https://www.52pojie.cn/thread-1084703-1-1.html

作者没有介绍关键的具体细节操作:我来补充一下

1.知己知彼,百战百胜。减少不必要的逆向工作。
答案就是 自己写一个使用sqlite程序,用ida分析自己写的程序,看看每个函数的特征是什么,这样就不用去分析大量的sqlite源码的汇编代码,根据汇编指令来确定是那个sqlite函数,而只要确定了每个函数的特征码,就可以通过简单搜索来确定要定位的sqlite函数了,大量的减少了不必要的逆向工作。
当我们逆向的时候,这个思路很重要,可以减少很多对源码库的逆向工作。
ida 也有针对库进行识别的功能,但是有时候不太好用。

我们知道 微信使用的是sqlite数据库,如何快速定位到要找到的sqlite函数呢?
因为 sqlite 是开源的,所以我们能获取sqlite源码,为了更好的定位pc版微信中使用的sqlite函数,我们应该使用和微信相同版本的sqlite。
如何确定微信中的sqlite版本?

用ida打开 pc版微信目录中的 WechatWin.dll文件,等ida分析完成后,打开字符串窗口,打开方式如下图所示:

在字符串窗口中,按CTRL+F快捷键,搜索字符串:sqlite_version

双击搜索到的字符串,定位到字符串的地址

鼠标点一下 aSqliteVersion 按键盘上的x键定位到引用字符串的位置

双击这个交叉引用或者按ok按钮,定位到 这个字符串引用位置

这个字符串引用上方的第一个offset函数点进去

这样就确定了 pc版微信使用的sqlite版本号 3.28.0

文章写的太长,大家看的太累,就像 写代码一样,如果一个源码文件太长,就会让人莫名的产生一种厌烦。不如把它打散,分成多个小的文件。

这一篇,我们完成了 pc版微信(或者其他使用sqlite的程序)使用的sqlite版本的定位分析。

下一篇,我们来自己写个使用同样版本的sqlite的应用程序。
pc版微信 数据库备份(2)编译sqlite源码

下一页


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-1-18 09:19 被freeGod编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 7470
活跃值: (1162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
赞!
2021-3-19 10:20
0
游客
登录 | 注册 方可回帖
返回
//