是否有可能找出用于创建移动应用程序的技术?

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 和其他奇特的东西)。现在我想知道:您能找到如何使用类似的技术/服务构建移动应用程序(androidios)吗?我知道代码是编译的,不应该尝试对其进行逆向工程(出于明显的版权原因)......但它可以在不“违反规则”的情况下完成(我的意思是至少发现服务是如何工作的,而不是背后的代码/算法?)

免责声明:这仅出于教育和安全原因。

【问题讨论】:

【参考方案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 等

【讨论】:

以上是关于是否有可能找出用于创建移动应用程序的技术?的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能知道在 iOS 中用于共享的媒介是啥?

是否有可能在 Android 或 Blackberry 上运行小程序?

Phonegap 仅用于移动开发

jlink JRE可以用于外部JAR文件吗?

iOS - plist 文件、nsuserdefaults 或文本数据文件

是否可以创建一个跨平台的离线移动应用程序?