微信群成员批量导出/提取工具__开发第2篇

系列文章索引:

  1. 微信群成员导出/提取工具推荐及排行
  2. 微信群成员批量导出/提取工具__开发第2篇  
  3. 微信群成员批量导出/提取工具__开发第3篇

  

  上一篇我们列举了当前市面上的几款“微信群成员批量导出/提取工具",也说了下相关的开发背景,这一篇我们就开始实打实的入门开发篇。

  咱们这一系列文章的前提是您要会这么些门语言及相关知识,不然看起来的话,保证您晕头转向找不着北。

  开发语言:汇编,c++,c#,

  工具:od,ida,ce

  首先说下开发语言吧,c++毋庸置疑,因为到后面我们要写内联汇编,然后写dll给客户端exe调用。

  再说c#,用c#是因为咱后面的客户端打算用c#开发,有些同学可能会问为什么不直接就用c++做界面开发呢。以我浅薄的c++开发经验,我只能说以后宁愿用vb,用易语言,再也不用c++做界面开发了。

  第1:控件功能过于简陋,比如要实现个列表框多选的,非得用winapi,当然不排除也有mfc之类的能实现,但是个觉得为啥有更好用的c#不用,非得用老古董的东西呢。

  第2:类库太少了,比如像c#集成的base64,md5,websocket啊。c++得去网上好找一翻,才能找齐

  第3:......

  第4:......

  总之吧,咱还是挑比较便利的来做开发。

  要开发”微信群成员批量导出/提取工具“,首先第一步,就是要获取微信群列表。怎么获取呢,这里有2种方法,第一种是从微信内存里面读取,因为微信会把群列表包括联系人列表都放在内存里面,然后存成1个二叉树结构,每次读取的时候都从内存上读取,速度才会快,相关教程网上都有,大家可以找下相关文章看看。不过我们要用的是另外一种:从数据库里面获取微信群列表,为什么呢?因为吧,微信数据库里面的列表是最全,它包括了以前很久不说话的群甚至连退出的群都有记录。咱们秉着要做就做个大的来的想法,所以咱从微信的数据库上获取微信群列表及微信成员列表资料。

  微信的数据库使用的是sqlite,但是是有加密的,所以直接把微信的sqlite数据库拷出来,也是没办法用相关sqlite数据库管理工具打开访问的。

  既然是加密的,那咱们是不是要进行解密呢。不,虽然解密也是一种方法,但是咱们要获取的是比较实时的数据,所以咱们采用另外一种方法,就是获取微信的数据库句柄,把它的句柄拿过来,咱们就可以对数据库为所欲为了。之所以可以这么做,是因为微信打开sqlite数据库句柄后,并不关闭这个句柄,因为如果用一次关一次,那其实是挺浪费资源的,所以微信打开数据库句柄后就把句柄存在一个全局变量里,要查询数据库的时候,就拿过来用。

  原理说明白了,咱就知道怎么搞了,因为全局静态变量在汇编里面的话,它就会有个基址,咱只要找到这个基址,算下偏移,只要是相同的微信版本,不管哪台电脑咱就都可以找到它了。说干就干,拿出od,载入微信,定位到数据库调用的地方。

  

原文链接: https://www.cnblogs.com/qing123/p/14672095.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    微信群成员批量导出/提取工具__开发第2篇

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/209638

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午11:58
下一篇 2023年2月12日 下午11:59

相关推荐