私はクライアントの古い管理システムにアクセスできますが、彼はそれにさらに追加したいと考えています。最初にメインDLLを作成した人に連絡することができ、それから制御を取得して、それらを中心に構築を開始しました。しかし今、私もオリジナルを拡張する必要があり、リバースエンジニアリングするしかありません。
Reflector ProとJustDecompileを試しましたが、取得したソースにエラーがたくさんありました。ILSpyはうまく機能しますが、それでも、ILSpyから取得したサンプルコードは次のとおりです。
private static object ParseIntoValue(string stringValue, string targetType)
{
if (targetType != null)
{
if (<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1 == null)
{
<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1 = new Dictionary<string, int>(12)
{
...
};
}
int num;
if (<PrivateImplementationDetails>{C6507306-5ECF-4D05-8EE4-BD4D7781AC4E}.$$method0x600080f-1.TryGetValue(targetType, out num))
{
object result;
switch (num)
{
cases are here...
default:
goto IL_2A6;
}
return result;
}
}
IL_2A6:
return null;
}
ここに何らかの形の難読化が適用されていることは明らかです。JustDecompileとReflectorProからの逆コードは完全に役に立たなかった。ILSpyを使用すると、何も変更せずにいくつかのプロジェクトをコンパイルできます。
この難読化を特定するための支援が必要です(その場合)。元の開発者は、彼が難読化していないと言います。私はちょっと確信が持てません。
ありがとう。