эксплойт printf, возвращающий неожиданный гекс - PullRequest
0 голосов
/ 01 сентября 2018

Я только начинаю заниматься реверс-инжинирингом, и я натолкнулся на видео с использованием переполнения в реальном времени, демонстрирующее эксплойты формата строки с использованием printf. Я пытался воспроизвести его результаты, но безуспешно. Мой код такой же, как в его видео. Я использовал radare2, чтобы найти адрес моей целевой переменной.

видео: https://www.youtube.com/watch?v=0WvrSfcdq1I

выход radare2: вывод командной строки radare2

myCode:

#include <iostream>
using namespace std;

int overwritten;

void vuln(char *sdf) {
    printf("typed stuff! -> ");
    printf(sdf);

    if(overwritten) {
        printf("\nyou overwrote the var!");
    }
}

int main(int argc, char *argv[]) {
    vuln(argv[1]);
}

Часть, с которой у меня проблемы, - в 7:54 в его видео. Он запускает программу со скриптом Python 'AAAA' + the variable address + 'bbbb' + '%x ' * 200. Вывод в его видео - это адрес переменной, окруженный 41414141 и 42424242. Это вывод, который я наблюдаю -> вывод . Почему я даже не вижу 41 и 42?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...