2

我编写了一个使用 C 语言编写的各种库的 pdf 查看器。这个 C 代码可能很容易被利用。而且要检查的行太多了。我将不得不假设此代码可能包含可利用的错误。

问题是 C 代码非常简单。字节流在一端输入,位图(也是字节流)从另一端输出。

受谷歌浏览器的启发,我正在考虑创建一个单独的进程来进行解码和页面渲染。理想情况下,这应该在一个绝对无权做任何事情的进程中执行,除了读取它拥有的一个输入流,并在另一端输出到字节流(一些未压缩的位图)。

我认为该过程不应该做的是:

  • 任何磁盘访问
  • 打开套接字
  • 有限的内存使用量
  • 与其他进程访问共享内存
  • 加载其他dll
  • ... 还要别的吗?

那可能吗?这是在某处描述的吗?

4

2 回答 2

1

如果你有源代码 - 你可以检查它没有做描述的事情。好吧,限制可用内存有点困难。但是,您可以使用SetProcessWorkingSetSize.

此外,在您构建可执行文件后,您可以检查其 DLL 导入表(通过依赖项walker)以确保它不会访问任何文件/套接字函数。

于 2010-11-19T22:37:45.690 回答
1

这真的不可能。最终,任何潜在的漏洞利用代码都将以该进程运行的任何特权运行。如果您以标准用户身份运行它,那么您将限制可能造成的损害,但最好的办法是尽可能多地修复代码。

于 2010-11-20T04:05:45.340 回答