Este proyecto está agrupado en tres directorios.
macos/
contiene scripts DTrace para jugar con WeChat.app en macOS.eavesdropper.d
imprime la conversación en tiempo real. Muestra efectivamente las transacciones de la base de datos sobre la marcha.dbcracker.d
revela ubicaciones de las bases de datos SQLite3 cifradas y sus credenciales. Dado que solo puede capturar secretos cuando WeChat.app abre estos archivos, debe iniciar sesión mientras se ejecuta el script. Simplemente copie y pegue la salida del script para invocar SQLCipher y proporcionar los PRAGMA
respectivos.pcbakchat/
puede encontrar scripts para analizar los archivos de copia de seguridad de WeChat.gather.d
recopila varios datos de información necesarios para descifrar la copia de seguridad.devel/
residen utilidades para mayor ingeniería inversa. Están destinados únicamente a piratas informáticos y no se espera que los usuarios finales de este proyecto los utilicen.xlogger.d
imprime los mensajes de registro que van a /Users/$USER/Library/Containers/com.tencent.xinWeChat/Data/Library/Caches/com.tencent.xinWeChat/2.0b4.0.9/log/*.xlog
. Hice este script destructivo para sobrescribir la variable global gs_level
.protobuf_config.py
describe el formato protobuf utilizado por los archivos de respaldo para protobuf-inspector.__handlers__/
contiene algunos controladores que se usarán con frida-trace
.init.js
contiene la función auxiliar para frida-trace
. Dado que dtrace(1)
está preinstalado en macOS, no se requieren dependencias para ejecutar los scripts. Sin embargo, es posible que tengas que desactivar SIP si aún no lo has hecho. Además, necesitará SQLCipher para inspeccionar las bases de datos descubiertas por dbcracker.d
.
Para algunos scripts en devel
, también necesitarás Frida y un dispositivo iOS (preferiblemente con jailbreak).
Para scripts de DTrace, inicie WeChat y ejecute
sudo $DECIPHER_SCRIPT -p $( pgrep -f ' ^/Applications/WeChat.app/Contents/MacOS/WeChat ' )
reemplace $DECIPHER_SCRIPT
con macos/dbcracker.d
, macos/eavesdropper.d
, pcbakchat/gather.d
o devel/xlogger.d
.
El material en pcbakchat/
es un poco complicado. Consulte usage.md
para obtener más detalles.
Ojalá no. La mayor parte del procesamiento se realiza sin conexión en el cliente macOS y la sobrecarga de DTrace debería ser insignificante, por lo que hay pocas posibilidades de que lo detecten.
La producción de estos guiones implicó una cantidad excesiva de conjeturas e ilusiones, pero al menos funciona en mi máquina :)
Device Type: MacBookPro14,1
System Version: Version 10.14.6 (Build 18G8022)
System Language: en
WeChat Version: [2021-04-02 17:49:14] v3.0.1.16 (17837) #36bbf5f7d2
WeChat Language: en
Historic Version: [2021-03-29 20:23:50] v3.0.0.16 (17816) #2a4801bee9
Network Status: Reachable via WiFi or Ethernet
Display: *(1440x900)/Retina