如何创建缓冲区溢出以测试Address Sanitizer?

丹·比尤(Dan Beaulieu)

问题

我试图创建缓冲区溢出,以了解有关Address Sanitizer的更多信息。我编写了以下代码,我认为这会导致缓冲区溢出,尽管我一定会误认为它没有引发期望的"Heap buffer overflow detected"

试图

    var ints : [UInt8] = [ 1, 2, 3, 4 ]

    let a = UnsafeMutableBufferPointer(start: &ints, count: ints.count)

    a[28] = 17 // array out of index 

通过单击我的应用程序>编辑方案...,然后单击“启用Address Sanitizer”,已启用Xcode中的Address Sanitizer。然后,我在运行之前重建了我的应用程序。

问题

如何在Swift 2中创建缓冲区溢出?

马丁·R

来自https://developer.apple.com/videos/play/wwdc2015-413/?time=947

Address Sanitizer是基于C语言的LLVM工具。

https://developer.apple.com/videos/play/wwdc2015-413/?time=1422

为了使用Address Sanitizer,Xcode将特殊标志传递给clang。

似乎Address Sanitizer仅可clang用于C,Objective-C等,而不适用于Swift编译器swiftc

一个触发缓冲区溢出的简单C程序是

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[]) {

    int *p = malloc(4 * sizeof(int));
    p[28] = 17;

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xcode Sanitizer如何启用

来自分类Dev

Meaningful stack traces for address sanitizer in GCC

来自分类Dev

gcc address sanitizer core dump on error

来自分类Dev

使Thread Sanitizer和Address Sanitizer选项在Xcode 8中可用需要什么

来自分类Dev

如何在现代系统上测试缓冲区溢出?

来自分类Dev

如何为编辑操作指定devise_parameter_sanitizer?

来自分类Dev

如何在服务器端使用JSON Sanitizer?

来自分类Dev

如何指定devise_parameter_sanitizer进行编辑操作?

来自分类Dev

如何实现缓冲区溢出

来自分类Dev

此代码如何使缓冲区溢出

来自分类Dev

缓冲区溢出测试程序不符合预期

来自分类Dev

尝试缓冲区溢出

来自分类Dev

发生缓冲区溢出

来自分类Dev

防止缓冲区溢出

来自分类Dev

缓冲区溢出实现

来自分类Dev

缓冲区溢出漏洞

来自分类Dev

试验缓冲区溢出

来自分类Dev

缓冲区溢出漏洞

来自分类Dev

试验缓冲区溢出

来自分类Dev

缓冲区溢出 C

来自分类Dev

如果该平台不支持Address Sanitizer说出detect_leaks,我该如何解决?

来自分类Dev

如何在单元测试中测试在新缓冲区中创建的值

来自分类Dev

如何释放libjpeg创建的缓冲区?

来自分类Dev

缓冲区溢出/溢出说明?

来自分类Dev

缓冲区溢出/溢出说明?

来自分类Dev

GCC如何检测堆栈缓冲区溢出

来自分类Dev

如何处理“缓冲区队列溢出,丢弃”。(ffmpeg)

来自分类Dev

写缓冲区溢出漏洞-如何找出shellcode的地址?

来自分类Dev

从文件读取时如何停止堆栈缓冲区溢出?