Verwechslung zwischen Intent und getIntent() in onActivityResult - Android Java

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Verwechslung zwischen Intent und getIntent() in onActivityResult - Android Java

by Guest » 07 Jan 2025, 02:20

Um die Herausforderung zu lösen, habe ich diesen Code geschrieben. Zuerst wird intent von der Ziel-App aufgerufen, dann werde ich intent_result_flag12 mit den erforderlichen Daten starten, um die Bedingung if (intent == null) nicht zu erfüllen ||. getIntent() == null ||. !getIntent().getBooleanExtra("LOGIN", false)) zum Aufrufen der success()-Methode, aber mit meinem aktuellen Code immer erfüllt und kehrt zurück, ohne etwas zu tun, das heißt, eine der Bedingungen wird immer wahr.
aber meine Frage ist, was hier der Unterschied zwischen intent und getIntent() in onActivityResult ist Die Absicht in onActivityResult ist mein intent_result_flag12, das die Ergebnisdaten sendet, wenn die Absicht aufgerufen wird. aber was ist getIntent() in onActivityResult?
Dekompilierte Challenge-App:

Code: Select all

protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.f = new LogHelper(this);
if (getIntent().getAction() == null) {
Toast.makeText(this, "Sending implicit intent to\nio.hextree.attacksurface.ATTACK_ME", 1).show();
Intent intent = new Intent("io.hextree.attacksurface.ATTACK_ME");
intent.addFlags(8);
try {
startActivityForResult(intent, 42);
} catch (RuntimeException e) {
e.printStackTrace();
Toast.makeText(this, "No app found to handle the intent\nio.hextree.attacksurface.ATTACK_ME", 1).show();
finish();
}
}
}

@Override
protected void onActivityResult(int i, int i2, Intent intent) {
super.onActivityResult(i, i2, intent);
if (intent == null || getIntent() == null || !getIntent().getBooleanExtra("LOGIN", false)) {
return;
}
this.f.addTag("LOGIN");
if (intent.getIntExtra("token", -1) == 1094795585) {
this.f.addTag(1094795585);
success(this);
}
}
Mein App-Code HijackImplicitIntentsActivity:

Code: Select all

        Intent intent = getIntent();

Intent intent_result_flag12 = new Intent();

Intent intent_extra = new Intent();

intent_extra.putExtra("LOGIN", false);
intent_result_flag12.putExtra("token", 1094795585);
intent_result_flag12.putExtras(intent_extra);

setResult(RESULT_OK, intent_result_flag12);

finish();

AndroidManifest.xml

Code: Select all


                



Top