внедрение кода в чужой процесс

Тема в разделе "WASM.WIN32", создана пользователем vadak, 25 фев 2012.

  1. vadak

    vadak New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2010
    Сообщения:
    41
    Всех приветствую!
    Хочу внедрить свой код в удаленный поток процесса explorer.exe, нашел статью на http://habrahabr.ru/blogs/cpp/95305/ решил переписать на fasm'e, тут же возникли некоторые вопросы: какой участок кода хотел внедрить автор топика. нужно ли импортировать библиотеки во внедряемом коде к примеру для вызова функции MessageBox?
    сам код:
    Код (Text):
    1. format PE GUI 4.0
    2. include 'd:\vadak\112\asmatic\fasm\INCLUDE\win32a.inc'
    3. section '.text' data readable writeable
    4. pentry32 PROCESSENTRY32
    5. target db 'explorer.exe',0
    6. snap dd 0
    7. hModule dd 0
    8. hNewModule dd 0
    9. ByteOfWriten dd 0
    10. section '.code' code readable executable
    11. ;-----sub_procedures-----;
    12. GetProcessID:
    13.     invoke CreateToolhelp32Snapshot, 2, 0
    14.     mov [snap], eax
    15.     mov [pentry32.dwSize], sizeof.PROCESSENTRY32
    16.     invoke Process32First, [snap], pentry32
    17. @@: mov ecx, 12
    18.     lea edi, [pentry32.szExeFile]
    19.     mov esi, [esp+4]
    20.     repe cmpsb
    21.     cmp ecx, 0
    22.     jz exit
    23.     invoke Process32Next, [snap], pentry32
    24.     jmp @R
    25. exit:
    26.     invoke CloseHandle, [snap]
    27.     mov eax, [pentry32.th32ProcessID]
    28.     retn 4
    29. ;-----entry_point-----;
    30. entry $
    31.     stdcall GetProcessID, target
    32.     push eax
    33.     invoke GetModuleHandleA, 0
    34.     mov [hModule], eax
    35.     pop eax
    36.     invoke OpenProcess, PROCESS_ALL_ACCESS, 1, eax
    37.     push eax
    38.     invoke VirtualAllocEx, eax, 0, 255, MEM_COMMIT, PAGE_READWRITE
    39.     mov [hNewModule], eax
    40.     pop eax
    41.     invoke WriteProcessMemory, eax, [hNewModule], [hModule], 255, ByteOfWriten
    42.     invoke ExitProcess, 0
    43. section '.import' import data readable writeable
    44. library kernel32,'kernel32.dll'
    45.  
    46. import kernel32,\
    47.     ExitProcess,'ExitProcess',\
    48.     CreateToolhelp32Snapshot,'CreateToolhelp32Snapshot',\
    49.     Process32First,'Process32First',\
    50.     Process32Next,'Process32Next',\
    51.     CloseHandle,'CloseHandle',\
    52.     GetModuleHandleA,'GetModuleHandleA',\
    53.     VirtualAllocEx,'VirtualAllocEx',\
    54.     OpenProcess,'OpenProcess',\
    55.     WriteProcessMemory,'WriteProcessMemory'
     
  2. vadak

    vadak New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2010
    Сообщения:
    41