由于 MonoTouch 在实际应用程序中使用 dll,这种方法的安全性如何?例如,如果有人在使用 Mono.Security.dll,难道不能用实现这些方法并对应用程序执行代码注入攻击的 dll 替换掉那个 dll 吗?
问问题
1179 次
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 回答