2

由于 MonoTouch 在实际应用程序中使用 dll,这种方法的安全性如何?例如,如果有人在使用 Mono.Security.dll,难道不能用实现这些方法并对应用程序执行代码注入攻击的 dll 替换掉那个 dll 吗?

4

1 回答 1

10

这种方法有多安全?

和我知道的任何现有的一样多:-)

有人不能换掉那个 dll

不,有几个原因。

  • 您不能更改应用程序文件。这会破坏数字签名,iOS 不会执行它。仅此一项就消除了中间人攻击;

  • 每个.dll 中的代码已经编译为本机代码(由 AOT 编译器)和主要可执行二进制文件的一部分。交换一个新的 .dll 不会改变执行的代码;

  • 部署在设备上的 .dll 被剥离(用于发布版本)。它里面没有 IL(代码),因为它没有用(我们不能在 iOS 上 JIT)。即使您添加了带有 IL 代码的 .dll(例如调试版本),它也不会被执行(同样需要 JITting);

为什么要部署 .dll?对于他们的元数据(例如,如果你使用反射)

最后说明: MonoTouch 生成原生 ARM 可执行文件,就像 Objective-C 一样。

于 2012-05-24T16:28:01.243 回答