1


私は単にしたい:

  1. ファイルを開く
  2. 16 進値を検索する
  3. 別の16進値に置き換えます
  4. ファイルを保存してください。

これは私が試したことですが、うまくいかないようです

#include <fstream>
#include <iterator>
#include <algorithm>

void FindAndReplace(CHAR Before[], CHAR After[], int Size)
{
typedef std::istream_iterator<unsigned char> input_iter_t;
typedef std::ostream_iterator<unsigned char> output_iter_t;

std::fstream f("C:\\myfile.exe", std::ios::binary | std::ios::in | std::ios::out);

if (search(input_iter_t(f), input_iter_t(), Before, Before + Size) != input_iter_t()) {
    f.seekp(-Size, std::ios::cur);
    f.write(After, Size);
    }
}

そして、このように呼びます

CHAR Before[] = {0x2D,0x43,0x89,0x5D};
CHAR After[] = {0x00,0x00,0x00,0x00};
FindAndReplace(Before,After,4);

そのようなことを行う他の方法を知っていますか? または、私は何を間違っていますか?

4

0 に答える 0