Cómo usar Python para capturar los momentos WeChat de otras personas
Obtener información de texto de la interfaz de usuario es la forma más sencilla, por lo que primero debes invertir la parte del código de la interfaz de usuario.
Apk de WeChat inverso
Primero descomprima el apk de WeChat, use dex2jar para descompilar Classes.dex y luego use JD-GUI para ver el código fuente del jar. Por supuesto, el código fuente que se puede ver está muy confuso. Sin embargo, los nombres de clases heredados de componentes importantes de Android como Actividad, Servicio, etc. no están ofuscados, por lo que aún puedes ver algo de ellos.
Primero, encontramos el paquete de la aplicación WeChat. Sabemos que esto es com.tencent.mm.
En com.tencent.mm
, encontramos un paquete ui
, que es un poco interesante.
Extensión com.tencent.mm.ui
Encontramos un paquete ui
, que es un poco interesante.
Al extender com.tencent.mm.ui
encontraremos múltiples clases no ofuscadas, entre las que encontramos que MMBaseActivity hereda directamente de Activity
, MMFragmentActivity
Hereda de ActionBarActivity
, MMActivity
hereda de MMFragmentActivity
y MMActivity
es la mayor parte de la actividad principal de WeChat. clase:
clase pública MMFragmentActivity
extiende ActionBarActivity
implementa SwipeBackLayout.a, b.a {
...
...
p>}
clase abstracta pública MMActivity
extiende MMFragmentActivity {
...
}
clase pública MMBaseActivity
extiende la actividad {
...
}
Ahora , necesitas encontrar la Actividad en el círculo de amigos, para esto debes conectar MMActivity usando Xposed.
Crear módulo Xposed
Consulte [Tutorial] Desarrollo del módulo Xposed para crear un proyecto Xposed.
La idea básica de un módulo Xposed simple es conectar un método en su aplicación para leer o escribir datos.
Intentaré conectar com.tencent.mm.ui.MMActivity.setContentView e imprimir todo el contenido de TextView en esa Actividad.
Luego, primero debe atravesar todas las TextViews en esta Actividad, y el método para atravesar ViewGroup se refiere al siguiente código en SO:
private void getAllTextViews(final View v) {if (v instanciade ViewGroup) {
ViewGroup vg = (ViewGroup) v;
for (int i = 0; i lt; vg.getChildCount(); i) {Ver hijo = vg.getChildAt(i) ; i) {Ver niño = vg.getChildAt(i);
ViewGroup vg = (ViewGroup) v;