Formato String Attack

Eu tenho um pequeno programa C para ser explorado. E também entendi a lógica por trás do ataque a ser executada. No entanto, por mais que eu tente, simplesmente não está funcionando para mim.

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

#define SECRET1 0x44
#define SECRET2 0x55

int main(int argc, char *argv[]) {
  char user_input[100];
  int *secret;
  int int_input;
  int a, b, c, d; /* other variables, not used here.*/

  /* The secret value is stored on the heap */
  secret = (int *) malloc(2*sizeof(int));

  /* getting the secret */
  secret[0] = SECRET1; secret[1] = SECRET2;

  printf("Please enter a decimal integer\n");
  scanf("%d", &int_input);  /* getting an input from user */
  printf("Please enter a string\n");
  scanf("%s", user_input); /* getting a string from user */

  printf(user_input);
  printf("\n");

  /* Verify whether your attack is successful */
  printf("The original secrets: 0x%x -- 0x%x\n", SECRET1, SECRET2);
  printf("The new secrets:      0x%x -- 0x%x\n", secret[0], secret[1]);
  return 0;
}

Eu só preciso imprimir o endereço e o valor de secret [0] usando a string de formatação "printf (user_input);"

Eu tentei dar algo como "\ x6e \ xaf \ xff \ xff% x% x% x% x% s". Mas isto não está funcionando. Qualquer sugestão será apreciada. Muito obrigado.

questionAnswers(1)

yourAnswerToTheQuestion