是否可以对应用程序进行反编译?

Jac*_*ies 3 iphone objective-c ipad ios

我需要将我网站特定部分的身份验证信息编码到我的应用程序中.应用程序是否可以"反编译"并暴露用户名和密码?

NSURL *url = [NSURL URLWithString:@"https://predefinedUsername:predefinedPassword@www.website.com"];
Run Code Online (Sandbox Code Playgroud)

bbu*_*bum 6

对的,这是可能的.假设你有任何编译到你的应用程序中的东西,它可以[并将]被某人发现.即使今天不可能,您也会创建此类信息的冻结记录,这些信息很容易受到未知或未知的任何攻击.

您确实需要用户执行一些验证它们的任务.有一百万种方法可以做到这一点,对于每一种方法,有一百万种方法可以做错.:)

在不了解您的具体要求的情况下,除了"保持简单并且不以明文存储或发送任何内容"之外,不可能真正说出更多内容.


Jac*_*nce 5

正如@Hyperbole所说,如果您以明文形式存储用户名和密码,它将在可执行文件中可见.检查字符串的可执行文件是非常简单的,而且通常是有恶意的人会尝试的第一件事.

右键单击您在iTunes中下载的任何应用程序,然后选择在查找器中显示.在桌面上制作应用程序的副本,并将应用程序从AppName.ipa重命名为AppName.zip.双击解压缩,然后查看文件夹.导航到文件夹Payload,然后右键单击那里的(可能只有)文件,该文件名为AppName,看起来像一个应用程序,但有一个大圆圈,旁边有一个图标.选择显示包内容.滚动浏览直到找到名为AppName且没有扩展名的文件和带有绿色单词"exec"作为图标的黑色矩形.在文本编辑或其他文本编辑器中打开该文件.你会发现大部分结果都是随机符号和其他废话,但你偶尔会看到一些纯文本.在大多数情况下编译时,编译器会获取字符串常量并将它们直接嵌入到应用程序中.

您询问了什么杂志应用程序和其他人访问内容的方式 - 有很多不同的方法可以做到这一点,但是在服务器验证您的应用程序内购买收据后,服务器将记录特定于你的iTunes帐户,说你已经购买了该杂志的特定版本.然后,您的应用可以从服务器请求该文件,并在该过程中将标识符添加到请求中.一旦查看完数据库,服务器就会响应该文件并确定您已购买了该内容.

其他解决方案包括签名/散列唯一密钥.