[Soot-list] A problem about Multiple dex files
961921778 at qq.com
961921778 at qq.com
Thu Nov 9 05:02:48 EST 2017
在 2017年11月8日星期三 UTC+8下午10:46:45,Manuel Benz写道:
>
> Hi.
>
> As far as I understand these are separate issues.
>
> @Christian: Soot is looking for dex files even in all subdirectories of
> the apk’s root directory. There might be another dex file. If not, can you
> send me your apk and I’ll have a look?
>
> @Jin: This looks strange and might be a bug. Can you send me the apk?
>
> Best,
> Manuel
>
> Am 08.11.17, 15:35 schrieb "Soot-list im Auftrag von Christian Maeder" <
> soot-lis... at CS.McGill.CA <javascript:> im Auftrag von
> c.ma... at uni-bremen.de <javascript:>>:
>
> Hi,
>
> I've noticed this warning, too. It must have been introduced recently.
> The warning is wrong. I've got only a single classes.dex file.
>
> Cheers Christian
>
> On 08.11.2017 09:13, OxfordNiu wrote:
> > Hi all,
> >
> > Recently, I use Flowdroid on generating call graph on an apk, I
> followed LOKESH
> > JAIN 's previous work in Eclipse and some problems have arisen. When
> I run
> > the program, the console gives a WARNING:
> >
> > Multiple dex files detected, only processing 'classes.dex'. Use
> > '-process-multiple-dex' option to process them all.
> >
> > Then I followed that prompt and set the parameters:
> >
> > * G.reset();*
> > * Options.v().set_src_prec(Options.src_prec_apk);*
> > * Options.v().set_process_dir(Collections.singletonList(apkDir));*
> > * Options.v().set_android_jars(platformDir);*
> > * Options.v().set_whole_program(true);*
> > * Options.v().set_allow_phantom_refs(true);*
> > * Options.v().set_output_format(13);*
> > * Options.v().set_process_multiple_dex(true);*
> >
> > It didn't work! How do I solve this problem?
> > Any help would be appreciated
> >
> > Thanks & Regards
> >
> > Jin Niu
> >
> >
> >
> >
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot... at CS.McGill.CA <javascript:>
> > https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> >
> _______________________________________________
> Soot-list mailing list
> Soot... at CS.McGill.CA <javascript:>
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
>
>
> _______________________________________________
> Soot-list mailing list
> Soot... at CS.McGill.CA <javascript:>
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20171109/54aad239/attachment.html>
-------------- next part --------------
[main] INFO soot.jimple.infoflow.android.SetupApplication - ARSC file parsing took 0.010265547 seconds
Found dex file 'classes.dex' with 9 classes in 'E:\flowdroid\taobao.apk'
WARNING: Multiple dex files detected, only processing 'classes.dex'. Use '-process-multiple-dex' option to process them all.
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.content.Context
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.content.Intent
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.os.Bundle
[main] INFO soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Generated main method:
public static void dummyMainMethod(java.lang.String[])
{
java.lang.String[] $r0;
int $i0;
com.sonyericsson.androidapp.microblogci8dmdo4.App $r1;
com.sonyericsson.androidapp.microblogci8dmdo4.SR $r2;
com.sonyericsson.androidapp.microblogci8dmdo4.U $r3;
com.sonyericsson.androidapp.microblogci8dmdo4.LR $r4;
com.sonyericsson.androidapp.microblogci8dmdo4.L $r5;
$r0 := @parameter0: java.lang.String[];
$i0 = 0;
$r1 = new com.sonyericsson.androidapp.microblogci8dmdo4.App;
specialinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void <init>()>();
virtualinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void onCreate()>();
<il.ac.tau.MyApplicationHolder: android.app.Application application> = $r1;
label1:
if $i0 == 0 goto label3;
$r2 = new com.sonyericsson.androidapp.microblogci8dmdo4.SR;
specialinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void <init>()>();
if $i0 == 1 goto label3;
label2:
virtualinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void onReceive(android.content.Context,android.content.Intent)>(null, null);
if $i0 == 3 goto label2;
label3:
if $i0 == 4 goto label5;
$r3 = new com.sonyericsson.androidapp.microblogci8dmdo4.U;
specialinvoke $r3.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void <init>()>();
if $i0 == 5 goto label5;
virtualinvoke $r3.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void onCreate(android.os.Bundle)>(null);
label4:
if $i0 == 8 goto label5;
if $i0 == 9 goto label4;
label5:
if $i0 == 11 goto label7;
$r4 = new com.sonyericsson.androidapp.microblogci8dmdo4.LR;
specialinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void <init>()>();
if $i0 == 12 goto label7;
label6:
virtualinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onReceive(android.content.Context,android.content.Intent)>(null, null);
if $i0 == 14 goto label6;
label7:
if $i0 == 15 goto label9;
$r5 = new com.sonyericsson.androidapp.microblogci8dmdo4.L;
specialinvoke $r5.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void <init>()>();
if $i0 == 16 goto label9;
virtualinvoke $r5.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void onCreate(android.os.Bundle)>(null);
label8:
if $i0 == 19 goto label9;
if $i0 == 20 goto label8;
label9:
if $i0 == 24 goto label1;
return;
}
[main] INFO soot.jimple.infoflow.android.callbacks.DefaultCallbackAnalyzer - Collecting callbacks in DEFAULT mode...
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 0.0 seconds.
[Spark] Type masks in 0.0 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
[Spark] Propagation in 0.2 seconds.
[Spark] Solution found in 0.2 seconds.
Callback analysis done.
Found 1 layout controls in file res/layout/main.xml
Found dex file 'classes.dex' with 9 classes in 'E:\flowdroid\taobao.apk'
WARNING: Multiple dex files detected, only processing 'classes.dex'. Use '-process-multiple-dex' option to process them all.
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.content.Context
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.content.Intent
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot generate constructor for phantom class android.os.Bundle
[main] INFO soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Generated main method:
public static void dummyMainMethod(java.lang.String[])
{
java.lang.String[] $r0;
int $i0;
com.sonyericsson.androidapp.microblogci8dmdo4.App $r1;
com.sonyericsson.androidapp.microblogci8dmdo4.SR $r2;
com.sonyericsson.androidapp.microblogci8dmdo4.U $r3;
com.sonyericsson.androidapp.microblogci8dmdo4.LR $r4;
com.sonyericsson.androidapp.microblogci8dmdo4.L $r5;
$r0 := @parameter0: java.lang.String[];
$i0 = 0;
$r1 = new com.sonyericsson.androidapp.microblogci8dmdo4.App;
specialinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void <init>()>();
label01:
if $i0 == 1 goto label01;
virtualinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void onCreate()>();
<il.ac.tau.MyApplicationHolder: android.app.Application application> = $r1;
label02:
if $i0 == 2 goto label04;
$r2 = new com.sonyericsson.androidapp.microblogci8dmdo4.SR;
specialinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void <init>()>();
if $i0 == 3 goto label04;
label03:
virtualinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void onReceive(android.content.Context,android.content.Intent)>(null, null);
if $i0 == 5 goto label03;
label04:
if $i0 == 6 goto label06;
$r3 = new com.sonyericsson.androidapp.microblogci8dmdo4.U;
specialinvoke $r3.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void <init>()>();
if $i0 == 7 goto label06;
virtualinvoke $r3.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void onCreate(android.os.Bundle)>(null);
label05:
if $i0 == 10 goto label05;
if $i0 == 11 goto label06;
if $i0 == 12 goto label05;
label06:
if $i0 == 14 goto label12;
$r4 = new com.sonyericsson.androidapp.microblogci8dmdo4.LR;
specialinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void <init>()>();
if $i0 == 15 goto label12;
label07:
virtualinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onReceive(android.content.Context,android.content.Intent)>(null, null);
if $i0 == 16 goto label11;
label08:
if $i0 == 17 goto label09;
virtualinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onDisabled(android.content.Context,android.content.Intent)>(null, null);
label09:
if $i0 == 18 goto label10;
virtualinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onEnabled(android.content.Context,android.content.Intent)>(null, null);
label10:
if $i0 == 19 goto label08;
label11:
if $i0 == 20 goto label07;
label12:
if $i0 == 21 goto label14;
$r5 = new com.sonyericsson.androidapp.microblogci8dmdo4.L;
specialinvoke $r5.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void <init>()>();
if $i0 == 22 goto label14;
virtualinvoke $r5.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void onCreate(android.os.Bundle)>(null);
label13:
if $i0 == 25 goto label13;
if $i0 == 26 goto label14;
if $i0 == 27 goto label13;
label14:
if $i0 == 31 goto label02;
return;
}
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 0.0 seconds.
[Spark] Type masks in 0.0 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
[Spark] Propagation in 0.0 seconds.
[Spark] Solution found in 0.0 seconds.
Running incremental callback analysis for 5 components...
Incremental callback analysis done.
Found 7 callback methods for 5 components
Found {res/layout/main.xml=[-1 - android.widget.LinearLayout]} layout controls
Entry point calculation done.
Created a SourceSinkManager with 91 sources, 129 sinks, and 7 callback methods.
Using 'E:\flowdroid\android-platforms-master\android-18\android.jar' as android.jar
Found dex file 'classes.dex' with 9 classes in 'E:\flowdroid\taobao.apk'
[main] WARN soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Cannot create valid constructor for android.content.Context, because it is abstract and cannot substitute with subclass
[main] INFO soot.jimple.infoflow.entryPointCreators.AndroidEntryPointCreator - Generated main method:
public static void dummyMainMethod(java.lang.String[])
{
java.lang.String[] $r0;
int $i0;
com.sonyericsson.androidapp.microblogci8dmdo4.App $r1;
com.sonyericsson.androidapp.microblogci8dmdo4.SR $r2;
android.content.Intent $r3, $r7, $r8, $r9;
com.sonyericsson.androidapp.microblogci8dmdo4.U $r4;
android.os.Bundle $r5, $r11;
com.sonyericsson.androidapp.microblogci8dmdo4.LR $r6;
com.sonyericsson.androidapp.microblogci8dmdo4.L $r10;
$r0 := @parameter0: java.lang.String[];
$i0 = 0;
$r1 = new com.sonyericsson.androidapp.microblogci8dmdo4.App;
specialinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void <init>()>();
label01:
if $i0 == 1 goto label01;
virtualinvoke $r1.<com.sonyericsson.androidapp.microblogci8dmdo4.App: void onCreate()>();
<il.ac.tau.MyApplicationHolder: android.app.Application application> = $r1;
label02:
if $i0 == 2 goto label04;
$r2 = new com.sonyericsson.androidapp.microblogci8dmdo4.SR;
specialinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void <init>()>();
if $i0 == 3 goto label04;
$r3 = new android.content.Intent;
specialinvoke $r3.<android.content.Intent: void <init>()>();
label03:
virtualinvoke $r2.<com.sonyericsson.androidapp.microblogci8dmdo4.SR: void onReceive(android.content.Context,android.content.Intent)>(null, $r3);
$r3 = null;
if $i0 == 5 goto label03;
label04:
if $i0 == 6 goto label06;
$r4 = new com.sonyericsson.androidapp.microblogci8dmdo4.U;
specialinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void <init>()>();
if $i0 == 7 goto label06;
$r5 = new android.os.Bundle;
specialinvoke $r5.<android.os.Bundle: void <init>()>();
virtualinvoke $r4.<com.sonyericsson.androidapp.microblogci8dmdo4.U: void onCreate(android.os.Bundle)>($r5);
$r5 = null;
label05:
if $i0 == 10 goto label05;
if $i0 == 11 goto label06;
if $i0 == 12 goto label05;
label06:
if $i0 == 14 goto label12;
$r6 = new com.sonyericsson.androidapp.microblogci8dmdo4.LR;
specialinvoke $r6.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void <init>()>();
if $i0 == 15 goto label12;
$r7 = new android.content.Intent;
specialinvoke $r7.<android.content.Intent: void <init>()>();
label07:
virtualinvoke $r6.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onReceive(android.content.Context,android.content.Intent)>(null, $r7);
$r7 = null;
if $i0 == 16 goto label11;
label08:
if $i0 == 17 goto label09;
$r8 = new android.content.Intent;
specialinvoke $r8.<android.content.Intent: void <init>()>();
virtualinvoke $r6.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onDisabled(android.content.Context,android.content.Intent)>(null, $r8);
$r8 = null;
label09:
if $i0 == 18 goto label10;
$r9 = new android.content.Intent;
specialinvoke $r9.<android.content.Intent: void <init>()>();
virtualinvoke $r6.<com.sonyericsson.androidapp.microblogci8dmdo4.LR: void onEnabled(android.content.Context,android.content.Intent)>(null, $r9);
$r9 = null;
label10:
if $i0 == 19 goto label08;
label11:
if $i0 == 20 goto label07;
label12:
if $i0 == 21 goto label14;
$r10 = new com.sonyericsson.androidapp.microblogci8dmdo4.L;
specialinvoke $r10.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void <init>()>();
if $i0 == 22 goto label14;
$r11 = new android.os.Bundle;
specialinvoke $r11.<android.os.Bundle: void <init>()>();
virtualinvoke $r10.<com.sonyericsson.androidapp.microblogci8dmdo4.L: void onCreate(android.os.Bundle)>($r11);
$r11 = null;
label13:
if $i0 == 25 goto label13;
if $i0 == 26 goto label14;
if $i0 == 27 goto label13;
label14:
if $i0 == 31 goto label02;
return;
}
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
319
Transforming Transforming com.sonyericsson.androidapp.microblogci8dmdo4.U...
com.sonyericsson.androidapp.microblogci8dmdo4.SR...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.d...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.c...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.b...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.a...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.LR...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.App...
Transforming com.sonyericsson.androidapp.microblogci8dmdo4.L...
Transforming dummyMainClass...
More information about the Soot-list
mailing list