7得票2回答
无 NULL 的 shellcode

我正在尝试将我写的汇编程序转换为无 NULL 的 shellcode。 但是,对于某些指令,我不确定该如何进行操作。 其中一些指令(使用 Intel 语法)包括: push 0x1000 并且 mov BYTE [eax],0x31 我希望避免使用成千上万次的inc eax指令。...

9得票2回答
简单的缓冲区溢出和Shellcode示例

我一直在尝试运行Aleph One的示例,以获得BOF并打开shell。 这是Aleph One的论文:http://insecure.org/stf/smashstack.html 这是简单的C代码(几乎位于论文的中间位置): char shellcode[] = "\xeb\x2a\...

9得票2回答
编写Shellcode:为什么我的Shellcode无法运行?

我正在编写一个shellcode,用来利用使用puts函数的目标程序。该程序看起来像这样: #include <stdio.h> main() { char buf[123]; puts(gets(buf)); } 我想做的是溢出这个缓冲区并使用一些参数调用e...

15得票1回答
C语言中的Shellcode - 这是什么意思?

我不太明白这段代码是如何实现它的:char shellcode[] = "\xbb\x00\x00\x00\x00" "\xb8\x01\x00\x00\x00" ...

10得票5回答
当我覆盖一个易受攻击程序的ret地址时,为什么会出现"Cannot find bound of current function"?

我希望为教育目的利用基于堆栈的缓冲区溢出。 有一个典型的函数从主函数中调用,该函数使用从程序输入的参数作为本地缓冲区,并将参数保存在其中。如果给定一个这样的输入:nops+shellcode+address_shellcode,我将利用它。 通过gdb调试,我找到了shell code的地...

11得票1回答
gcc的execstack标志允许哪些情况,并如何强制执行?

我这里有一些示例代码,我正在使用它们来理解初学者CTF的一些C语言行为:// example.c #include <stdio.h> void main() { void (*print)(); print = getenv("EGG");...

8得票2回答
缓冲区溢出中编译器的艺术

现代编译器GCC非常强大,甚至可以在编译阶段预防缓冲区溢出,这样操作系统就不能在堆栈空间上运行代码。 例如: void function(char *str) { char buffer[16]; strncpy(buffer, str, 256); } void mai...

9得票4回答
为什么我会收到分段错误?(测试Shellcode)

我写了一个简单的ASM文件并在我编写的C文件中运行它。结果我遇到了一个段错误。但是,当我执行已编译的ASM文件时,没有错误发生。 我正在运行64位,并使用32位shellcode。这是问题吗? 不可能,因为我使用下面的代码却一直得到段错误: char shellcode[] = "\x9...

7得票1回答
缓冲区溢出攻击格式

通常我们都看到基本的缓冲区溢出格式,其格式为: NOPs + shellcode + return_address 为什么不使用以下格式呢? NOPs + return_address + shellcode? 在这种情况下,我们使返回地址指向shellcode的开头。 我猜想这是因为如果...

8得票1回答
《黑客攻防技术宝典》一书中的缓冲区溢出示例

我正在阅读一本名为《漏洞利用艺术》的书,这是一本不错的书籍,我在 exploit_notesearch.c 文件中发现了一个例子。 简单来说,作者试图从 notesearch.c 中溢出程序。 int main(int argc, char *argv[]) { int useri...