使用IDA Pro分析文件,我遇到了一些我不太了解的代码:
mov eax, ss:dword_410CC5[ebp] ;
call eax; Indirect Call Near Proc
转到这个地址 - 410CC5 - 我看到了:
ile.........Clos
eHandle.........
我假设在EAX的第一个代码片段中存储了库函数的名称,然后由
调用call eax; Indirect Call Near Proc
但问题是地址410CC5并不完全对应此名称(参见附件)。在这个地址实际上只是零。
无论如何,这意味着在
call eax; Indirect Call Near Proc
我们叫CloseHandle?如果是这样,那么为什么不将正确的地址传递给EAX?
答案 0 :(得分:1)
当反汇编中出现call
指令时,表示此时调用了另一个例程/函数。
如果例程具有绝对地址,则指令将显示为call 0xaabbccdd
。
如果被调用函数的地址是动态地址(当OS加载可执行文件时解析了这种地址),则通过注册值调用它。
但是,此指令用于调用例程 - 全部。