Using IDA Pro for analysing a file, I have run across some code that I don't quite understand:
mov eax, ss:dword_410CC5[ebp] ;
call eax; Indirect Call Near Proc
Going to this address - 410CC5 - I see this:
ile.........Clos
eHandle.........
I assumed that in the first code snippet in EAX the name of library function is stored, which is then called by
call eax; Indirect Call Near Proc
But the problem is the address 410CC5 does not fully correspond to this name (see attachment). At this address are actually just zeroes.
Does that anyway means that at
call eax; Indirect Call Near Proc
we call CloseHandle? If so, then why isn't the right address passed to EAX?
When a call
instruction appears in the disassembly, it means that another routine/function is called at that point.
If the routine has an absolute address, the instruction will appear like call 0xaabbccdd
.
If the address of the function being called is a dynamic address (this kind of addresses are resolved when the OS loads the executable), it's called via an enregistered value.
However, this instruction is used for calling a routine—that's all.