问:对于dll中的函数地址在运行前是不知道的,那在文件代码中是如何编写 “call  函数地址” 之类的指令的呢?

答:虽然不知道函数的地址是什么,但是知道函数的地址写在哪里。可以[函数地址的指针]来读取函数的地址

比如:

            GetStartupInfoW函数的地址不是01220100(上面蓝色笔圈出的地址是小端序)

            而是01220100地址是处存放着GetStartupInfoW函数的地址 见下图

         

  如此一来,当PE装载器把函数地址输入IAT,代码只要到IAT找就行了,这也说明IAT的函数地址顺序是不能随意改动的

 

版权声明:本文为czlnb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/czlnb/p/13971538.html