-
-
为何从DLL的IMPORT TABLE中得不到正确的函数位置
-
发表于:
2004-10-3 15:47
4975
-
为何从DLL的IMPORT TABLE中得不到正确的函数位置
要得到自己程序装载的DLL中的一个函数的位置,一般是使用GetProcAdress函数,但现在我不想使用这个函数.因为每个DLL都有自己的导出函数表,使用它可以查得到的,所以我打算用它在程序中查kernel32.dll一些函数的位置.在这里就发现一些奇怪的事了:大部分函数查到的值与用GetProcAdress得到的值一样.但在EnterCriticalSection这个函数就不一样了.使用GetProcAdress得到的值为0x77f755de.而使用import table查到的值为0x77eb38f1.而且这个0x77eb38f1并根本不是一个正确的函数起始地址,调用它是会出错的.这里就搞不懂了,为什么import table中会有一个错误的值呢?应用程序在装载DLL的时候不也是使用它们的IMPORT TALBE来建造自己的IAT吗?是不是有好几种装载方式呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课