仅从受信任的库执行功能

时间:2017-11-23 14:04:55

标签: c++ security dll

我正在处理的项目的要求是能够在我的应用程序运行时将第三方功能插入我的应用程序。这些图书馆将由我团队中的其他同事提供。我想出了以下内容:

typedef Foo*(*Creater)();
Creater createFn = resolveSomeHow(dllName, "create");
Foo* pFoo = createFn();

因此,每个库开发人员都必须定义Foo* create()函数:

class Bar : public Foo {
}

extern "C" __declspec(dllexport) Foo* create() {
    return new Bar();
}

问题是,在部署之后,态度恶劣的人可以使用Foo* create()函数创建一个DLL,该函数返回带有恶意代码的Foo实例。我怎么能阻止这个?

我正在寻找一种不需要我依赖加密库或类似东西的解决方案。我知道没有什么可以阻止那些已经足够坚定但只是希望它不那么容易的人。

1 个答案:

答案 0 :(得分:0)

您可以在每个库中添加一个函数,使用伪随机生成器或您喜欢的其他方程式进行基本检查。

这个想法很简单:你的应用程序用一个值调用函数,库必须用序列中的下一个数字来回答(或者用你发送的数字运行等式的结果)。