- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您好,我有以下程序:
int main(int argc, char **argv) {
char *buf1 = (char*)malloc(1024);
char *buf2 = (char*)malloc(1024);
printf("buf1 = %p ; buf2 = %p\n", buf1, buf2);
strcpy(buf1, argv[1]);
free(buf2);
}
输入是:
0000000: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000010: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000020: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000030: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000040: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000050: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000060: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000070: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000080: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000090: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000a0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000b0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000c0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000d0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000e0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00000f0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000100: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000110: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000120: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000130: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000140: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000150: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000160: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000170: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000180: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000190: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001a0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001b0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001c0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001d0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001e0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00001f0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000200: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000210: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000220: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000230: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000240: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000250: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000260: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000270: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000280: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000290: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002a0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002b0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002c0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002d0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002e0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00002f0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000300: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000310: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000320: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000330: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000340: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000350: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000360: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000370: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000380: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
0000390: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003a0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003b0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003c0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003d0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003e0: 41414141 41414141 41414141 41414141 AAAAAAAAAAAAAAAA
00003f0: 41414141 ffffffff 42424242 42424242 AAAA....BBBBBBBB
0000400: f8ffffff f0ffffff ffffffff ffffffff ................
0000410: fc9f0408 aab00408
:- 0x804b0aa:shellcode 的地址(目前还没有,但如果它在那里也不起作用)- 0x8049ffc:空闲 - 0xc 地址(空闲函数位于:0804a008)- 0x804b008:指向第一个缓冲区数据的指针- 0x804b410: 指向第二个缓冲区数据的指针
每当我运行程序时,我得到:
buf1 = 0x804b008 ; buf2 = 0x804b410
*** glibc detected *** ./vuln: free(): invalid pointer: 0x0804b410 ***
======= Backtrace: =========
/lib/libc.so.6(+0x6c501)[0x19b501]
/lib/libc.so.6(cfree+0xd6)[0x19fec6]
./vuln[0x80484b4]
/lib/libc.so.6(__libc_start_main+0xe7)[0x145ce7]
./vuln[0x80483c1]
======= Memory map: ========
00110000-0012c000 r-xp 00000000 08:01 268227 /lib/ld-2.12.1.so
0012c000-0012d000 r--p 0001b000 08:01 268227 /lib/ld-2.12.1.so
0012d000-0012e000 rw-p 0001c000 08:01 268227 /lib/ld-2.12.1.so
0012e000-0012f000 r-xp 00000000 00:00 0 [vdso]
0012f000-00286000 r-xp 00000000 08:01 268245 /lib/libc-2.12.1.so
00286000-00288000 r--p 00157000 08:01 268245 /lib/libc-2.12.1.so
00288000-00289000 rw-p 00159000 08:01 268245 /lib/libc-2.12.1.so
00289000-0028c000 rw-p 00000000 00:00 0
0028c000-002a6000 r-xp 00000000 08:01 261718 /lib/libgcc_s.so.1
002a6000-002a7000 r--p 00019000 08:01 261718 /lib/libgcc_s.so.1
002a7000-002a8000 rw-p 0001a000 08:01 261718 /lib/libgcc_s.so.1
08048000-08049000 r-xp 00000000 08:01 149954 /home/eleanor/testing/heap/vuln
08049000-0804a000 r--p 00000000 08:01 149954 /home/eleanor/testing/heap/vuln
0804a000-0804b000 rw-p 00001000 08:01 149954 /home/eleanor/testing/heap/vuln
0804b000-0806c000 rw-p 00000000 00:00 0 [heap]
b7fec000-b7fed000 rw-p 00000000 00:00 0
b7ffd000-b8000000 rw-p 00000000 00:00 0
bffdf000-c0000000 rw-p 00000000 00:00 0 [stack]
Aborted (core dumped)
这让我很担心,因为堆上的值是正确的。 linux malloc/free 是否有可能发生变化,所以这不再可能了。如果是,我怎样才能使学习成为可能?如果不是,那似乎是什么问题,所以它不起作用?
最佳答案
每当您尝试了解溢出利用时,请记住禁用 ASLR 和 Canaries:
root@mfsec # echo 0 > /proc/sys/kernel/randomize_va_space
root@mfsec # gcc vuln.c -o vuln -fno-stack-protector
这应该可以解决问题,如果您不打算很快重新启动,请记住再次启用 ASLR ;)
关于linux - heap overflow - segmentation fault 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073181/
我正在使用 bootstraptable 并试图让单元格显示溢出的内容但只显示向下(即 overflow-y)。问题是,bootstraptable css 使用 overflow: hidden o
来自文档:溢出: The overflow shorthand CSS property sets what to do when an element's content is too big to
有多个这样命名的问题,但我没有找到一个适用于我的情况,所以我在这里: 在这段代码中: #container:hover { overflow-x: hidden; } #container {
我正在学习 Haskell,但遇到了我没想到的异常“堆栈溢出”。 代码相当简单: type Reals = Double prod :: Reals -> Reals -> Reals prod a
我通读了this question并且没有看到我的问题是否有解决方案。 我创建了一个 CodePen这表明了这个问题。我希望隐藏红色边框左侧和右侧 (overflow-x) 的所有内容,但保持顶部和底
我有一张 bootstrap 4 卡,我想在其中隐藏字幕的溢出(并显示“...”)。我怎样才能实现这个目标?如果可能的话使用纯引导代码... Test object Added by
我今天更新了我的 flutter ,现在堆栈小部件中的溢出参数不再有效。 Flutter 1.22.0-10.0.pre.252 • channel master • https://github.c
使用 border-radius Opera 实际上不会隐藏元素的溢出部分。我已经尝试应用我设法在类似线程中找到的东西,例如定义边框样式或注意使用绝对和相对参数进行定位。但它仍然无法正常工作。 htm
我在固定大小的 div 中有一个表。如果表格溢出 div,我希望滚动条出现。我还想在向下滚动时克隆表格的标题,以便标题持久存在。我遇到的问题是我希望水平滚动条滚动克隆的标题和原始表格,而垂直滚动条
奇怪,我以为 overflow-x 和 overflow-y 都被广泛支持,但后来我才看到它只支持 CSS3( http://reference.sitepoint.com/css/overflow
unsigned long long terms; unsigned long long test; unsigned long long digit = 1; unsigned long long
我有一个案例,我必须使用 overflow-x:scroll; 水平显示内容。 现在在这个Fiddle第一个 block 有 overflow-y:scroll; 提供滚动,用户可以滚动内容。在第二个
您好,我正在尝试只使用 overflow-x 而不是 overflow-y 结构是这样的 Head1 feild1
我有一个正在运行的计划作业,我想计算过去 30 天的时间。为此,我收到一条警告,表示在表达式中检测到数字溢出。我怎样才能安全地给予 30 天? @Override @Scheduled(cro
我有一个父级,它有多个子级,当父级宽度溢出时,我喜欢显示水平滚动条。 我不想使用“display:inline-block”属性,因为它们之间会产生空白。 这是我的尝试: .parent{ wid
我正在为导航栏编写一些 CSS,我需要为下拉菜单使用 max-height 和 overflow-y: scroll 以便确保它适合页面。但是,每当我将 overflow-y 属性设置为滚动时,它似乎
这是我的问题。我有一个旋转木马,它也像菜单一样。当选项卡的数量高于浏览器可用的宽度空间时,将出现轮播控件。一切正常。但我还在每个选项卡上添加了一个下拉菜单,这就是问题所在。如果我设置 overflow
这个问题在这里已经有了答案: CSS overflow-x: visible; and overflow-y: hidden; causing scrollbar issue (10 个答案) 关
这个问题在这里已经有了答案: How do you keep parents of floated elements from collapsing? [duplicate] (15 个答案) W
这是一个代码片段: div.one { width: 98%; border: 5px solid black; overflow-x: visible; overflow-y: hi
我是一名优秀的程序员,十分优秀!