-
-
[原创]pc版微信 数据库备份(1)sqlite 版本的定位
-
发表于:
2021-1-15 10:21
6773
-
[原创]pc版微信 数据库备份(1)sqlite 版本的定位
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源码
下一页
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-1-18 09:19
被freeGod编辑
,原因: