混淆的dll的安全性

时间:2013-02-18 20:17:26

标签: c security dll

我有一个严重混淆的原生win32 dll,功能未知,似乎没有调用其他dll的任何函数。我的问题是理论上这个代码能够修改其代码以造成任何伤害。子问题: - 是默认情况下动态加载的dll读取的代码部分还是可写的? - 如果代码不使用任何其他DLL,它仍然能够 做一些需要系统DLL代码的东西? 如果默认情况下没有加载加载dll的函数,它如何加载另一个dll并找到一个函数?

提前致谢。

1 个答案:

答案 0 :(得分:7)

  

此代码是否能够修改其代码以造成任何伤害。

是。事实上,即使不需要自我修改也可能造成伤害。

  

动态加载的dll的代码部分是默认只读还是可写?

默认情况下,DLL可以自行修改。他们需要拨打VirtualProtect才能这样做,但这完全有可能。

  

如果某个代码没有使用任何其他dll,它仍然可以执行一些需要系统dll中某些代码的操作吗?

DLL可以加载任何系统DLL并调用它选择的任何函数。

  

如果默认情况下没有加载加载dll的函数,它如何加载另一个dll并找到一个函数?

致电LoadLibraryGetProcAddress。如果DLL真的根本没有输入任何内容,那么抓住GetProcAddress是很棘手的。但并非不可能。如果Windows设法做到这一点,那么肯定也可以使用DLL。它可以做的一件事是读取加载到每个进程中的kernel32 DLL的内存中内容。它可以解析PE导出表并使用它来查找GetProcAddress的地址。