我正在阅读shellcoder的手册。我跟着并因某些原因无法运行我的shellcode。我编写了程序 gcc -mpreferred-stack-boundary = 2 -m32 -z execstack -fno-stack-protector -no-pie
我不明白......我控制了EIP,我看过GDB中的堆栈,我跳到我的NOP雪橇上,但仍然没有......我不明白为什么它不工作。我已经尝试了自己,我甚至尝试了书中的逐字代码,两者都不起作用。我的dmesg显示:
控制EIP: segfault at 42424242 ip 0000000042424242 sp 00000000ffffd330 error 14
尝试重定向到NOP雪橇后: segfault at 0 ip 00000000ffffd332 sp 00000000ffffd300 error 6
我正在运行kali,但我也在ubuntu上试过了。我在/ proc / sys / kernel中禁用了ASLR。我在虚拟机上尝试这个,所以我不确定到底发生了什么。
我很感激任何帮助,因为我不想继续前进,直到我发现发生了什么为止。
答案 0 :(得分:0)
你的shellcode是在64位程序上为32位系统(-m32标志)编译的。因此,在编译时尝试删除-m32。