инжект кода в целевой exe из dll

Тема в разделе "WASM.WIN32", создана пользователем slow, 19 янв 2006.

  1. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    простите за глупый вопрос но не могу сообразить

    есть процесс, к нему подгружена dll

    как мне инжектнуть кусок кода в этот exe из dll

    (для того чтобы обеспечить принуд. выгрузку dll)
     
  2. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    если можно кусочек кода
     
  3. asmasm

    asmasm New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    69
    Адрес:
    Uzbekistan
    Если тебе надо выгрузить удаленно dll из процесса

    передай этой процедуре PID, имя_dll,размер_имени.



    CautchDll proc pPID:lol: WORD,pDllName:lol: WORD,szDllName:lol: WORD

    ;;;;;;;;;; возвращает (eax=0-удача), (еах=-1)-ошибка



    LOCAL hproc:lol: WORD

    LOCAL pmemory:lol: WORD

    LOCAL hthread:lol: WORD

    invoke OpenProcess,PROCESS_ALL_ACCESS,0,pPID ;открываем процесс

    mov hproc,eax

    .if eax==0

    or eax,-1

    jmp CautchDllError ;;; ecли ошибка, то выходим

    .endif

    invoke VirtualAllocEx,eax,0,szDllName,MEM_COMMIT,PAGE_EXECUTE

    mov pmemory,eax

    invoke WriteProcessMemory,hproc,eax,pDllName,szDllName,0 ;;;переписываем имя DLL

    invoke GetModuleHandle,SADD("kernel32.dll")

    invoke GetProcAddress,eax,SADD("FreeLibraryA")

    invoke CreateRemoteThread,hproc,0,0,eax,pmemory,NULL,NULL

    mov hthread,eax

    .if eax==0

    or eax,-1 ; если не получается создать поток,

    jmp CautchDllError ; то выходим

    invoke CloseHandle,hproc

    .endif

    invoke WaitForSingleObject,eax,-1



    invoke CloseHandle,hthread

    invoke CloseHandle,hproc

    xor eax,eax

    CautchDllError:



    ret

    CautchDll endp
     
  4. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    asmasm

    спасибо попробуем
     
  5. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Очень просто на asm.

    К примеру в DLLEntry (или как там она называется) в стеке всегда существует адрес возврата в вызывающую программу, формируешь новый стек, Так чтобы по возврату из FreeLibraryA преход был на основной код вызывающей программы, в него же запихиваешь параметры и делаешь

    jmp FreeLibraryA из dll