Information Technology Reference
In-Depth Information
1 public void sendSms(android.view.View)
2 {
3
de.ecspride.RV2013 $r0;
4
android.view.View $r1;
5
java.lang.String $r2, $r3;
6
android.widget.EditText $r4;
7
int $i0;
8
java.io.PrintStream $r5;
9
android.telephony.SmsManager $r6;
10
android.text.Editable $r7;
11
12
$r0 := @this: de.ecspride.RV2013;
13
$r1 := @parameter0: android.view.View;
14
staticinvoke <android.util.Log: int
i(java.lang.String,java.lang.String)>( "INFO" , "in sendSms" );
15
$r1 = virtualinvoke $r0.<de.ecspride.RV2013: android.view.View
findViewById( int )>(2131165184);
16
$r4 = (android.widget.EditText) $r1;
17
$r0.<de.ecspride.RV2013: android.widget.EditText phoneNr> = $r4;
18
$r1 = virtualinvoke $r0.<de.ecspride.RV2013: android.view.View
findViewById( int )>(2131165187);
19
$r4 = (android.widget.EditText) $r1;
20
$r0.<de.ecspride.RV2013: android.widget.EditText message> = $r4;
21
$r5 = <java.lang.System: java.io.PrintStream out>;
22
virtualinvoke $r5.<java.io.PrintStream: void
println(java.lang.String)>( "in sendSms" );
23
$r6 = $r0.<de.ecspride.RV2013: android.telephony.SmsManager
smsManager>;
24
$r4 = $r0.<de.ecspride.RV2013: android.widget.EditText phoneNr>;
25
$r7 = virtualinvoke $r4.<android.widget.EditText: android.text.Editable
getText()>();
26
$r3 = interfaceinvoke $r7.<android.text.Editable: java.lang.String
toString()>();
27
$r4 = $r0.<de.ecspride.RV2013: android.widget.EditText message>;
28
$r7 = virtualinvoke $r4.<android.widget.EditText: android.text.Editable
getText()>();
29
$r2 = interfaceinvoke $r7.<android.text.Editable: java.lang.String
toString()>();
30
virtualinvoke $r6.<android.telephony.SmsManager: void
sendTextMessage(java.lang.String,java.lang.String,java.lang.String,
android.app.PendingIntent ,android.app.PendingIntent)>($r3,
null , $r2, null , null );
31
return ;
32 }
Listing 1.9. Jimple code for sending an SMS message
Method bodies are commonly analyzed by iterating over the units (i.e., state-
ments) they comprise. For program rewriting, the chain of units is patched by
removing existing units, inserting new units at the desired positions, or changing
the expressions within existing units. All of these changes will be explained in
the remainder of this paper.
5.2 Soot Options
Soot provides a lot of different command-line options. An online tutorial [26]
gives a good overview of the different kinds of options available. The most im-
portant options for instrumenting Android applications are the following:
-cp pathlist : The classpath to be used when loading classes into Soot.
Not to be confused with the classpath used by the JVM.
 
Search WWH ::




Custom Search