3

基本に興味があります。どこから始めたらいいのかわからない。私はこのテストプログラムを作成しました:

#include <stdio.h>

int main()
{
    char* test = "TEST04560";
    getchar();
    printf("%s\n", test);
}

目標は、外部プログラムを使用して「TEST04560」のメモリアドレスを見つけることです。使い方は知っReadProcessMemoryWriteProcessMemoryいますが、プログラムのメモリ内で特定の文字列を検索する方法がわかりません。正しい方向へのヒントは大歓迎です。

4

1 に答える 1

2

どのオペレーティングシステムですか?ほとんどすべてのOSには、他のプロセスを監視/変更できる「デバッグ」機能があります(もちろん、アクセス許可がある場合)。

Linuxでは、これはptraceです。

WindowsにはReadProcessMemory、と友達がいます。

そして、あらゆるタイプのデータを検索するために、がありmemcmpます。使い方を知っていればReadProcessMemory、きっとこの機能に精通しているはずです。

于 2013-01-18T06:08:06.703 に答える