Ollydbg - изменить первую букву строки

Я написал небольшую программу .exe на C ++.

int main()
{                         

    string myString = "Hello";
    printf("%s", myString);    
    return 0;
}

Мне нужно использовать ollydbg, чтобы заменить первую букву в строке, а затем распечатать ее. В качестве альтернативы я могу полностью напечатать другую строку. Я загрузил файл .exe в ollydbg, обнаружил, что выполнение находится там, где вызывается printf, но не могу найти команду JMP, которая к нему ведет.

Как это преодолеть? Я искал в Google учебные пособия, но не нашел ничего похожего на это.

Заранее спасибо.


person David Faizulaev    schedule 01.02.2016    source источник
comment
Вы можете обнаружить, что даже с Олли этого трудно достичь. Имеющаяся у вас строка должна быть в текстовом сегменте только для чтения в виде буквальной строки. Вы можете обнаружить, что вместо этого вам нужно будет изменить его в двоичном образе на диске.   -  person David Hoelzer    schedule 01.02.2016
comment
@DavidHoelzer, мне было предложено использовать логическую алгебру (например AND с 0xFFFF FFDF) или операции ADD / SUB. Другой вариант для меня - изменить его с «H» на «h». А как насчет замены строки на другую? Поэтому перед вызовом printf я передаю другую строку.   -  person David Faizulaev    schedule 01.02.2016


Ответы (2)


Вы можете найти строку с помощью Контекстное меню-> Поиск-> Все текстовые строки, на которые есть ссылки.

В том же окне со ссылками есть адреса, которые вы можете редактировать с помощью CTRL + E (двоичное редактирование).

person Carlos Cortez    schedule 01.02.2016
comment
CTRL-E ничего не делает - person Black; 25.03.2020

если вы хотите изменить его навсегда, сделайте следующее:

  • нажмите alt + e
  • найдите свой exe-файл. выберите его right click и выберите View executable file.
  • нажмите ctrl+B и найдите hello. и измените h.
  • right click и выберите Save file....
person Amir    schedule 14.03.2016
comment
Как я могу это изменить? Похоже, это невозможно - person Black; 25.03.2020
comment
Разобрался ... отметить текст - ›щелкните правой кнопкой мыши -› двоичный - ›изменить - person Black; 25.03.2020