是否有可能找出用于创建移动应用程序的技术?
Posted
技术标签:
【中文标题】是否有可能找出用于创建移动应用程序的技术?【英文标题】: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)吗?我知道代码是编译的,不应该尝试对其进行逆向工程(出于明显的版权原因)......但它可以在不“违反规则”的情况下完成(我的意思是至少发现服务是如何工作的,而不是背后的代码/算法?)
免责声明:这仅出于教育和安全原因。
【问题讨论】:
【参考方案1】:免责声明:正如您提到的,逆向工程通常是 EULA 不允许的,并且在某些国家/地区可能是非法的。在进入该领域之前,请确保您了解适用的规则。
对于 iOS,您可以使用 iOS Reverse Engineering Toolkit 和 Hopper 之类的东西对二进制文件进行逆向工程。这当然不会产生与实际源代码相同级别的代码,但它可以提供一些关于如何制作应用程序的见解。
如果您有兴趣了解通信的工作原理,可以使用几种方法来监控 iPhone 使用计算机的网络流量。这是使用 RVI 完成的,这有点麻烦。 Apple 上有一个 guide(在页面上搜索 RVI),我发现 this blog 提供了一些详细信息。我只使用过一次,我记得在 Wireshark 中进行设置很痛苦,但没有提供有关如何配置的详细信息,您必须对设置进行一些修改才能使其正确。
对于 Java,有大量关于逆向工程的资源,而且它通常比编译代码容易得多,但是混淆当然会使它变得更难。 JAD 是比较流行的反编译器之一。
【讨论】:
【参考方案2】:在 Android 上,您可以使用 http://proguard.sourceforge.net 混淆您的代码
我会假设 Play 商店中的大多数应用都被混淆了。我不确定IOS。
您始终可以运行 GNU“字符串”命令从二进制文件中提取纯文本。
【讨论】:
【参考方案3】:对于安卓:
首先您需要找到 APK 文件。有几十个镜像,可以下载.apk(或.apks)文件。
APK 文件是一个存档文件。解压或使用 WinZIP / WinRAR 打开。
查找作为所用语言/IDE 赠品的文件 - 例如。 Kotlin、Xamarin 等
【讨论】:
以上是关于是否有可能找出用于创建移动应用程序的技术?的主要内容,如果未能解决你的问题,请参考以下文章
是否有可能在 Android 或 Blackberry 上运行小程序?