最近我一直在学习计算机安全,遇到了一些问题,特别是这个问题让我有些困扰。 我需要溢出一个带有固定缓冲区的函数,以便在文件shellcode中执行shellcode。这个函数非常简单: void vuln(char *str) { char buf[64]; strcpy(b...
我正在尝试在C语言中完成Smashing the Stack for Fun and Profit的一个示例,但目前遇到了一些困难,以下是代码(我的机器是64位Ubuntu): int main() { int x; x = 0; func(1,2,3); ...
我在Linux (amd64)上玩弄了缓冲区溢出,并尝试利用一个简单的程序,但失败了。我禁用了安全功能(用sysctl -w kernel.randomize_va_space=0来禁用地址空间布局随机化和bios中的nx位)。它跳转到栈并执行shellcode,但没有启动shell。exec...
我要利用的函数基本上是这样的:int getbufn() { char buf[512]; Gets(buf); return 1; } 当我运行主程序时,该函数会执行5次,每次buf的位置和%ebp的位置都会改变。我的任务是将一个特定的十六进制值,比如0xFFF...
大家好, 我正在尝试学习基本的shell编程,并且我遇到了一些奇怪的事情,希望有人能够解释一下。我按两种方式编译了以下代码:将shellcode声明为一个数组和char*。当我将shellcode声明为数组时,Linux检测到我正在尝试执行数据,并且在第一条指令上引发了一个段错误。然而,当我...
我正在编写一个从文件加载和执行代码的程序。 但是我遇到了一个问题:"write"系统调用不起作用。 程序成功加载并执行,但在屏幕上没有显示任何文本。 加载代码的程序:#include < stdio.h > #include < stdlib.h > int mai...
我正在编写一个shellcode,用来利用使用puts函数的目标程序。该程序看起来像这样: #include <stdio.h> main() { char buf[123]; puts(gets(buf)); } 我想做的是溢出这个缓冲区并使用一些参数调用e...