![]() |
1
2
您正在x86-64系统上使用32位汇编代码。所以,这是您的问题,您必须为x86-64系统创建外壳代码。
32位汇编的主要区别之一是如何使用 系统调用 Linux Syscalls x86-64 您可以查看需要调用哪些寄存器 sys\U execve系统
编译并测试它。
|
![]() |
2
1
正如在评论中提到的,您的外壳代码是针对32位Linux的,但您正试图在64位系统上运行它。这可能解释了修复后的错误。 |
![]() |
3
0
你忘了
为了能够在64位系统上编译32位二进制文件,您需要可用的32位库。在基于Ubuntu的系统上,您可以通过以下方式安装它们:
请参阅: https://www.homeworkforyou.com/static_media/uploadedfiles/bufoverflow.pdf |
![]() |
Matt · 由于缓冲区溢出,程序未返回预期的pc注册表地址 7 年前 |
![]() |
Kevin Jones · 外壳代码缓冲区溢出-SegFault 7 年前 |
![]() |
w13rfed · 缓冲区溢出:NOP底座不工作[关闭] 7 年前 |
![]() |
Kingamere · gdb显示的地址与代码中的地址不同 9 年前 |
![]() |
ovrwngtvity · 动态内存分配不会导致缓冲区溢出?[副本] 10 年前 |
|
user2103885 · 利用缓冲区溢出时无法获取根shell 10 年前 |