我发现可以通过使用Wappalyzer,SimilarTech或BuiltWith等服务(他们检查HTTP标头,ping响应,cookie,评论和其他奇特的东西)来了解如何构建网站。现在我想知道:你能找到使用类似技术/服务构建移动应用程序(Android,iOS)的方法吗?我知道代码是编译的,不应该尝试对其进行逆向工程(出于显而易见的版权原因)......但是可以在没有“违反规则”的情况下完成(我的意思是至少要发现服务是如何工作的,而不是背后的代码/算法?)
免责声明:这仅出于教育和安全原因。
答案 0 :(得分:2)
免责声明:正如您所提到的,EULA通常不允许进行逆向工程,在某些国家/地区可能违法。在进入该领域之前,请确保您知道适用的规则。
对于iOS,您可以使用iOS Reverse Engineering Toolkit和Hopper等内容对二进制文件进行反向工程。这当然不会产生与实际源代码相同级别的代码,但它可以提供有关应用程序如何制作的一些见解。
如果您对查找通信的工作方式感兴趣,可以使用计算机监控iPhone的网络流量。这是使用RVI完成的,这有点麻烦。 Apple上有一个guide(在页面上搜索RVI),我发现this blog提供了一些细节。我只使用过一次而且我记得在Wireshark中设置它并没有提供有关如何配置它的详细信息是一件很痛苦的事情,你必须对设置进行修改以使其正确。
在Java方面,逆向工程有大量资源,而且通常比编译代码容易得多,但是混淆当然会让它变得更难。 JAD是最受欢迎的反编译器之一。
答案 1 :(得分:1)
在Android上,您可以使用http://proguard.sourceforge.net
对代码进行模糊处理我认为Play商店中的大多数应用都是混淆的。我不确定IOS。
您始终可以运行GNU“strings”命令从二进制文件中提取明文。
答案 2 :(得分:0)
对于Android:
首先,您需要找到APK文件。有数十个镜像,可以在其中下载.apk(或.apks)文件。
APK文件是存档。打开包装或使用WinZIP / WinRAR打开。
查找使用的语言/ IDE赠品的文件-例如。 Kotlin,Xamarin等。