{"action":"opened","issue":{"url":"https://api.github.com/repos/androguard/androguard/issues/162","labels_url":"https://api.github.com/repos/androguard/androguard/issues/162/labels{/name}","comments_url":"https://api.github.com/repos/androguard/androguard/issues/162/comments","events_url":"https://api.github.com/repos/androguard/androguard/issues/162/events","html_url":"https://github.com/androguard/androguard/issues/162","id":124166710,"number":162,"title":"androguard.core.bytecodes.dvm.EncodedMethod.show_xref() don't return all the Crossreference methods ","user":{"login":"tuomao","id":4536691,"avatar_url":"https://avatars.githubusercontent.com/u/4536691?v=3","gravatar_id":"","url":"https://api.github.com/users/tuomao","html_url":"https://github.com/tuomao","followers_url":"https://api.github.com/users/tuomao/followers","following_url":"https://api.github.com/users/tuomao/following{/other_user}","gists_url":"https://api.github.com/users/tuomao/gists{/gist_id}","starred_url":"https://api.github.com/users/tuomao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tuomao/subscriptions","organizations_url":"https://api.github.com/users/tuomao/orgs","repos_url":"https://api.github.com/users/tuomao/repos","events_url":"https://api.github.com/users/tuomao/events{/privacy}","received_events_url":"https://api.github.com/users/tuomao/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-29T05:48:12Z","updated_at":"2015-12-29T05:48:12Z","closed_at":null,"body":"I have a malware apk file. when I analisys the method below\r\n```\r\ndm(Context paramContext)\r\n  {\r\n    for (;;)\r\n    {\r\n      try\r\n      {\r\n        localObject = (TelephonyManager)paramContext.getSystemService(\"phone\");\r\n        if (localObject == null) {}\r\n      }\r\n      catch (Exception localException3)\r\n      {\r\n        Object localObject;\r\n        String str;\r\n        label227:\r\n        label242:\r\n        label257:\r\n        label362:\r\n        label379:\r\n        label386:\r\n        label391:\r\n        continue;\r\n      }\r\n      for (;;)\r\n      {\r\n        try\r\n        {\r\n          str = ((TelephonyManager)localObject).getSubscriberId();\r\n          if (str != null) {\r\n            this.b = str.trim();\r\n          }\r\n        }\r\n        catch (Exception localException5)\r\n        {\r\n          break;\r\n          j = 0;\r\n          break label257;\r\n          i = 0;\r\n          break label242;\r\n        }\r\n        try\r\n        {\r\n          localObject = ((TelephonyManager)localObject).getDeviceId();\r\n          if (localObject != null)\r\n          {\r\n            this.a = ((String)localObject);\r\n            if (this.a != null)\r\n            {\r\n              this.a = this.a.trim();\r\n              if (this.a.indexOf(\" \") >= 0) {\r\n                this.a.replace(\" \", \"\");\r\n              }\r\n              if (this.a.indexOf(\"-\") >= 0) {\r\n                this.a = this.a.replace(\"-\", \"\");\r\n              }\r\n              if (this.a.indexOf(\"\\n\") >= 0) {\r\n                this.a = this.a.replace(\"\\n\", \"\");\r\n              }\r\n              i = this.a.indexOf(\"MEID:\");\r\n              if (i >= 0) {\r\n                this.a = this.a.substring(\"MEID:\".length() + i);\r\n              }\r\n              this.a = this.a.trim();\r\n            }\r\n          }\r\n        }\r\n        catch (Exception localException4)\r\n        {\r\n          break label227;\r\n        }\r\n      }\r\n    }\r\n    if (this.a == null)\r\n    {\r\n      this.a = \"\";\r\n      i = 1;\r\n      if (this.b != null) {\r\n        break label362;\r\n      }\r\n      this.b = \"\";\r\n      j = 1;\r\n      if ((i == 0) || (j == 0)) {\r\n        break label379;\r\n      }\r\n    }\r\n    for (;;)\r\n    {\r\n      try\r\n      {\r\n        this.c = b(paramContext);\r\n        i = this.c.length();\r\n        if (i == 0)\r\n        {\r\n          i = 1;\r\n          if (i == 0) {\r\n            break label386;\r\n          }\r\n        }\r\n      }\r\n      catch (Exception localException1) {}\r\n      try\r\n      {\r\n        this.d = c(paramContext);\r\n        i = this.d.length();\r\n        if (i != 0) {\r\n          break label386;\r\n        }\r\n        i = 1;\r\n        if (i == 0) {\r\n          break label391;\r\n        }\r\n        this.f = al.c(a(paramContext).substring(7, 25));\r\n        this.g = g();\r\n        return;\r\n      }\r\n      catch (Exception localException2) {}\r\n      if (this.a.length() != 0) {\r\n        break label475;\r\n      }\r\n      i = 1;\r\n      break;\r\n      if (this.b.length() != 0) {\r\n        break label470;\r\n      }\r\n      j = 1;\r\n      break label257;\r\n      i = 0;\r\n      continue;\r\n      i = 0;\r\n      continue;\r\n      this.f = al.c(al.b(this.a + this.b + this.c + this.d + e).substring(7, 25));\r\n    }\r\n  }\r\n```\r\nfrom the decompilation code, we can see  the method call getDeviceId(),getSubscriberId() and so on \r\ndangerous methods .\r\nhowever,when I use androguard.core.bytecodes.dvm.EncodedMethod.show_xref() to get dm(Context paramContext) Crossreference methods .it returns\r\n\r\n```\r\nIn [37]: m.show_xref()\r\n########## XREF\r\nF: Lnet/youmi/android/af; a (Landroid/content/Context;)Lnet/youmi/android/dm; c\r\nT: Lnet/youmi/android/dm; a (Landroid/content/Context;)Ljava/lang/String; 1b4\r\nT: Lnet/youmi/android/dm; b (Landroid/content/Context;)Ljava/lang/String; 170\r\nT: Lnet/youmi/android/dm; c (Landroid/content/Context;)Ljava/lang/String; 192\r\nT: Lnet/youmi/android/dm; g ()Z 1d0\r\nT: Lnet/youmi/android/al; c (Ljava/lang/String;)Ljava/lang/String; 1c4 270\r\nT: Lnet/youmi/android/al; b (Ljava/lang/String;)Ljava/lang/String; 260\r\n####################\r\n```\r\nobversely,it only return part of the crossrefrence methods.\r\nso,is there any api can help me to get all the function called by one function?"}}