Tag: fortify source

在Mac OS 10.6上执行简单的缓冲区溢出

我正在尝试了解堆栈基础溢出并编写一个简单的代码来利用堆栈。 但不知怎的,它根本不起作用,只显示我的机器上的Abort陷阱(mac os豹) 我想Mac os对待溢出的方式不同,它不允许我通过c代码覆盖内存。 例如, strcpy(buffer, input) // lets say char buffer[6] but input is 7 bytes 在Linux机器上,此代码成功覆盖下一个堆栈,但在mac os上阻止(Abort trap) 任何人都知道如何在mac机器上执行简单的堆栈溢出?

格式字符串攻击

我有一个小的C程序可以被利用。 而且我也理解了要执行的攻击背后的逻辑。 但是,尽管我尝试过,但这对我来说并不适用。 #include #include #define SECRET1 0x44 #define SECRET2 0x55 int main(int argc, char *argv[]) { char user_input[100]; int *secret; int int_input; int a, b, c, d; /* other variables, not used here.*/ /* The secret value is stored on the heap */ secret = (int *) malloc(2*sizeof(int)); /* getting the secret */ secret[0] […]

sprintf函数的缓冲区溢出?

{ char buf[8]; sprintf(buf,”AAAA%3s”,”XXXXXXXX”); printf(“%s\n”,buf); } 会发生什么? 缓冲区有8个字符空间,只剩下3个空闲字符,但“XXXXXXXX”长度为8个字符。 我在Windows 7上使用Visual Studion 2008进行测试。结果,打印的程序:AAAXXXXXXX,发生了运行时错误。

Mac OS X Lion上的OpenMP编译失败(memcpy和SSE内在函数)

我偶然发现了以下问题。 下面的代码片段在Mac OS X上没有与我试过的任何Xcode链接(4.4,4.5) #include #include #include int main(int argc, char *argv[]) { char *temp; #pragma omp parallel { __m128d v_a, v_ar; memcpy(temp, argv[0], 10); v_ar = _mm_shuffle_pd(v_a, v_a, _MM_SHUFFLE2 (0,1)); } } 代码仅作为示例提供,并且在运行时会出现段错误。 关键是它不能编译。 使用以下行完成编译 /Applications/Xcode.app/Contents/Developer/usr/bin/gcc test.c -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -fopenmp Undefined symbols for architecture x86_64: “___builtin_ia32_shufpd”, referenced from: _main.omp_fn.0 in ccJM7RAw.o […]