Я узнаю об уязвимостях строки формата и написал тестовую программу, чтобы опробовать их.Это моя тестовая программа:
#include <stdio.h>
int main(int argc, char *argv[])
{
char test[] = "Whatever \n";
printf(argv[1]);
return 0;
}
Если я использую %p
в качестве argv[1]
, она, конечно, выводит адрес из стека.Если я введу %s
как argv[1]
, он напечатает:
__libc_start_main
Я что-то не так делаю с моей программой или аргументами?Как я могу распечатать массив test[]
из стека?Это всего лишь пример, я хочу знать, как распечатать любую переменную вообще из стека.Я просто использовал эту программу, поэтому приведу простой пример.