siis / ic3

IC3: Inter-Component Communication Analysis in Android
http://siis.cse.psu.edu/ic3/
Apache License 2.0
36 stars 21 forks source link

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 #37

Open Sandm-HY opened 1 year ago

Sandm-HY commented 1 year ago

Hello, I am running ic3 with the following error.Could you please tell me how to solve it?

java -jar ic3-0.2.0-full.jar -input ../ydjt/retargeted/ydjtdx -apkormanifest ../ydjtdx.apk -cp android.jar -protobuf ../ydjt

Part of the output:

 label1579:
    if $i0 == 1955 goto label1576;

 label1580:
    virtualinvoke $r2422.<com.orient.orframework.android.BaseFragmentActivity: void onPause()>();

    if $i0 == 1956 goto label1575;

    if $i0 == 1957 goto label1581;

    if $i0 == 1958 goto label1575;

 label1581:
    if $i0 == 1960 goto label1592;

    $r2426 = new com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity;

    specialinvoke $r2426.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity: void <init>()>();

    if $i0 == 1961 goto label1592;

    $r2427 = new android.os.Bundle;

    specialinvoke $r2427.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2426.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity: void onCreate(android.os.Bundle)>($r2427);

    $r2427 = null;

 label1582:
    virtualinvoke $r2426.<com.orient.orframework.android.BaseActivity: void onResume()>();

    if $i0 == 1962 goto label1590;

 label1583:
    $r2428 = new com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo;

    specialinvoke $r2428.<com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,long,long)>("", "", "", "", 0L, 0L);

    $r2429 = new com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$1;

    specialinvoke $r2429.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$1: void <init>(com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity,com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo)>($r2426, $r2428);

    if $i0 == 1963 goto label1584;

    $r2430 = new android.view.View;

    specialinvoke $r2430.<android.view.View: void <init>(android.content.Context)>($r2426);

    virtualinvoke $r2429.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$1: void onClick(android.view.View)>($r2430);

    $r2430 = null;

 label1584:
    if $i0 == 1964 goto label1585;

    $r2431 = new android.view.KeyEvent;

    specialinvoke $r2431.<android.view.KeyEvent: void <init>(int,int)>(0, 0);

    $z118 = virtualinvoke $r2426.<android.app.Activity: boolean onKeyUp(int,android.view.KeyEvent)>(0, $r2431);

    $r2431 = null;

 label1585:
    if $i0 == 1965 goto label1586;

    virtualinvoke $r2426.<android.app.Activity: void setContentView(int)>(0);

 label1586:
    if $i0 == 1966 goto label1587;

    $r2432 = new android.view.View;

    specialinvoke $r2432.<android.view.View: void <init>(android.content.Context)>($r2426);

    virtualinvoke $r2426.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity: void onClick(android.view.View)>($r2432);

    $r2432 = null;

 label1587:
    $r2433 = new com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo;

    specialinvoke $r2433.<com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,long,long)>("", "", "", "", 0L, 0L);

    $r2434 = new com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$3;

    specialinvoke $r2434.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$3: void <init>(com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity,com.orient.mobileuniversity.scientific.breakpoint.DownloadInfo)>($r2426, $r2433);

    if $i0 == 1967 goto label1588;

    $r2435 = new android.view.View;

    specialinvoke $r2435.<android.view.View: void <init>(android.content.Context)>($r2426);

    virtualinvoke $r2434.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$3: void onClick(android.view.View)>($r2435);

    $r2435 = null;

 label1588:
    $r2436 = new com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$2;

    specialinvoke $r2436.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$2: void <init>(com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity)>($r2426);

    if $i0 == 1968 goto label1589;

    virtualinvoke $r2436.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity$2: void onCheckedChanged(android.widget.CompoundButton,boolean)>(null, false);

 label1589:
    if $i0 == 1969 goto label1583;

 label1590:
    virtualinvoke $r2426.<com.orient.orframework.android.BaseActivity: void onPause()>();

    if $i0 == 1970 goto label1582;

    if $i0 == 1971 goto label1591;

    if $i0 == 1972 goto label1582;

 label1591:
    virtualinvoke $r2426.<com.orient.mobileuniversity.scientific.AnnouncementDownloadActivity: void onDestroy()>();

 label1592:
    if $i0 == 1974 goto label1606;

    $r2437 = new com.orient.mobileuniversity.scientific.FundListActivity;

    specialinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void <init>()>();

    if $i0 == 1975 goto label1606;

    $r2438 = new android.os.Bundle;

    specialinvoke $r2438.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void onCreate(android.os.Bundle)>($r2438);

    $r2438 = null;

 label1593:
    $r2439 = new android.os.Bundle;

    specialinvoke $r2439.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2437.<com.orient.orframework.widget.SlidingMenu.app.SlidingActivity: void onPostCreate(android.os.Bundle)>($r2439);

    $r2439 = null;

 label1594:
    virtualinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void onResume()>();

    if $i0 == 1976 goto label1605;

 label1595:
    if $i0 == 1977 goto label1596;

    virtualinvoke $r2437.<com.orient.orframework.widget.SlidingMenu.app.SlidingActivity: void setContentView(int)>(0);

 label1596:
    if $i0 == 1978 goto label1597;

    $r2440 = new android.view.View;

    specialinvoke $r2440.<android.view.View: void <init>(android.content.Context)>($r2437);

    virtualinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void onItemClick(android.widget.AdapterView,android.view.View,int,long)>(null, $r2440, 0, 0L);

    $r2440 = null;

 label1597:
    if $i0 == 1979 goto label1598;

    $r2441 = new android.view.View;

    specialinvoke $r2441.<android.view.View: void <init>(android.content.Context)>($r2437);

    virtualinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void onClick(android.view.View)>($r2441);

    $r2441 = null;

 label1598:
    $r2442 = new com.orient.mobileuniversity.scientific.FundListActivity$2;

    specialinvoke $r2442.<com.orient.mobileuniversity.scientific.FundListActivity$2: void <init>(com.orient.mobileuniversity.scientific.FundListActivity,java.util.ArrayList)>($r2437, null);

    if $i0 == 1980 goto label1599;

    $r2443 = new android.view.View;

    specialinvoke $r2443.<android.view.View: void <init>(android.content.Context)>($r2437);

    virtualinvoke $r2442.<com.orient.mobileuniversity.scientific.FundListActivity$2: void onItemClick(android.widget.AdapterView,android.view.View,int,long)>(null, $r2443, 0, 0L);

    $r2443 = null;

 label1599:
    $r2444 = new com.orient.mobileuniversity.common.widget.SearchOptionDialog;

    specialinvoke $r2444.<com.orient.mobileuniversity.common.widget.SearchOptionDialog: void <init>(android.content.Context)>($r2437);

    if $i0 == 1981 goto label1600;

    $r2445 = new android.view.View;

    specialinvoke $r2445.<android.view.View: void <init>(android.content.Context)>($r2437);

    virtualinvoke $r2444.<com.orient.mobileuniversity.common.widget.SearchOptionDialog: void onClick(android.view.View)>($r2445);

    $r2445 = null;

 label1600:
    $r2446 = new com.umeng.analytics.pro.ap;

    specialinvoke $r2446.<com.umeng.analytics.pro.ap: void <init>(android.app.Activity)>($r2437);

    $r2447 = new com.umeng.analytics.pro.ap$1;

    specialinvoke $r2447.<com.umeng.analytics.pro.ap$1: void <init>(com.umeng.analytics.pro.ap)>($r2446);

    if $i0 == 1982 goto label1601;

    virtualinvoke $r2447.<com.umeng.analytics.pro.ap$1: void onActivityPaused(android.app.Activity)>($r2437);

    $r2437 = null;

 label1601:
    if $i0 == 1983 goto label1602;

    virtualinvoke $r2447.<com.umeng.analytics.pro.ap$1: void onActivityResumed(android.app.Activity)>($r2437);

    $r2437 = null;

 label1602:
    if $i0 == 1984 goto label1603;

    $r2448 = new android.view.KeyEvent;

    specialinvoke $r2448.<android.view.KeyEvent: void <init>(int,int)>(0, 0);

    $z119 = virtualinvoke $r2437.<com.orient.orframework.widget.SlidingMenu.app.SlidingActivity: boolean onKeyUp(int,android.view.KeyEvent)>(0, $r2448);

    $r2448 = null;

 label1603:
    if $i0 == 1985 goto label1604;

    $r2449 = new android.content.res.Configuration;

    specialinvoke $r2449.<android.content.res.Configuration: void <init>()>();

    virtualinvoke $r2437.<android.app.Activity: void onConfigurationChanged(android.content.res.Configuration)>($r2449);

    $r2449 = null;

 label1604:
    if $i0 == 1986 goto label1595;

 label1605:
    virtualinvoke $r2437.<com.orient.mobileuniversity.scientific.FundListActivity: void onPause()>();

    $r2450 = new android.os.Bundle;

    specialinvoke $r2450.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2437.<com.orient.orframework.widget.SlidingMenu.app.SlidingActivity: void onSaveInstanceState(android.os.Bundle)>($r2450);

    $r2450 = null;

    if $i0 == 1987 goto label1594;

    if $i0 == 1988 goto label1606;

    if $i0 == 1989 goto label1593;

 label1606:
    if $i0 == 1991 goto label1613;

    $r2451 = new com.orient.mobileuniversity.finance.FinanceDetailActivity;

    specialinvoke $r2451.<com.orient.mobileuniversity.finance.FinanceDetailActivity: void <init>()>();

    if $i0 == 1992 goto label1613;

    $r2452 = new android.os.Bundle;

    specialinvoke $r2452.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2451.<com.orient.mobileuniversity.finance.FinanceDetailActivity: void onCreate(android.os.Bundle)>($r2452);

    $r2452 = null;

 label1607:
    virtualinvoke $r2451.<com.orient.orframework.android.BaseActivity: void onResume()>();

    if $i0 == 1993 goto label1612;

 label1608:
    if $i0 == 1994 goto label1609;

    $r2453 = new android.view.KeyEvent;

    specialinvoke $r2453.<android.view.KeyEvent: void <init>(int,int)>(0, 0);

    $z120 = virtualinvoke $r2451.<android.app.Activity: boolean onKeyUp(int,android.view.KeyEvent)>(0, $r2453);

    $r2453 = null;

 label1609:
    if $i0 == 1995 goto label1610;

    virtualinvoke $r2451.<android.app.Activity: void setContentView(int)>(0);

 label1610:
    if $i0 == 1996 goto label1611;

    $r2454 = new android.view.View;

    specialinvoke $r2454.<android.view.View: void <init>(android.content.Context)>($r2451);

    virtualinvoke $r2451.<com.orient.mobileuniversity.finance.FinanceDetailActivity: void onClick(android.view.View)>($r2454);

    $r2454 = null;

 label1611:
    if $i0 == 1997 goto label1608;

 label1612:
    virtualinvoke $r2451.<com.orient.orframework.android.BaseActivity: void onPause()>();

    if $i0 == 1998 goto label1607;

    if $i0 == 1999 goto label1613;

    if $i0 == 2000 goto label1607;

 label1613:
    if $i0 == 2002 goto label1620;

    $r2455 = new com.orient.mobileuniversity.setting.RSSSubActivity;

    specialinvoke $r2455.<com.orient.mobileuniversity.setting.RSSSubActivity: void <init>()>();

    if $i0 == 2003 goto label1620;

    $r2456 = new android.os.Bundle;

    specialinvoke $r2456.<android.os.Bundle: void <init>()>();

    virtualinvoke $r2455.<com.orient.mobileuniversity.setting.RSSSubActivity: void onCreate(android.os.Bundle)>($r2456);

    $r2456 = null;

 label1614:
    virtualinvoke $r2455.<com.orient.orframework.android.BaseActivity: void onResume()>();

    if $i0 == 2004 goto label1619;

 label1615:
    if $i0 == 2005 goto label1616;

    virtualinvoke $r2455.<android.app.Activity: void setContentView(int)>(0);

 label1616:
    if $i0 == 2006 goto label1617;

    $r2457 = new android.view.View;

    specialinvoke $r2457.<android.view.View: void <init>(android.content.Context)>($r2455);

    virtualinvoke $r2455.<com.orient.mobileuniversity.setting.RSSSubActivity: void onClick(android.view.View)>($r2457);

    $r2457 = null;

 label1617:
    if $i0 == 2007 goto label1618;

    $r2458 = new android.view.KeyEvent;

    specialinvoke $r2458.<android.view.KeyEvent: void <init>(int,int)>(0, 0);

    $z121 = virtualinvoke $r2455.<android.app.Activity: boolean onKeyUp(int,android.view.KeyEvent)>(0, $r2458);

    $r2458 = null;

 label1618:
    if $i0 == 2008 goto label1615;

 label1619:
    virtualinvoke $r2455.<com.orient.orframework.android.BaseActivity: void onPause()>();

    if $i0 == 2009 goto label1614;

    if $i0 == 2010 goto label1620;

    if $i0 == 2011 goto label1614;

 label1620:
    if $i0 == 2013 goto label0001;

    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 7.7 seconds. [Spark] Solution found in 7.7 seconds. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at soot.jimple.internal.AbstractInvokeExpr.getArg(AbstractInvokeExpr.java:74) at edu.psu.cse.siis.coal.arguments.AliasAdjuster.match_virtualinvoke_StringBuilder_XXX(AliasAdjuster.java:146) at edu.psu.cse.siis.coal.arguments.AliasAdjuster.changeBody(AliasAdjuster.java:183) at edu.psu.cse.siis.coal.arguments.ConstraintCollector.handleMethod(ConstraintCollector.java:127) at edu.psu.cse.siis.coal.arguments.ConstraintCollector.globalCollection(ConstraintCollector.java:172) at edu.psu.cse.siis.coal.arguments.StringValueAnalysis.initialize(StringValueAnalysis.java:50) at edu.psu.cse.siis.coal.PropagationSceneTransformer.internalTransform(PropagationSceneTransformer.java:63) at soot.SceneTransformer.transform(SceneTransformer.java:39) at soot.Transform.apply(Transform.java:90) at soot.ScenePack.internalApply(ScenePack.java:40) at soot.Pack.apply(Pack.java:116) at soot.PackManager.runWholeProgramPacks(PackManager.java:565) at soot.PackManager.runPacksNormally(PackManager.java:457) at soot.PackManager.runPacks(PackManager.java:392) at edu.psu.cse.siis.coal.Analysis.performAnalysis(Analysis.java:68) at edu.psu.cse.siis.ic3.Main.main(Main.java:14)