-1

メモ帳のプロセス メモリからいくつかの文字列を照合したいのですが、うまくいきません。コードは次のとおりです。

int bytes_to_read = (int)info.RegionSize;
char *buffer;
buffer = (char*)malloc(bytes_to_read+1);
ReadProcessMemory(hProcess, info.BaseAddress, buffer, bytes_to_read, NULL);
const char *t1re = ";\\d{0,19}";
regex ret1(t1re);
cmatch match;

if(regex_search(buffer, match, ret1))
{
    cout << "Found: " << pe32.szExeFile << "\n";
    system("pause");
}
4

1 に答える 1

0

Windows プログラムであるメモ帳は、おそらく UCS-2 を使用しているか、最近では UTF-16 を使用していると思います。つまり、Unicode 正規表現が必要です。

そして、regex_search がバイナリ データでも機能することを確信していますか? 文字列の終わりであると信じて、最初のゼロバイトで終了する可能性があります。

于 2013-12-11T17:00:40.213 に答える