arguslab / Argus-SAF

Argus static analysis framework
Apache License 2.0
183 stars 49 forks source link

loadApk failed, key not found #1

Closed yurushao closed 8 years ago

yurushao commented 8 years ago
java.util.NoSuchElementException: key not found: com.carlocriniti.android.permission_explorer.ApplicationDetail
    at scala.collection.MapLike$class.default(MapLike.scala:228)
    at scala.collection.AbstractMap.default(Map.scala:59)
    at scala.collection.MapLike$class.apply(MapLike.scala:141)
    at scala.collection.AbstractMap.apply(Map.scala:59)
    at org.argus.jawa.core.JawaResolver$class.resolveMethodBody(JawaResolver.scala:70)
    at org.argus.jawa.core.Global.resolveMethodBody(Global.scala:20)
    at org.argus.jawa.core.JawaMethod.getBody(JawaMethod.scala:202)
    at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.org$argus$jawa$alir$reachability$SignatureBasedCallGraph$$sbcg(SignatureBasedCallGraph.scala:54)
    at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$$anonfun$build$1.apply(SignatureBasedCallGraph.scala:39)
    at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$$anonfun$build$1.apply(SignatureBasedCallGraph.scala:34)
    at scala.collection.immutable.Set$Set4.foreach(Set.scala:200)
    at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.build(SignatureBasedCallGraph.scala:33)
    at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.apply(SignatureBasedCallGraph.scala:26)
    at org.argus.jawa.alir.reachability.ReachabilityAnalysis$.getReachableMethodsBySBCG(ReachabilityAnalysis.scala:36)
    at org.argus.amandroid.core.appInfo.ReachableInfoCollector$$anonfun$init$1.apply(ReachableInfoCollector.scala:71)
    at org.argus.amandroid.core.appInfo.ReachableInfoCollector$$anonfun$init$1.apply(ReachableInfoCollector.scala:69)
    at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:316)
    at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972)
    at org.argus.amandroid.core.appInfo.ReachableInfoCollector.init(ReachableInfoCollector.scala:68)
    at org.argus.amandroid.core.appInfo.AppInfoCollector$.reachabilityAnalysis(AppInfoCollector.scala:125)
    at org.argus.amandroid.core.appInfo.AppInfoCollector$.collectInfo(AppInfoCollector.scala:185)
    at org.argus.amandroid.alir.componentSummary.ApkYard.loadApk(ApkYard.scala:47)
fgwei commented 8 years ago

Could you send me the app to test?

yurushao commented 8 years ago

Sorry I cannot attach files larger than 25MB. The APK can be downloaded here: https://apkpure.com/p/com.pinterest

I tried both master and develop branches of Argus-SAF, with the following command line options:

a /path/to/input/Pinterest_v5.18.0_apkpure.com.apk

.errorlog is pasted below:

An error occured on 20160710-170754
java.util.NoSuchElementException: key not found:
com.pinterest.activity.signin.TwitterAuthActivity
   at scala.collection.MapLike$class.default(MapLike.scala:228)
   at scala.collection.AbstractMap.default(Map.scala:59)
   at scala.collection.MapLike$class.apply(MapLike.scala:141)
   at scala.collection.AbstractMap.apply(Map.scala:59)
   at org.argus.jawa.core.JawaResolver$class.resolveMethodBody(JawaResolver.scala:70)
   at org.argus.jawa.core.Global.resolveMethodBody(Global.scala:20)
   at org.argus.jawa.core.JawaMethod.getBody(JawaMethod.scala:202)
   at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.org$argus$jawa$alir$reachability$SignatureBasedCallGraph$$sbcg(SignatureBasedCallGraph.scala:54)
   at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$$anonfun$build$1.apply(SignatureBasedCallGraph.scala:39)
   at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$$anonfun$build$1.apply(SignatureBasedCallGraph.scala:34)
   at scala.collection.immutable.Set$Set4.foreach(Set.scala:200)
   at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.build(SignatureBasedCallGraph.scala:33)
   at org.argus.jawa.alir.reachability.SignatureBasedCallGraph$.apply(SignatureBasedCallGraph.scala:26)
   at org.argus.jawa.alir.reachability.ReachabilityAnalysis$.getReachableMethodsBySBCG(ReachabilityAnalysis.scala:36)
   at org.argus.amandroid.core.appInfo.ReachableInfoCollector$$anonfun$init$1.apply(ReachableInfoCollector.scala:71)
   at org.argus.amandroid.core.appInfo.ReachableInfoCollector$$anonfun$init$1.apply(ReachableInfoCollector.scala:69)
   at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:316)
   at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972)
   at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972)
   at org.argus.amandroid.core.appInfo.ReachableInfoCollector.init(ReachableInfoCollector.scala:68)
   at org.argus.amandroid.core.appInfo.AppInfoCollector$.reachabilityAnalysis(AppInfoCollector.scala:125)
   at org.argus.amandroid.core.appInfo.AppInfoCollector$.collectInfo(AppInfoCollector.scala:185)
   at org.argus.amandroid.alir.componentSummary.ApkYard.loadApk(ApkYard.scala:47)
   at org.argus.saf.cli.ApiMisuse$$anonfun$apiMisuse$1.apply(ApiMisuse.scala:73)
   at org.argus.saf.cli.ApiMisuse$$anonfun$apiMisuse$1.apply(ApiMisuse.scala:62)
   at scala.collection.immutable.Set$Set1.foreach(Set.scala:94)
   at org.argus.saf.cli.ApiMisuse$.apiMisuse(ApiMisuse.scala:61)
   at org.argus.saf.cli.ApiMisuse$.apply(ApiMisuse.scala:50)
   at org.argus.saf.Main$.org$argus$saf$Main$$cmdApiMisuse(Main.scala:260)
   at org.argus.saf.Main$$anonfun$1.apply(Main.scala:151)
   at org.argus.saf.Main$$anonfun$1.apply(Main.scala:141)
   at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
   at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
   at org.argus.saf.Main$.delayedEndpoint$org$argus$saf$Main$1(Main.scala:141)
   at org.argus.saf.Main$delayedInit$body.apply(Main.scala:20)
   at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
   at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
   at scala.App$$anonfun$main$1.apply(App.scala:76)
   at scala.App$$anonfun$main$1.apply(App.scala:76)
   at scala.collection.immutable.List.foreach(List.scala:381)
   at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
   at scala.App$class.main(App.scala:76)
   at org.argus.saf.Main$.main(Main.scala:20)
   at org.argus.saf.Main.main(Main.scala)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:497)
   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
yurushao commented 8 years ago

Any update?

fgwei commented 8 years ago

Sorry, I got very busy last few days. I just fixed this issue, and you can have a try.