1

リリースされた新しいゲームには、現在バインド用の IP アドレス/ポートを構成するオプションがないサーバー ファイルが含まれています。残念ながら、ポート「12345」にハードコーディングされているため、マシンごとにアプリケーションの複数のインスタンスを実行する機能が制限されます。

何年も前に、私は C++ と 16 進数のエディターを使用してハード コードされた値をこのように変更していました。その知識は長い間忘れられていましたが、実行時にその値を変更するセカンダリ アプリケーションを作成することでこれを改善することは可能でしょうか?

4

1 に答える 1

1

ハードコードされた定数を変更するために、引き続き 16 進エディタを使用できます。

もう 1 つの方法は、適切な OS によって提供されるデバッグ API を使用することです。Windows では WriteProcessMemory 関数です。

次のようになります。起動アプリケーションは、変更されたアプリケーションをデバッグ モードで実行します。必要な定数を変更してから実行します。

もちろん、変更されたアプリケーションはアンチ デバッグ技術を使用する可能性があります。この場合、解決策は簡単ではありません。

どちらの場合も、この値がメモリ (実行可能ファイル) のどこにあるかを知る必要があります。このようにして、リバースエンジニアリングを提供する必要があります。

最後の質問の編集後に注意してください。この回答はすべて、ネイティブの実行可能ファイルに対するものです。マネージ コードの場合は、おそらくもっと複雑です。

于 2013-08-07T06:07:11.460 に答える