【问题标题】:What's the purpose of ASLR on android?android上的ASLR的目的是什么?
【发布时间】:2011-10-19 10:22:03
【问题描述】:

Android 4.0 添加了 ASLR

http://developer.android.com/sdk/android-4.0-highlights.html#DeveloperApis

Afaik,ASLR 主要用于避免在利用缓冲区溢出漏洞时让某些恶意代码泄漏/将有效负载放入另一个库中

但是几乎所有将在android上运行的代码都会被管理,所以它不应该受到内存管理错误的影响

它可能对本机代码有用。 Otoh,我认为大多数使用 NDK 的程序(例如用 C 制作的 opengl 游戏引擎)仍然有一层 java 代码来处理用户输入等(我认为用户提供的文件/字符串会成为恶意代码的主要载体)

显然我的照片中缺少一些东西

【问题讨论】:

标签: android aslr


【解决方案1】:

即使您只能添加用 Java 等托管语言编写的程序,现有的 C 库仍然容易受到缓冲区溢出的影响。

例如,用于播放 mp3 的库可能是用 C 编写的,而特制的 mp3 文件可能会触发缓冲区溢出并执行 shellcode。在Android中加入ASLR(Address Space Layout Randomization)会通过随机化一些内存地址来增加编写这样一个exploit的难度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多