Задать вопрос
@VirusesAnalystCoder

C++. Изменить HEX в бинарном файле?

Всем привет.
Я нашел подобный вопрос на stackoverflow - https://stackoverflow.com/questions/25625115/cpp-b...
Но я немного не понял как это делать, по этому задаю вопрос.
Так же хочу отметить разницу между вопросами: на том вопросе лишь чтение, а мне нужно узнать как так же произвести запись.
Ниже скриншот HEX-текста. Это не бинарный файл, но не в этом суть. Я выделил то, что мне нужно изменить, и выделил НА ЧТО мне нужно изменить.

https://imgur.com/a/iLX06Q0

Есть такой код с stackoverflow:

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main() {
    vector<unsigned char> bytes1{0x70, 0x72, 0x69, 0x76, 0x61, 0x74};
    ofstream outfile("program1.cs", std::ios::binary);
    outfile.write((char*)&bytes1[0], bytes1.size());
    outfile.close();

    vector<unsigned char> bytes2(bytes1.size(), 0);
    ifstream infile("program1.cs", ios::in | ios::binary);
    infile.read((char*)&bytes2[0], bytes2.size());
    for (int i = 0; i < bytes2.size(); ++i) {
        printf("%02X ", bytes2[i]);
    }

    getchar();
}

P.S: Я уже заменил нужные мне байты со скринов в векторе bytes1.
Буду благодарен любой помощи!
  • Вопрос задан
  • 418 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Все просто переходите к позиции текста(дарес первой буквы) и выполняете запись - будет выполнена запись поверх этого текста, но нужно проверять чтобы количество записываемых байт было не больше чем то что нужно изменить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы