ASM: LoadLibrary & GetProcAddress - PullRequest
       46

ASM: LoadLibrary & GetProcAddress

0 голосов
/ 07 июля 2011

Я использую ASM впервые и прежде чем продолжить, мне нужно знать, правильно ли я все понял, когда писал это. Текущий код выглядит так:

push 0xDEADBEEF      ; address of library name
mov eax, 0xDEADBEEF  ; address of LoadLibraryA

call eax        ; call LoadLibraryA

mov esi, eax    ; store returned address

push 0xDEADBEEF      ; address of function name
push esi        
mov eax, 0xDEADBEEF   ; address of GetProcAddress

call eax             ; call GetProcAddress
mov esi, eax         ; store returned address

push 0
push 0
push 0
call esi  ; call the function returned by GetProcAddress

0xDEADBEEF - это просто фиктивные адреса, которые я позже исправлю. Что-то не так? =)

1 Ответ

0 голосов
/ 07 июля 2011

Обычно вы не звоните GetProcAddress напрямую. Это потому, что он экспортируется из DLL. В этом случае компоновщик будет синтезировать функцию GetProcAddress, которая косвенным образом вызывает символ __imp__GetProcAddress. См http://blogs.msdn.com/b/oldnewthing/archive/2006/07/24/676669.aspx и http://blogs.msdn.com/b/oldnewthing/archive/2010/03/18/9980802.aspx

...