-
-
[己解决]请教分析一下某dll在98系统下加载失败的大致原因
-
发表于:
2009-11-6 23:20
4483
-
[己解决]请教分析一下某dll在98系统下加载失败的大致原因
某一仅3k的dll,无源码,xp下LoadLibrary返回正确的HMODULE,在98下返回NULL。
此dll导入表如下:
KERNEL32.dll
lstrlenA
MultiByteToWideChar
USER32.dll
wsprintfA
ole32.dll
CoInitialize
CoCreateInstance
用OD的loaddll加载,停在dll模块入口,入口代码如下
xor eax, eax
inc eax
ret
单步跟踪下去,先是很诡异地ret到了ole32.dll的空间,然后一直到ret到kernel32.dll的空间就跟踪不下去了(98下面kernel32.dll在大于0x80000000的内存部分)
初步判断应该不是因为导入了98不支持的API函数的缘故,那几个导入函数所引用的dll在其导出函数表都有。另外也应该不是DllMain里面执行了什么非法语句,因为dll模块入口就一个return 1。那么到底可能是因为什么原因导致这个dll加载失败呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)