我们可以通过它在 gdb 中的十六进制值给出输入字符串吗?例如,一个简单的程序
#include <stdio.h>
int main() {
char buffer[20];
fscanf(stdin, "%s", buffer);
printf("%s", buffer);
}
调试它:
ravi@ravi-desktop:~$ gdb -q ./a.out
Reading symbols from /home/ravi/a.out...done.
(gdb) list 1
1 #include <stdio.h>
2
3 int main() {
4 char buffer[20];
5 fscanf(stdin, "%s", buffer);
6 printf("%s", buffer);
7 }
(gdb) r
Starting program: /home/ravi/a.out
\x41\x41\x41\x41
\x41\x41\x41\x41
Program exited with code 014.
(gdb) quit
我想A
使用十六进制值输入四个作为输入,\x41
但它正在分别考虑每个字符。
真正的要求是我在基于堆栈的缓冲区溢出中使用 Shellcode,并且我需要在调试时以十六进制输入 shellcode。
任何人都可以在这里帮助我。
谢谢拉维