[Asm] 纯文本查看 复制代码 ; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv, const char **envp)
_main proc near
argc= dword ptr 8
argv= dword ptr 0Ch
envp= dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+argc]
push eax
mov ecx, [ebp+argc]
push ecx
call sub_401000
add esp, 8
xor eax, eax
pop ebp
retn
_main endp
上面的汇编对应的是c文件是:
[Asm] 纯文本查看 复制代码 int mw_add(int number1, int number2)
{
return number1 + number2;
}
int main(int argc, char** argv)
{
mw_add(argc, argc);
return 0;
}
=========================================
sub_401000 .text 00401000 0000000B 00000004 00000008 R . . . . . B . .
_main .text 00401010 00000017 00000004 0000000C R . . . . . B T .
从这里可以看出main的地址是0x401010,mw_add的地址是0x401000.
如果使用loadLibrary加载这个exe,返回的是hdl. 如果调用mw_add 是不是应该用hdl + 0x1000 ?
反汇编出的 0x400000,其实就是loadLibrary的hdl?
难道hdl 不会直接是0x401000,或者其他值?
难道IDA加载的所有exe 默认都以0x400000作为基地址?
|