当前位置: 首页 > 软件库 > 手机/移动开发 > >

wechat-dump

授权协议 GPL-3.0 License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 傅正豪
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Dump WeChat Messages from Android

导出安卓微信消息记录

WeChat, as the most popular mobile IM app in China, doesn't provide any methods to export structured message history.

We reverse-engineered the storage protocol of WeChat messages, andprovide this tool to decrypt and parse WeChat messages on a rooted android phone.It can also render the messages into self-contained html files including voice messages, images, emojis, videos, etc.

If the tool works for you, please take a moment to add your phone/OS to the wiki.

How to use:

Dependencies:

  • adb and rooted android phone connected to a Linux/Mac OSX/Win10+Bash.If the phone does not come with adb support, you can download an app such as https://play.google.com/store/apps/details?id=eu.chainfire.adbd
  • Python >= 3.6
  • sqlcipher >= 4.1
  • sox (command line tools)
  • Silk audio decoder (included; build it with ./third-party/compile_silk.sh)
  • Other python dependencies: pip install -r requirements.txt.

Get Necessary Data:

  1. Pull database file and (for older wechat versions) avatar index:
  • Automatic: ./android-interact.sh db. It may use an incorrect userid.
  • Manual:
    • Figure out your ${userid} by inspecting the contents of /data/data/com.tencent.mm/MicroMsg on the root filesystem of the device. It should be a 32-character-long name consisting of hexadecimal digits.
    • Get /data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db from the device.
  1. Decrypt database file:
  • Automatic: ./decrypt-db.py decrypt --input EnMicroMsg.db
  • Manual:
    • Get WeChat uin (an integer), possible ways are:

      • ./decrypt-db.py uin, which looks for uin in /data/data/com.tencent.mm/shared_prefs/
      • Login to web wechat, get wxuin=1234567 from document.cookie
    • Get your device id (a positive integer), possible ways are:

      • ./decrypt-db.py imei implements some ways to find device id.
      • Call *#06# on your phone
      • Find IMEI in system settings
    • Decrypt database with combination of uin and device id:

      ./decrypt-db.py decrypt --input EnMicroMsg.db --imei <device id> --uin <uin>
      

      NOTE: you may need to try different ways to get device id and find one that can decrypt thedatabase. Some phones may have multiple IMEIs, you may need to try them all.See #33.The command will dump decrypted database at EnMicroMsg.db.decrypted.

If the above decryption doesn't work, you can also try the password crackerto brute-force the key. The encryption key is not very strong.

  1. Copy the WeChat user resource directory /mnt/sdcard/tencent/MicroMsg/${userid}/{avatar,emoji,image2,sfs,video,voice2} from the phone to the resource directory:

    • ./android-interact.sh res
    • Change RES_DIR in the script if the location of these directories is different on your phone.
    • This can take a while. Can be faster to first archive it with tar with or without compression, and then copy the archive,busybox tar is recommended as the Android system's tar may choke on long paths.
    • In the end, we need a resource directory with the following subdir: avatar,emoji,image2,sfs,video,voice2.
  2. (Optional) Download the emoji cache from hereand decompress it under wechat-dump. This will avoid downloading too many emojis during rendering.

     wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2
     tar xf emoji.cache.tar.bz2
    

Run:

  • Parse and dump text messages of every chat (requires decrypted database):

    ./dump-msg.py decrypted.db output_dir
    
  • List all chats (required decrypted database):

    ./list-chats.py decrypted.db
    
  • Generate statistics report on text messages (requires output_dir from ./dump-msg.py):

    ./count-message.sh output_dir
    
  • Dump messages of one contact to html, containing voice messages, emojis, and images (requires decrypted database and resource):

    ./dump-html.py "<contact_display_name>"
    

    The output file is output.html.

    Check ./dump-html.py -h to use different paths.

Examples:

Screenshots of generated html:

byvoid

See here for an example html.

TODO List

  • Fix rare unhandled message types: > 10000 and < 0
  • Better user experiences... see grep 'TODO' wechat -R

Donate!

