· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Нужен загрузчик EXE файлов.

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Окт 28, 2004 19:29:23

Отставить единственный. Моча в голову ударила - придумал другой способ. Запустить любой процесс (типа Calc.exe) c флагом CREATE_SUSPENDED, потом сделать WriteProcessMemory, те скопировать нужный кусок в чужой процесс и потом продолжить выполнение. В принципе должно работать, только надо не забыть поставить права доступа на страницы в чужом процессе PAGE_EXECUTE_READWRITE


Дата: Окт 28, 2004 19:32:01

Отставить единственный. Моча в голову ударила - придумал другой способ. Запустить любой процесс (типа Calc.exe) c флагом CREATE_SUSPENDED, потом сделать WriteProcessMemory, те скопировать нужный кусок в чужой процесс и потом продолжить выполнение. В принципе должно работать, только надо не забыть поставить права доступа на страницы в чужом процессе PAGE_EXECUTE_READWRITE


Дата: Окт 28, 2004 20:31:24 · Поправил: bogrus

alix„Попробовал заменит BASE с 40000 на 10000 при старте проги получил GPF“

Всё там нормально работает с BASE 10000, на w2k так точно (w98 у меня нету)
Vb оказывается ещё и ассемблерные листинги может генерить
_1046699318__loader.zip


Дата: Окт 29, 2004 10:39:01

to bogrus:

Спасибо.. А как VB может использовать ассемблер?


Дата: Окт 29, 2004 10:39:35

to Turkish:

А примеры копирования кода в чужой процесс есть?


Дата: Окт 29, 2004 11:04:48

Take Control of the Compile Process
alix Вот тут есть статья, но главное стяни оттуда код, там есть add-in к vb и примеры.
Потом надо пропатчить твой loader.dll, чтобы он грузил мишень по адресу 400000h, а не куда ему вздумается


Дата: Окт 29, 2004 12:47:42

Ок, спасибо! Сейчас посмотрю... :))


Дата: Окт 29, 2004 20:44:03

Есть.

format PE GUI 4.0

include '%include%\win32a.inc'


start:
mov eax,[endflag]
or eax,eax
jz @f
invoke LoadLibrary,_user
invoke MessageBox,0,_message,_file,MB_OK
ret
@@:
invoke GetStartupInfo,sinfo
invoke CreateProcess,0,_file,0,0,0,CREATE_SUSPENDED,0,0,sinfo,hProcess
invoke OpenProcess,PROCESS_ALL_ACCESS,0,[dwProcessID]
mov [hProcess],eax
invoke VirtualProtectEx,eax,400000h,2000h,PAGE_EXECUTE_READWRITE,hThread
mov [endflag],eax
invoke WriteProcessMemory,[hProcess],400000h,400000h,2000h,0
invoke OpenThread,THREAD_ALL_ACCESS,0,[dwThreadID]
push eax
invoke ResumeThread,eax
call [CloseHandle]
invoke CloseHandle,[hProcess]
ret

THREAD_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 3FFh)


endflag dd 0
_file db "desktop.exe",0
_message db "Running in another process",0
sinfo STARTUPINFO
;PROCESS_INFORMATION
hProcess dd 0
hThread dd 0
dwProcessID dd 0
dwThreadID dd 0


_user db "user32",0

data import
library kernel32,'KERNEL32',\
user32,'USER32'


include '%include%\apia\user32.inc'
include '%include%\apia\kernel32.inc'

end data

Написано на ФАСМЕ, думаю разберетесь что и как. Главное в скопрированном коде обязательно надо делать LoadLibrary на все дллки, кроме Кернела.


Дата: Окт 29, 2004 20:53:56

Для данной проблемы этот подход применим так: запускаем большой екзешник (на Explorer не коситься, с ним такое не пройдет). Разбиваем образ из ресурса на секции и копируем в чужой процесс, устанавливаем нужный нам контекст в треде и запускаем его.


Дата: Ноя 1, 2004 12:49:52

alix

Ахтунг !!!!! Смареть ф книгу Гари Неббета.


Дата: Ноя 2, 2004 09:46:18

[quote][/quote]

Что за Гари Неббет и где взять книгу?

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.471