我有一个严重混淆的本机win32 DLL与功能未知,它似乎没有调用其他dll的任何功能.我的问题是理论上这个代码能够修改其代码以造成任何伤害.子问题: - 是默认情况下动态加载的dll读取的代码部分还是可写的? - 如果代码不使用任何其他DLL,它仍然能够做一些需要系统DLL的代码?如果默认情况下没有加载加载dll的函数,它怎么能加载另一个dll并找到一个函数?
提前致谢.
此代码是否能够修改其代码以造成任何伤害.
是.事实上,即使不需要自我修改也可能造成伤害.
动态加载的dll的代码部分是默认读取还是可写?
默认情况下,DLL能够自行修改.他们需要打电话VirtualProtect才能这样做,但那是完全可能的.
如果代码不使用任何其他DLL,它仍然能够做一些需要系统DLL的代码吗?
DLL可以只加载任何系统DLL并调用它选择的任何函数.
如果默认情况下没有加载加载dll的函数,它怎么能加载另一个dll并找到一个函数?
通过电话LoadLibrary和GetProcAddress.如果DLL真的根本没有输入任何东西那么抓住它是很棘手的GetProcAddress.但并非不可能.如果Windows设法做到这一点,那么肯定也可以使用DLL.它可以做的一件事是读取加载到每个进程中的kernel32 DLL的内存中内容.它可以解析PE导出表并使用它来查找地址GetProcAddress.