[paypal]
  • 问题描述: 1,在ios逆向工程中,用 class-dump 可以导出App头文件;但是,从App Store 下载的App,都是加密过的,直接用 class-dump ,导出结果只会什么都没有,或者只有一个:CDStructures.h 文件;因此,对于这种情况,首先要做的就是:砸壳; 2,砸壳工具有:AppCrackr、Clutch、dumpcrypted 等;由于 AppCrackr 、Cl

  • 简介 class-dump 是一个工具,它利用了 Objective-C 语言的运行时特性,将存储在 Mach-O 文件中的头文件信息提取出来,并生成对应的 .h 文件。 安装 可以在其class-dump 官网下载,将里面的 class-dump 直接放在/usr/local/bin 目录,并给个可执行权限即可 如果/usr/local/bin没有添加到PATH,请自行添加 使用 配置完后只需要

  • class-dump -H (target file) -o (result header file path)  如果导出来只有一个空的头文件,就是加密的,要先砸壳。 下载砸壳工具dumpdecrypted https://github.com/stefanesser/dumpdecrypted 终端cd到目录,输入make,生成dumpdecrypted.dylib。 重新签名: securi

  • 顾名思义,它的作用就是把Mach-O文件的class信息给dump出来(把类信息给导出来),生成对应的.h头文件 官方地址:http://stevenygard.com/projects/class-dump/ 下载完工具包后将class-dump文件复制到Mac的/usr/local/bin目录,这样在终端就能识别class-dump命令了   赋予 class-dump权限   chmod +

  • 在mac上直接使用dump.py -l 会报ImportError: No module named frida 但我的电脑已经有了frida 解决办法: python3 dump.py -l 使用上面的语句运行就可以(虽然我已经默认python版本为python3但还是要这样才能运行,不知道为啥) 使用如下命令报错: python3 dump.py 微信 错误原因: need Gadget

 相关资料
  • 微信管理 v3.x说明文档 最新版本: 主题邦微信第三方平台文档 http://docs.fenxiangbei.com/ 配置 微信模块的正常使用需要提供一些微信信息, 需要配置的信息如下: wx_app_id : 微信公众号 app_id wx_secret : 微信公众号 app_secret 配置位置: 为了所有的模块都能使用这些微信配置,我们使用后台的站点配置来设置这些信息。(系统设置

  • Matrix 是一款微信研发并日常使用的 APM (Application Performance Manage) ,当前主要运行在 Android 平台上。Matrix 的目标是建立统一的应用性能接入框架,通过对各种性能监控方案快速集成,对性能监控项的异常数据进行采集和分析,输出相应问题的分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。 Matrix 当前监控范围包括:应用安装包大小,

  • WeChat-SpringBoot 是使用 Spring Boot 开发的微信开发后端脚手架

  • wechat-go 是一个简洁、高效的 golang 版本微信 SDK,支持微信应用和商户。 设计目标 在概念清晰的基础上追求更少的编码、更开放、灵活的结构。 本库不是在微信官方API基础上进一步封装,造出一个新的框架级的重体量SDK。而是努力成为微信官方文档的Golang版快速工具箱。 努力让开发者在学习微信官方文档后,不再有新的学习曲线(另学一套)! 所以本库目标是:极致、简单!不创另行发明新

  • Easy WeChat Easy-WeChat可能是目前最优雅的微信公众平台 SDK 了。 特点: 命名不那么乱七八糟; 隐藏开发者不需要关注的细节; 方法使用更优雅,不必再去研究那些奇怪的的方法名或者类名是做啥用的; 自定义缓存方式; 符合 PSR 标准,你可以各种方便的与你的框架集成; 高度抽象的消息类,免去各种拼json与xml的痛苦; 详细 Debug 日志,一切交互都一目了然; 安装 环

  • Yii-wechat 是基于 Yii2 实现的微信模块, 集成微信模拟器、多公众号管理、扩展开发接口,只需关注功能,微信开发的强劲引擎。 注意 如果是全新使用Yii2和Yii2-wechat,你可以使用 Yii2-app-wechat 微信应用模板(可在该模板基础上开发). 如果是已有的Yii2项目扩展Yii2-wechat, 请遵循下面的安装步骤使用. 如果想深度二次开发Yii2-wechat模