2

一些代码分析工具要求您将 .ipa 与 .dSYM 文件一起提交。

将 .dSYM 文件与 .ipa 一起发送是否存在对应用程序进行逆向工程的风险?我的意思是,如果他同时拥有 .ipa 和 .dSYM,有人可以获取源代码吗?

4

2 回答 2

5

即使没有符号,对应用程序进行逆向工程也不难。

以下是最新版本的IDA在没有.dSYM 的情况下可以向您展示的内容:

IDA iPhone Objective-C 反汇编

如果你有 Hex-Rays 反编译器,你可以得到类似的东西:

// CKMessagesController - (void)mailComposeController:(id) didFinishWithResult:(int) error:(id) 
void __cdecl -[CKMessagesController mailComposeController:didFinishWithResult:error:](struct CKMessagesController *self, SEL a2, id a3, int a4, id a5)
{
  struct CKMessagesController *v5; // r4@1

  v5 = self;
  objc_msgSend(self, "dismissViewControllerAnimated:completion:", 1, 0);
  objc_msgSend((void *)v5->_mailComposeController, "release");
  v5->_mailComposeController = 0;
}

拥有 .dSYM 肯定会使任务变得更加容易:不仅所有的函数和变量名称都会在那里(包括私有名称),而且可能还有完整的类型(结构、类和枚举)。您将无法获得代码,但可能非常接近它。

于 2013-01-24T14:07:21.537 回答
2

不,他不会得到源代码,但知道符号名称可能有助于理解编译/反编译的代码。

于 2013-01-24T13:19:17.423 回答