【问题标题】:Is there a possibility to find out the technology used for creating a mobile application?是否有可能找出用于创建移动应用程序的技术?
【发布时间】:2014-11-30 22:21:05
【问题描述】:
我发现可以通过使用 Wappalyzer、SimilarTech 或 BuiltWith 等服务了解网站是如何构建的(它们检查 HTTP 标头、ping 响应、cookie、cmets 和其他奇特的东西)。现在我想知道:您能找到如何使用类似的技术/服务构建移动应用程序(Android、iOS)吗?我知道代码是编译的,不应该尝试对其进行逆向工程(出于明显的版权原因)......但它可以在不“违反规则”的情况下完成(我的意思是至少发现服务是如何工作的,而不是背后的代码/算法?)
免责声明:这仅出于教育和安全原因。
【问题讨论】:
标签:
android
ios
security
mobile
【解决方案1】:
免责声明:正如您提到的,逆向工程通常是 EULA 不允许的,并且在某些国家/地区可能是非法的。在进入该领域之前,请确保您了解适用的规则。
对于 iOS,您可以使用 iOS Reverse Engineering Toolkit 和 Hopper 之类的东西对二进制文件进行逆向工程。这当然不会产生与实际源代码相同级别的代码,但它可以提供一些关于如何制作应用程序的见解。
如果您有兴趣了解通信的工作原理,可以使用几种方法来监控 iPhone 使用计算机的网络流量。这是使用 RVI 完成的,这有点麻烦。 Apple 上有一个 guide(在页面上搜索 RVI),我发现 this blog 提供了一些详细信息。我只使用过一次,我记得在 Wireshark 中进行设置很痛苦,但没有提供有关如何配置的详细信息,您必须对设置进行一些修改才能使其正确。
对于 Java,有大量关于逆向工程的资源,而且它通常比编译代码容易得多,但是混淆当然会使它变得更难。 JAD 是比较流行的反编译器之一。
【解决方案3】:
对于安卓:
首先您需要找到 APK 文件。有几十个镜像,可以下载.apk(或.apks)文件。
APK 文件是一个存档文件。解压或使用 WinZIP / WinRAR 打开。
查找作为所用语言/IDE 赠品的文件 - 例如。 Kotlin、Xamarin 等