Как написать команду сборки в olydbg, которые загружают "user32.dll"? - PullRequest
1 голос
/ 29 ноября 2011

Я использую olydbg 1.10, и я хотел бы загрузить динамическую библиотеку "user32.dll".

когда я пишу команду push "user32.dll", она не работает.

мне нужно поместить его в стек, прежде чем я вызову kernel32.LoadLibraryA но команда

         push 'user32.dll'
         call kernel32.LoadLibraryA

это код, который я хочу вставить в olyDbg:

push ebp ; 
mov ebp,esp
sub esp,4; 
push dword user32dll
call _LoadLibraryA@4

не работает, почему, я не могу понять.

Ответы [ 3 ]

1 голос
/ 01 декабря 2011

Вам просто нужно записать строку user32.dll в какое-то место, а затем отправить адресное местоположение и вызвать loadlibrary. Обратите внимание, что после user32.dll должно быть 0x00, поэтому его NULL завершается и ничего не путается:)

0 голосов
/ 30 ноября 2011

В NASM вы можете сделать что-то вроде:

global  _main
extern  LoadLibraryA

section .text
  _main:
    push user32dll      ; push argument to `LoadLibrary` (name of dll) onto stack
    call LoadLibraryA   ; call LoadLibary, on success handle will be stored in eax
    add     esp, 4      ; fix the stack
    ret                 ; return
user32dll:
db      'user32', 0     ; name of dll to be loaded by LoadLibary
                        ; notice that you don't need to add the extension (.dll)
0 голосов
/ 29 ноября 2011

Как я понимаю, в памяти требуется место для хранения строки "user32.dll" и указатель на стек для вставки в стек.

...