開発プロセスでサードパーティのDLLを使用する必要があります。残念ながら、このDLLを変更したり、ライブラリの動作方法を指定することはできません。サードパーティDLLの静的変数を元の値にリセットする方法はありますか?
元のライブラリ開発者は、静的変数を介してメソッドに状態メカニックを導入しました。
例えば:
void foo()
{
static int a = 1;
if (a == 1)
{
/* some init logic */
a = 2;
}
}
いつか私たちは、元の状態にライブラリを持参する必要があります。
システム「ハッキング」なしで静的変数を元の値にリセットする方法はありますか?
現在のソリューションはFreeLibrary/LoadLibraryですが、避けたいのですが。
これは可能です。私は私のプロジェクトでこれをやった。ここで私はあなたがそれを始める方法を投稿しました:http://stackoverflow.com/questions/4308996/finding-the-address-range-of-the-data-segment/4316804#4316804 – Nawaz