중국에서 가장 인기 있는 모바일 IM 앱인 WeChat은 구조화된 메시지 기록을 내보내는 방법을 제공하지 않습니다.
우리는 WeChat 메시지의 저장 프로토콜을 리버스 엔지니어링했으며 이 도구를 제공하여 루팅된 안드로이드 휴대폰에서 WeChat 메시지를 해독하고 구문 분석합니다. 또한 메시지를 음성 메시지, 이미지, 이모티콘, 비디오 등을 포함한 독립된 HTML 파일로 렌더링할 수도 있습니다.
이 도구는 2025년 1월 1일에 최신 버전의 wechat에서 작동하는 것으로 마지막으로 확인되었습니다. 도구가 귀하에게 적합하다면 잠시 시간을 내어 위키에 귀하의 휴대폰/OS를 추가하십시오.
./third-party/compile_silk.sh
로 빌드)pip install -r requirements.txt
. ./android-interact.sh db
. 잘못된 사용자 ID를 사용할 수 있습니다./data/data/com.tencent.mm/MicroMsg
의 내용을 검사하여 ${userid}
알아내세요. 16진수로 구성된 32자 길이의 이름이어야 합니다./data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db
를 가져옵니다../decrypt-db.py decrypt --input EnMicroMsg.db
WeChat uin(정수)을 가져옵니다. 가능한 방법은 다음과 같습니다.
./decrypt-db.py uin
/data/data/com.tencent.mm/shared_prefs/
에서 uin을 찾습니다.document.cookie
에서 wxuin=1234567을 가져옵니다.장치 ID(양의 정수)를 얻으세요. 가능한 방법은 다음과 같습니다:
./decrypt-db.py imei
장치 ID를 찾는 몇 가지 방법을 구현합니다.*#06#
에 전화하세요.uin과 장치 ID의 조합으로 데이터베이스를 해독합니다.
./decrypt-db.py decrypt --input EnMicroMsg.db --imei <device id> --uin <uin>
참고: 장치 ID를 얻고 데이터베이스를 해독할 수 있는 ID를 찾으려면 다양한 방법을 시도해야 할 수도 있습니다. 일부 휴대폰에는 IMEI가 여러 개 있을 수 있으므로 모두 사용해 봐야 할 수도 있습니다. #33을 참조하세요. 이 명령은 EnMicroMsg.db.decrypted
에서 해독된 데이터베이스를 덤프합니다.
위의 암호 해독이 작동하지 않으면 암호 크래커를 사용하여 키를 무차별 공격할 수도 있습니다. 암호화 키가 그다지 강력하지 않습니다.
WeChat 사용자 리소스 디렉터리 /data/data/com.tencent.mm/MicroMsg/${userid}/{avatar,emoji,image2,sfs,video,voice2}
를 전화기에서 resource
디렉터리로 복사합니다.
./android-interact.sh res
RES_DIR
변경하십시오. 이전 버전의 wechat의 경우 디렉터리는 /mnt/sdcard/tencent/MicroMsg/
일 수 있습니다.tar
사용하여 아카이브한 다음 아카이브를 복사하는 것이 더 빠를 수 있습니다. Android 시스템의 tar
긴 경로에서 질식할 수 있으므로 busybox tar
사용하는 것이 좋습니다.avatar,emoji,image2,sfs,video,voice2
하위 디렉터리가 있는 resource
디렉터리가 필요합니다. (선택 사항) 여기에서 이모티콘 캐시를 다운로드하고 wechat-dump
아래에서 압축을 풉니다. 이렇게 하면 렌더링 중에 너무 많은 이모티콘을 다운로드하는 것을 방지할 수 있습니다.
wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2
tar xf emoji.cache.tar.bz2
모든 채팅의 문자 메시지를 구문 분석하고 덤프합니다(복호화된 데이터베이스 필요):
./dump-msg.py decrypted.db output_dir
모든 채팅 나열(복호화된 데이터베이스 필요):
./list-chats.py decrypted.db
문자 메시지에 대한 통계 보고서 생성( ./dump-msg.py
의 output_dir
필요):
./count-message.sh output_dir
음성 메시지, 이모티콘 및 이미지가 포함된 한 연락처의 메시지를 html로 덤프합니다(복호화된 데이터베이스 및 resource
필요).
./dump-html.py "<contact_display_name>"
출력 파일은 output.html
입니다.
다른 경로를 사용하려면 ./dump-html.py -h
확인하세요.
생성된 HTML의 스크린샷:
예제 HTML은 여기를 참조하세요.
grep 'TODO' wechat -R
참조하세요.