gpt4 book ai didi

linux - 缓冲区溢出不运行

转载 作者:太空狗 更新时间:2023-10-29 11:19:49 24 4
gpt4 key购买 nike

我尝试了一个基本的缓冲区溢出,我覆盖了堆栈上保存的 EIP,然后跳转到地址。这个地址指向一个包含我的 shellcode 的 shell 变量。

但是在 gdb 上,在 nopslide 的第一个 nop 上编程 sigserv。

我用这个命令启动程序:

gdb-peda$ r $(python -c 'print "A"*22 + "\x5f\xb8\xff\xff"')

我有这个痕迹:

[----------------------------------registers-----------------------------------]
EAX: 0x1a
EBX: 0xf7fc3ff4 --> 0x15dd7c
ECX: 0xffffaf38 --> 0xf7fc44e0 --> 0xfbad2a84
EDX: 0xf7fc5360 --> 0x0
ESI: 0x0
EDI: 0x0
EBP: 0x41414141 ('AAAA')
ESP: 0xffffaf80 --> 0xffffb100 --> 0xc ('\x0c')
EIP: 0xffffb85f --> 0x90909090
EFLAGS: 0x10296 (carry PARITY ADJUST zero SIGN trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
0xffffb85c: nop
0xffffb85d: nop
0xffffb85e: nop
=> 0xffffb85f: nop
0xffffb860: nop
0xffffb861: nop
0xffffb862: nop
0xffffb863: nop
[------------------------------------stack-------------------------------------]
0000| 0xffffaf80 --> 0xffffb100 --> 0xc ('\x0c')
0004| 0xffffaf84 --> 0xf7fef060 (push ebp)
0008| 0xffffaf88 --> 0x80484bb (<__libc_csu_init+11>: add ebx,0x1219)
0012| 0xffffaf8c --> 0xf7fc3ff4 --> 0x15dd7c
0016| 0xffffaf90 --> 0x80484b0 (<__libc_csu_init>: push ebp)
0020| 0xffffaf94 --> 0x0
0024| 0xffffaf98 --> 0xffffb018 --> 0x0
0028| 0xffffaf9c --> 0xf7e7ce46 (<__libc_start_main+230>: mov DWORD PTR [esp],eax)
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0xffffb85f in ?? ()
gdb-peda$ x/i $eip
=> 0xffffb85f: nop

我在 debian wheezy 上运行,gcc 版本是 gcc (Debian 4.7.2-4) 4.7.2,gdb 版本是 7.4.1-debian。

这个gcc版本有新的保护吗?还是其他想法?

谢谢。 (对不起我的英语:))

最佳答案

您可以按照以下任一步骤移除堆栈保护:

Illustration of buffer overflows for students (linux, C)

关于linux - 缓冲区溢出不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14205262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com