对X信的研究及修改(一)

发布者:iweizime
发布于:2018-01-02 23:42
 

本系列文章,主要讲的是如何修改微信apk的代码,使其撤回功能失效,以及添加自动抢红包的功能。
做成之后的效果如下图:
这个图片没法控制大小,凑合看吧
a

 

b

 

前几篇文章先讲一下微信的反编译、APK的调试、APK的hook,这些是基础。然后在简单讲一下如何实现对微信的更改。虽然是以微信为例,但技术都是通用的。

 

在开头列举一下用到的环境及工具。

  • Android Studio, 用来调试微信,编写向微信中添加的代码。
  • smalidea,调试微信的插件。
  • dex2jar,将dex文件转变成jar文件。
  • jadx,把dex文件反编译成Java代码。
  • Frida,hook工具。
  • APKDB,反编译及编译工具集。
  • smali/baksmali,编译及反编译工具。
  • dx工具,将.class文件变成.dex文件。
  • wechat-dump,解密微信数据库。

在改动微信之前,先看一下微信的数据库。
微信的数据库保存在类似于/data/data/com.tencent.mm/MicroMsg/2e47ae0b9f8f3704edf4c41a428e412e/EnMicroMsg.db里面。这个数据库是加密过的,可以使用wechat-dump解密。

 

在Ubuntu上安装好依赖,然后就可以使用了。

sudo apt-get install sox android-tools-adb python-requests python-pil python-pyquery python-numpy libsox-dev libsqlite3-dev libsqlcipher-dev
pip install --user pysqlcipher csscompressor
pip install --user --pre pysox

解密需要手机的IMEI和微信的UIN。这个工具支持自动模式和手动模式。
自动模式就一条简单的命令

./android-interact.sh db-decrypt

手动模式

  1. 先把/data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db复制出来
  2. /data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml中找到default_uin的值。
  3. 在手机上拨打*#06#获取手机的IMEI
  4. 解密./decrypt-db.py <path to EnMicroMsg.db> <imei> <uin>

更多信息请参考wechat-dump

 

解密之后可以使用任意一个sqlite3工具打开。打开之后,message表最重要,其格式如下:

 

image_1c0og6g51qrq1euf1c7g89p39b9.png-52.8kB


声明:该文观点仅代表作者本人,转载请注明来自看雪