Kenyan banks lose billions each year due to IT related fraud mostly by bank insiders. For an outsider it is difficult but not impossible. With the advent of mobile banking android apps, a good starting point would be to disassemble one using tools like dex2jar, androguard e.t.c and collect info about their API backends.
below is the smali code for the mysafaricom app splashscreen activity
.class public Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;
.super Lcom/mventus/selfcare/safaricom/base/BaseActivity;
.source "SourceFile"
# interfaces
.implements Lcom/mventus/selfcare/safaricom/ui/a/b;
# direct methods
.method public constructor <init>()V
.locals 1
.prologue
.line 34
invoke-direct {p0}, Lcom/mventus/selfcare/safaricom/base/BaseActivity;-><init>()V
.line 35
const v0, 0x7f04001b
iput v0, p0, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->f:I
.line 36
return-void
.end method
# virtual methods
.method public a(I)V
.locals 0
.param p1, "feature" # I
.prologue
.line 212
return-void
.end method
.method public a(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)V
.locals 4
.param p1, "containerId" # I
.param p2, "fragment" # Landroid/support/v4/app/Fragment;
.param p3, "tag" # Ljava/lang/String;
.prologue
.line 75
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getSupportFragmentManager()Landroid/support/v4/app/s;
move-result-object v1
.line 86
.local v1, "fragmentManager":Landroid/support/v4/app/s;
:try_start_0
invoke-virtual {v1}, Landroid/support/v4/app/s;->a()Landroid/support/v4/app/x;
move-result-object v2
.line 88
.local v2, "fragmentTransaction":Landroid/support/v4/app/x;
invoke-virtual {v2, p1, p2, p3}, Landroid/support/v4/app/x;->b(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)Landroid/support/v4/app/x;
.line 89
invoke-virtual {v2, p3}, Landroid/support/v4/app/x;->a(Ljava/lang/String;)Landroid/support/v4/app/x;
.line 90
invoke-virtual {v2}, Landroid/support/v4/app/x;->b()I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 102
.end local v2 # "fragmentTransaction":Landroid/support/v4/app/x;
:goto_0
return-void
.line 92
:catch_0
move-exception v0
.line 96
.local v0, "e":Ljava/lang/Exception;
:try_start_1
invoke-virtual {v1}, Landroid/support/v4/app/s;->a()Landroid/support/v4/app/x;
move-result-object v2
.line 97
.restart local v2 # "fragmentTransaction":Landroid/support/v4/app/x;
invoke-virtual {v2}, Landroid/support/v4/app/x;->c()I
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
goto :goto_0
.line 98
.end local v2 # "fragmentTransaction":Landroid/support/v4/app/x;
:catch_1
move-exception v3
goto :goto_0
.end method
.method public a(ILandroid/view/View;Ljava/lang/Object;)V
.locals 7
.param p1, "pActionType" # I
.param p2, "pView" # Landroid/view/View;
.param p3, "pData" # Ljava/lang/Object;
.prologue
const v6, 0x7f1000a2
const/4 v5, 0x0
.line 108
packed-switch p1, :pswitch_data_0
.line 202
.end local p3 # "pData":Ljava/lang/Object;
:cond_0
:goto_0
return-void
.line 110
.restart local p3 # "pData":Ljava/lang/Object;
:pswitch_0
const-string v4, "RegisterFragment"
invoke-virtual {p0, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->b(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_1
.line 111
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
instance-of v4, v4, Lcom/mventus/selfcare/safaricom/ui/fragment/bo;
if-nez v4, :cond_0
.line 113
const-string v4, "RegisterFragment"
invoke-virtual {p0, v4, v5}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(Ljava/lang/String;I)V
.line 114
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
invoke-virtual {v4}, Landroid/support/v4/app/Fragment;->getArguments()Landroid/os/Bundle;
move-result-object v4
const-string v5, "PHONE_NUMBERS"
check-cast p3, Ljava/lang/String;
.end local p3 # "pData":Ljava/lang/Object;
invoke-virtual {v4, v5, p3}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
goto :goto_0
.line 117
.restart local p3 # "pData":Ljava/lang/Object;
:cond_1
new-instance v3, Lcom/mventus/selfcare/safaricom/ui/fragment/bo;
invoke-direct {v3}, Lcom/mventus/selfcare/safaricom/ui/fragment/bo;-><init>()V
.line 118
.local v3, "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 119
.local v0, "bundle":Landroid/os/Bundle;
const-string v4, "PHONE_NUMBERS"
check-cast p3, Ljava/lang/String;
.end local p3 # "pData":Ljava/lang/Object;
invoke-virtual {v0, v4, p3}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
.line 121
invoke-virtual {v3, v0}, Lcom/mventus/selfcare/safaricom/base/a;->setArguments(Landroid/os/Bundle;)V
.line 122
const-string v4, "RegisterFragment"
invoke-virtual {p0, v6, v3, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)V
goto :goto_0
.line 127
.end local v0 # "bundle":Landroid/os/Bundle;
.end local v3 # "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
.restart local p3 # "pData":Ljava/lang/Object;
:pswitch_1
const-string v4, "OtpFragment"
invoke-virtual {p0, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->b(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_2
.line 128
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
instance-of v4, v4, Lcom/mventus/selfcare/safaricom/ui/fragment/bh;
if-nez v4, :cond_0
.line 130
const-string v4, "OtpFragment"
invoke-virtual {p0, v4, v5}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(Ljava/lang/String;I)V
goto :goto_0
.line 132
:cond_2
new-instance v3, Lcom/mventus/selfcare/safaricom/ui/fragment/bh;
invoke-direct {v3}, Lcom/mventus/selfcare/safaricom/ui/fragment/bh;-><init>()V
.line 133
.restart local v3 # "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 134
.restart local v0 # "bundle":Landroid/os/Bundle;
invoke-virtual {v3, v0}, Lcom/mventus/selfcare/safaricom/base/a;->setArguments(Landroid/os/Bundle;)V
.line 135
const-string v4, "OtpFragment"
invoke-virtual {p0, v6, v3, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)V
goto :goto_0
.line 139
.end local v0 # "bundle":Landroid/os/Bundle;
.end local v3 # "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
:pswitch_2
invoke-static {}, Lcom/mventus/selfcare/safaricom/communication/c;->a()Lcom/mventus/selfcare/safaricom/communication/c;
move-result-object v4
invoke-virtual {v4, p0}, Lcom/mventus/selfcare/safaricom/communication/c;->a(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_5
.line 140
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 142
.restart local v0 # "bundle":Landroid/os/Bundle;
const-string v4, "WebViewFragment"
invoke-virtual {p0, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->b(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_3
.line 143
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
instance-of v4, v4, Lcom/mventus/selfcare/safaricom/ui/fragment/cm;
if-nez v4, :cond_0
.line 145
const-string v4, "WebViewFragment"
invoke-virtual {p0, v4, v5}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(Ljava/lang/String;I)V
.line 146
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
invoke-virtual {v4}, Landroid/support/v4/app/Fragment;->getArguments()Landroid/os/Bundle;
move-result-object v0
.line 147
const-string v4, "URL"
check-cast p3, Ljava/lang/String;
.end local p3 # "pData":Ljava/lang/Object;
invoke-virtual {v0, v4, p3}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
.line 149
if-eqz p2, :cond_0
.line 150
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v4
invoke-virtual {v4}, Landroid/support/v4/app/Fragment;->getArguments()Landroid/os/Bundle;
move-result-object v5
const-string v6, "SHOW_SEARCH"
.line 151
invoke-virtual {p2}, Landroid/view/View;->getTag()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Boolean;
.line 150
invoke-virtual {v5, v6, v4}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
goto/16 :goto_0
.line 153
.restart local p3 # "pData":Ljava/lang/Object;
:cond_3
new-instance v3, Lcom/mventus/selfcare/safaricom/ui/fragment/cm;
invoke-direct {v3}, Lcom/mventus/selfcare/safaricom/ui/fragment/cm;-><init>()V
.line 154
.restart local v3 # "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
const-string v4, "URL"
check-cast p3, Ljava/lang/String;
.end local p3 # "pData":Ljava/lang/Object;
invoke-virtual {v0, v4, p3}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
.line 155
if-eqz p2, :cond_4
.line 156
const-string v5, "SHOW_SEARCH"
.line 157
invoke-virtual {p2}, Landroid/view/View;->getTag()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Boolean;
.line 156
invoke-virtual {v0, v5, v4}, Landroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
.line 158
:cond_4
invoke-virtual {v3, v0}, Lcom/mventus/selfcare/safaricom/base/a;->setArguments(Landroid/os/Bundle;)V
.line 159
const-string v4, "WebViewFragment"
invoke-virtual {p0, v6, v3, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)V
goto/16 :goto_0
.line 163
.end local v0 # "bundle":Landroid/os/Bundle;
.end local v3 # "performBaseFragment":Lcom/mventus/selfcare/safaricom/base/a;
.restart local p3 # "pData":Ljava/lang/Object;
:cond_5
const v4, 0x7f09011d
invoke-virtual {p0, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getString(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {p0, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->f(Ljava/lang/String;)V
goto/16 :goto_0
.line 168
:pswitch_3
invoke-static {}, Lcom/mventus/selfcare/safaricom/model/x;->k()Lcom/mventus/selfcare/safaricom/model/x;
move-result-object v4
invoke-virtual {v4}, Lcom/mventus/selfcare/safaricom/model/x;->l()Lcom/mventus/selfcare/safaricom/model/ae;
move-result-object v2
.line 169
.local v2, "myProfileModel":Lcom/mventus/selfcare/safaricom/model/ae;
if-eqz v2, :cond_0
.line 171
invoke-virtual {v2}, Lcom/mventus/selfcare/safaricom/model/ae;->j()Z
move-result v4
if-eqz v4, :cond_6
.line 173
new-instance v1, Landroid/content/Intent;
const-class v4, Lcom/mventus/selfcare/safaricom/ui/blaze/activity/BlazeHomeActivity;
invoke-direct {v1, p0, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 175
.local v1, "intent":Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->startActivity(Landroid/content/Intent;)V
.line 176
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->finish()V
goto/16 :goto_0
.line 181
.end local v1 # "intent":Landroid/content/Intent;
:cond_6
invoke-virtual {v2}, Lcom/mventus/selfcare/safaricom/model/ae;->k()Z
move-result v4
if-eqz v4, :cond_7
.line 183
new-instance v1, Landroid/content/Intent;
const-class v4, Lcom/mventus/selfcare/safaricom/activity/BlazeOptInActivity;
invoke-direct {v1, p0, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 185
.restart local v1 # "intent":Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->startActivity(Landroid/content/Intent;)V
.line 186
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->finish()V
goto/16 :goto_0
.line 191
.end local v1 # "intent":Landroid/content/Intent;
:cond_7
new-instance v1, Landroid/content/Intent;
const-class v4, Lcom/mventus/selfcare/safaricom/HomeActivity;
invoke-direct {v1, p0, v4}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 193
.restart local v1 # "intent":Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->startActivity(Landroid/content/Intent;)V
.line 194
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->finish()V
goto/16 :goto_0
.line 108
:pswitch_data_0
.packed-switch 0x1
:pswitch_0
:pswitch_1
:pswitch_2
:pswitch_3
.end packed-switch
.end method
.method protected a(Landroid/os/Bundle;)V
.locals 5
.param p1, "savedInstanceState" # Landroid/os/Bundle;
.prologue
.line 56
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getIntent()Landroid/content/Intent;
move-result-object v2
const-string v3, "Action"
invoke-virtual {v2, v3}, Landroid/content/Intent;->hasExtra(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_1
.line 57
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getIntent()Landroid/content/Intent;
move-result-object v2
const-string v3, "Action"
invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
const-string v3, "Register"
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_0
.line 59
const/4 v2, 0x1
const/4 v3, 0x0
const-string v4, "logout"
invoke-virtual {p0, v2, v3, v4}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(ILandroid/view/View;Ljava/lang/Object;)V
.line 70
:cond_0
:goto_0
return-void
.line 63
:cond_1
new-instance v1, Lcom/mventus/selfcare/safaricom/ui/fragment/ch;
invoke-direct {v1}, Lcom/mventus/selfcare/safaricom/ui/fragment/ch;-><init>()V
.line 64
.local v1, "performBaseFragment":Lcom/mventus/selfcare/safaricom/ui/fragment/ch;
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 65
.local v0, "bundle":Landroid/os/Bundle;
invoke-virtual {v1, v0}, Lcom/mventus/selfcare/safaricom/ui/fragment/ch;->setArguments(Landroid/os/Bundle;)V
.line 66
const v2, 0x7f1000a2
const-string v3, "SplashScreenFragment"
invoke-virtual {p0, v2, v1, v3}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->a(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)V
goto :goto_0
.end method
.method public a(Ljava/lang/String;I)V
.locals 1
.param p1, "tag" # Ljava/lang/String;
.param p2, "flag" # I
.prologue
.line 205
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getSupportFragmentManager()Landroid/support/v4/app/s;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroid/support/v4/app/s;->a(Ljava/lang/String;I)V
.line 206
return-void
.end method
.method protected b(Ljava/lang/String;)Z
.locals 1
.param p1, "tag" # Ljava/lang/String;
.prologue
.line 225
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getSupportFragmentManager()Landroid/support/v4/app/s;
move-result-object v0
invoke-virtual {v0, p1}, Landroid/support/v4/app/s;->a(Ljava/lang/String;)Landroid/support/v4/app/Fragment;
move-result-object v0
if-eqz v0, :cond_0
.line 226
const/4 v0, 0x1
.line 228
:goto_0
return v0
:cond_0
const/4 v0, 0x0
goto :goto_0
.end method
.method public n()V
.locals 0
.prologue
.line 217
return-void
.end method
.method public onBackPressed()V
.locals 2
.prologue
.line 40
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->h()Landroid/support/v4/app/Fragment;
move-result-object v0
instance-of v0, v0, Lcom/mventus/selfcare/safaricom/ui/fragment/bo;
if-eqz v0, :cond_0
.line 41
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->finish()V
.line 42
:cond_0
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getSupportFragmentManager()Landroid/support/v4/app/s;
move-result-object v0
invoke-virtual {v0}, Landroid/support/v4/app/s;->e()I
move-result v0
const/4 v1, 0x1
if-le v0, v1, :cond_1
.line 43
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->getSupportFragmentManager()Landroid/support/v4/app/s;
move-result-object v0
invoke-virtual {v0}, Landroid/support/v4/app/s;->c()V
.line 46
:goto_0
return-void
.line 45
:cond_1
invoke-virtual {p0}, Lcom/mventus/selfcare/safaricom/activity/SplashScreenActivity;->finish()V
goto :goto_0
.end method
.method public onClick(Landroid/view/View;)V
.locals 0
.param p1, "view" # Landroid/view/View;
.prologue
.line 51
return-void
.end method