1

別のアプリケーションまたは OS からメモリを改ざんしようとすることは、悪いプログラミングと見なされることに気付きました。

ただし、Objective C を理解していないため、固定メモリ アドレスから変数に 25 バイトを読み取り、それらの 25 バイトを別のセットに置き換える必要があります

私はポインターと、すべての * と & と @ 記号の意味がひどいです。

XCode 4.4.1 を使用して、Mac OS X 10.8 (Mountain Lion) でこれを試みています。

私は次のようなことを試しました:

char *myPtr = (char*) 0x7FFA8000 // just an example, not the real memory address
char myString[] = *myPtr
4

1 に答える 1

4

25文字の場合は、次のようにします。

char *myPtr = (char*) 0x7FFA8000; // pointer to arbitrary memory address
char myString[26];                // buffer to copy data to
memcpy(myString, myPtr, 25);      // do the copy
myString[25] = '\0';              // make sure string is terminated

任意のアドレスに書き戻すには:

char *myPtr = (char*) 0x7FFA8000; // pointer to arbitrary memory address
char myString[26];                // buffer to copy data from
memcpy(myPtr, myString, 25);      // do the copy

どちらの場合も、自分のプロセスの仮想アドレス空間内のメモリにアクセスしているだけであることに注意してください。OSや別のプロセスのメモリを読み書きしているわけではありません。

于 2012-09-11T17:47:44.630 に答える