我浏览了很多,但找不到用于对ipa文件(iPhone应用程序)进行反向工程的任何资源。是否有任何方法可以将IPA文件反向工程为源?我尝试将其重命名为zip并通过Winrar / Winzip打开它以查看其源代码,但是它似乎没有帮助。它的源代码?

#1 楼

如果IPA文件直接来自iTunes / iPhone(未经任何修改),则二进制文件中的代码段(如Info.plist所示)已使用FairPlay(Apple专有的DRM)进行了加密。如果不确定,可以检查是否用otool设置了cryptid位(请参见本页)。

otool -arch armv7 -l thebinary | grep crypt


(其中,二进制文件是可执行二进制文件-请参阅应用程序的Info.plist,CFBundleExecutable密钥)

预解密:

如果cryptid为0,则可以继续进行后解密部分。否则,您将需要解密该应用程序。简短的典型方法(使用越狱的iOS设备)是从Cydia安装


安装otool,gdb和ldid
在授权的设备上安装IPA
运行otool在二进制文件上获取信息,例如加密的有效载荷的大小开头(0x2000)和有效载荷大小
使用原始二进制文件的前0x1000字节创建一个新文件,并附加转储文件
使用ldid对新二进制文件进行签名,并更改cryptid到0(这样iOS不会再次解密解密的应用程序)

有许多可疑目的工具(盗版)可自动执行该过程,但是以上内容是该过程完成方式的要点。

后解密:

当您有权访问二进制文件的未加密副本时,可以开始对代码进行逆向工程。

一种可能的工具是IDA Pro(免费版本不支持ARM)。
由于iOS的许多代码都可与objc_sendMsg()一起使用,因此它可能仍然很混乱。此IDA插件可能会有所帮助:https://github.com/zynamics/objc-helper-plugin-ida

修补功能时,一种更简单的工作方式(如果您了解Objective-C)是使用MobileSubstrate来挂钩相关功能。如果您想尝试此方法,请参阅Dustin Howett的theos。

有用的链接:

有关解密过程的更多信息:http://iphonedevwiki.net/index.php/Crack_prevention

获取工具:https:// apple .stackexchange.com / questions / 21256 / i-cant-find-otool-on-my-jailbroken-ipod

使用ldid签名(因为在编辑后原始签名无效)http:// www.saurik.com/id/8

对于较新的设备

某些工具(在我的基础上为gdb)在iPhone 5S / iOS7上无法正常工作。当前有效的方法是使用流行的开源破解软件“ Clutch”。实际的破解过程可以在这里找到:https://github.com/KJCracks/Clutch/blob/master/Classes/Binary.m

iOS 11

Bishop Fox的bfdecrypt与bfinject一起使用应该适用于iOS11。

评论


我使用Stefan Esser的“ dumpdecrypted” dylib解密二进制文件。我发现使用起来比GDB简单得多-github.com/stefanesser/dumpdecrypted

–米克
13-4-5在13:55



#2 楼

在越狱的iDevice上解密IPA文件后,您可以使用价格更便宜的IDA Pro替代产品Hopper-多平台反汇编程序,价格低于$ 100。

http://www.hopperapp.com /

它支持分析iOS可执行文件(除其他外),甚至还具有将ARM汇编程序转换为伪C的功能。



评论


要在ubuntu上使用,添加回购后,需要安装libgvc5,添加到ldconfig并以sudo身份执行

– albfan
13-10-24在10:34

但是当前版本(3)不支持64位ARM –确实很糟糕。

–adib
16 Mar 7 '16 at 8:53



#3 楼

其他用户在此问题的IPA格式特定元素方面做得很好。至于获取二进制对象的源代码,请查看此答案,以了解为什么这可能比您预期的要困难(与字节码语言反编译相比)。

#4 楼

如果您的iDevice越狱了,AppSec Labs的iNalyzer可以为您自动执行此过程,并为您提供一种查看iOS应用程序的好方法。添加适当的存储库

您可以安装iNalyzer添加适当的存储库后,从Cydia中获取。需要安装doxygen和Graphviz Dot来创建HTML报告。


AppSec Labs iNalyzer是用于操纵iOS应用程序的框架,可以篡改参数和方法;无需任何资源! AppSec Labs
iNalyzer面向封闭的应用程序,将痛苦的黑匣子转变成自动的Gray-Box努力。

AppSec Labs iNalyzer暴露了
目标iOS应用程序的内部逻辑以及隐藏功能之间的关联
。 AppSec Labs iNalyzer允许您
使用日常的基于Web的笔测试工具,例如扫描仪,代理
等。AppSec Labs iNalyzer维护攻击逻辑并将其转发到目标iOS应用。不再需要手动进行BruteForce,Fuzzing,SQL注入和其他繁琐的手动工作!


#5 楼

我建议您查看Frida。这是一个适用于iOS,Android,Windows,Mac和Linux的开源检测工具包。最后一部分展示了如何将代码注入“ Yo”应用并在Google Maps上绘制其网络连接。

评论


编写精美的应用程序,是否想在其中学习更多视频教程?

– BlueBerry-Vignesh4303
2014年6月30日下午5:21

尚未不幸的是,只有frida.re上的文档,但是我计划在将来的时候发布更多博客文章和教程。如有任何疑问,请随时在irc.freenode.net上#Frida登陆,或者给我发电子邮件至gmail.com的oleavr。

– OleAndréVadlaRavnås
2014年6月30日23:32

#6 楼

dumpdecrypted可以自动解密iOS二进制文件。此外,还有一个名为iRET的工具可供您使用,该工具可以自动进行很多分析并进行逆转。

#7 楼

Rasticrac还可以自动执行iOS二进制文件的解密(FairPlay DRM),并且非常容易使用! Cracker

Rasticrac是解密iOS应用程序二进制文件的非常强大的工具。您可以通过在Cydia中添加以下Repo源来将Rasticrac与Cydia一起安装:
http://cydia.iphonecake.com


评论


尽管此链接可以回答问题,但最好在此处包括答案的基本部分并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。

–贡特拉姆·布洛姆(Guntram Blohm)
2014年12月18日上午10:15

什么?!我不认为这是链接吗? (;

–David L-R
2014年12月18日在13:27

您介意添加更多内容,例如它如何做到吗?

– 0xC0000022L♦
2014年12月21日在20:55

您可以看一下这个博客,里面有详细的描述:reverseengineeringapps.blogspot.de

–David L-R
2014年12月22日18:43