Android APK - 应用程序如何连接到没有DNS查询的服务器

时间:2015-10-29 08:25:40

标签: android dns apk reverse-engineering

我想了解Play商店中的应用程序(大多数)如何在不执行显式DNS查询的情况下连接到其服务器。我下载了APK文件并对代码进行了反向设计,但我找不到任何IP。可能是IP通过一些混淆隐藏在代码中,比如.so文件等。但是我不清楚的是,这些IP是多年生的并且永无止境,所以硬编码的可能性非常小,因为每天都是如此我尝试使用相同的手机启动相同版本的应用程序,然后收集.pcap文件,我看到应用程序正在与不同的服务器通信。据我所知,这可能是某种云服务器,其中子网范围内的IP将是巨大的,但同样,IP来自不同的云服务器。

那么应用程序如何在没有软件更新的情况下每天了解这些新IP?

1 个答案:

答案 0 :(得分:1)

首次查找后,可以在本地缓存域名的IP地址。

在设备重启时刷新DNS缓存。但是,您分析的应用程序可能会在设备启动后立即启动,这使您很难监控DNS查找的网络流量。

我建议配置连接以使用您控制并可以监控的DNS服务器。可能更容易删除DNS服务器,使查找失败并且永远不会被缓存。这样,当您运行应用程序时,您应该看到查找。

您应该对IP地址进行反向DNS查找,以查看与其关联的域,然后为这些域grep代码和应用程​​序资源。

如果以前的建议没有帮助,我还建议搜索与网络相关的API调用,并分析该区域的代码,以查找包含主机名的文字。

应用程序还可能使用一个或多个硬编码的IP地址来获取其他地址。这可以解释为什么IP地址列表似乎总是会发生变化。