我有一个 DLL,我打算发送给第 3 方,我想通过限制它仅在连接特定 USB 设备时运行来保护它。我正在使用 setupapi 获取设备的序列号(通过调用 SetupDiGetDeviceInstanceId())。
我想让验证难以跟踪,以防有人反汇编 DLL。例如,对 SetupDiGetDeviceInstanceId 的简单调用是可跟踪的,如果有人想在没有来自 USB 的正确序列的情况下使用我的 DLL,他可以轻松地在汇编代码中查找我的 strcmp 并更改if(strcmp(...) == 0)
为if(strcmp(...) == 1)
.
什么是保护我的代码免受逆向工程的好方法(最好是“简单”)?是否有可能我可以使用不同的 API(除了 setupapi)来解决这个问题?
提前致谢!