WeChat, sebagai aplikasi IM seluler paling populer di Tiongkok, tidak menyediakan metode apa pun untuk mengekspor riwayat pesan terstruktur.
Kami merekayasa balik protokol penyimpanan pesan WeChat, dan menyediakan alat ini untuk mendekripsi dan mengurai pesan WeChat pada ponsel Android yang di-rooting. Itu juga dapat membuat pesan menjadi file html mandiri termasuk pesan suara, gambar, emoji, video, dll.
Alat ini terakhir diverifikasi untuk berfungsi dengan WeChat versi terbaru pada 01/01/2025. Jika alat ini cocok untuk Anda, harap luangkan waktu sejenak untuk menambahkan ponsel/OS Anda ke wiki.
./third-party/compile_silk.sh
)pip install -r requirements.txt
. ./android-interact.sh db
. Ini mungkin menggunakan userid yang salah.${userid}
Anda dengan memeriksa konten /data/data/com.tencent.mm/MicroMsg
pada sistem file root perangkat. Itu harus berupa nama sepanjang 32 karakter yang terdiri dari angka heksadesimal./data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db
dari perangkat../decrypt-db.py decrypt --input EnMicroMsg.db
Dapatkan WeChat uin (bilangan bulat), cara yang mungkin adalah:
./decrypt-db.py uin
, yang mencari uin di /data/data/com.tencent.mm/shared_prefs/
document.cookie
Dapatkan id perangkat Anda (bilangan bulat positif), cara yang mungkin adalah:
./decrypt-db.py imei
mengimplementasikan beberapa cara untuk menemukan id perangkat.*#06#
di ponsel AndaDekripsi database dengan kombinasi uin dan id perangkat:
./decrypt-db.py decrypt --input EnMicroMsg.db --imei <device id> --uin <uin>
CATATAN: Anda mungkin perlu mencoba berbagai cara untuk mendapatkan id perangkat dan menemukan cara yang dapat mendekripsi database. Beberapa ponsel mungkin memiliki beberapa IMEI, Anda mungkin perlu mencoba semuanya. Lihat #33. Perintah tersebut akan membuang database yang didekripsi di EnMicroMsg.db.decrypted
.
Jika dekripsi di atas tidak berhasil, Anda juga dapat mencoba peretas kata sandi untuk melakukan brute force pada kunci. Kunci enkripsinya tidak terlalu kuat.
Salin direktori sumber daya pengguna WeChat /data/data/com.tencent.mm/MicroMsg/${userid}/{avatar,emoji,image2,sfs,video,voice2}
dari ponsel ke direktori resource
:
./android-interact.sh res
RES_DIR
pada skrip jika lokasi direktori ini berbeda di ponsel Anda. Untuk WeChat versi lama, direktorinya mungkin /mnt/sdcard/tencent/MicroMsg/
tar
dengan atau tanpa kompresi, lalu menyalin arsipnya, busybox tar
direkomendasikan karena tar
sistem Android mungkin tersendat di jalur yang panjang.resource
dengan subdir berikut: avatar,emoji,image2,sfs,video,voice2
. (Opsional) Unduh cache emoji dari sini dan dekompresi di bawah wechat-dump
. Ini akan menghindari pengunduhan terlalu banyak emoji selama rendering.
wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2
tar xf emoji.cache.tar.bz2
Parsing dan buang pesan teks dari setiap obrolan (memerlukan database yang didekripsi):
./dump-msg.py decrypted.db output_dir
Daftar semua obrolan (database yang didekripsi diperlukan):
./list-chats.py decrypted.db
Hasilkan laporan statistik tentang pesan teks (memerlukan output_dir
dari ./dump-msg.py
):
./count-message.sh output_dir
Buang pesan dari satu kontak ke html, berisi pesan suara, emoji, dan gambar (memerlukan basis data dan resource
yang didekripsi):
./dump-html.py "<contact_display_name>"
File keluarannya adalah output.html
.
Periksa ./dump-html.py -h
untuk menggunakan jalur yang berbeda.
Tangkapan layar html yang dihasilkan:
Lihat di sini untuk contoh html.
grep 'TODO' wechat -R