入力文字列を gdb の 16 進値で指定できますか。たとえば、簡単なプログラム
#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
16進値を使用して入力として4を入力したいのです\x41
が、各文字を個別に考慮しています。
実際の要件は、スタックベースのバッファー オーバーフローでシェルコードを使用していて、デバッグ時にシェルコードを 16 進数で入力する必要があることです。
ここで誰か助けてくれませんか。
ありがとうラヴィ