サードパーティに送信する予定の DLL があり、特定の USB デバイスが接続されている場合にのみ実行するように制限して保護したいと考えています。setupapi を使用してデバイスのシリアル番号を取得しています (SetupDiGetDeviceInstanceId() を呼び出して)。
誰かが DLL を逆アセンブルした場合に備えて、検証を追跡しにくくしたいと考えています。たとえば、SetupDiGetDeviceInstanceId への単純な呼び出しは追跡可能であり、誰かが USB からの適切なシリアルなしで私の DLL を使用したい場合、彼はアセンブリ コードで私の strcmp を簡単に探してif(strcmp(...) == 0)
、if(strcmp(...) == 1)
.
私のコードをリバースエンジニアリングから保護するための良い(そしてできれば「簡単な」)アプローチは何でしょうか? それを処理する別の API (setupapi 以外) を使用できますか?
前もって感謝します!