La aplicación que estoy intentando atacar (bajo un programa legítimo de recompensas de errores, por supuesto) tiene el siguiente código para su receptor de difusión:
//From vulnerable app
public void onReceive(Context paramContext, Intent paramIntent)
{
...
paramIntent = (CommonBean)paramIntent.getSerializableExtra("msg_bean");
Una vez recuperado el extra serializable del intento, se convierte al tipo CommonBean, que es una clase personalizada definida en la aplicación. Intenté redefinir la clase CommonBean en otra aplicación atacante y crear una instancia del objeto. Luego se transfiere a la intención antes de enviarla al receptor como se muestra en el código a continuación.
//From attacking app
CommonBean bean = new CommonBean();
intent.putExtra("msg_bean", bean);
sendBroadcast(intent);
Sin embargo, recibí un error ClassDefNotFound porque la ruta de clase de la aplicación atacante es diferente de la aplicación vulnerable. (es decir, si la aplicación atacante tiene el paquete a.b.c y la aplicación vulnerable tiene el paquete d.e.f, la aplicación vulnerable generará un error ClassDefNotFound, ya que a.b.c.CommonBean no se puede encontrar en la aplicación vulnerable, donde se supone que la clase CommonBean es d.e.f.CommonBean). ¿Hay alguna manera de pasar este objeto personalizado a la intención para que la ruta del objeto siga la aplicación vulnerable (d.e.f) y no la aplicación atacante? (A.b.c)