They are different:
In the first code:
mov edx, [ebp+ecx*4+8]
You are booting from the address: ebp+ecx*4+8
In the second code:
mov edx, [ebp+8] mov edx, [edx+ecx*4]
First you load the value stored in ebp+8
. Then you use it as the base address for the second download file.
In other words, the base address is stored in the memory location pointed to by ebp + 8
. It is not actually stored in the ebp
register itself.
source share