Как использовать формат String Attack

Предположим, у меня есть следующий код:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

int num1 = 0;

int main(int argc, char **argv){
    double num2;
    int *ptr = &num1;
    printf(argv[1]);

    if (num1== 2527){
        printf("Well done");
    }
    if(num2 == 4.56)
        printf("You are a format string expert");
    return 0;
}

Я пытаюсь понять, как сделать это правильно, но я просто не могу организовать свой разум с помощью руководств в Интернете.

Предположим, что-то вроде:

./Program %p %p %p %p

а потом

 ./Program $( printf "\xAA\xAA\xAA\xAA") %.2523d%n

Я просто не могу понять это, Пожалуйста, помогите мне пройти через это.

Основной смысл этого заключается в использовании строки в работающей программе через функцию prinft. Мне нужно, чтобы печатались «Молодцы» и «Вы являетесь экспертом форматной строки». В моем случае через Linux терминал / оболочку. Как замечает HuStmpHrrr: это действительно должен быть White Hacking - Software Security

Ответы на вопрос(1)

Ваш ответ на вопрос