Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
14 / 14 / 2
Регистрация: 03.02.2010
Сообщений: 142

Запуск кода в другом процессе

15.02.2011, 19:08. Показов 1576. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Доброго Времени Суток!! Пишу программу которая должна запустить некоторый ехе-код внутри другого процесса, но проблема в том что программа просто вылетает на CreateRemoteThread. Да ещё проблема в том, что я понятия не имею как должен быть устроен код, внедряемый в процесс.
Сам запускающий код выглядит следующим образом:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
format pe gui 4.0
include 'win32ax.inc'
 
.data
p_info  PROCESS_INFORMATION
s_info  STARTUPINFO
hFile   rd 1
_out    rb 30
NumOfB  rb 100
mem     rd 1
size    rd 1
buff    rb 1536
 
.code
start:
mov [s_info.cb],sizeof.STARTUPINFO
mov [s_info.hStdError],0
mov [s_info.hStdOutput],0
mov [s_info.hStdInput],0
mov [s_info.dwFlags],100h                 ; STARTF_USESTDHANDLES
 
invoke CreateProcess,"C:\Windows\notepad.exe",NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL, s_info, p_info
invoke CreateFile,"InjectProg.EXE",GENERIC_READ,FILE_SHARE_WRITE+FILE_SHARE_READ,0,\
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
cmp    eax,-1
je     _err
mov    [hFile],eax
invoke GetFileSize,[hFile],NULL
mov    [size],eax
invoke wsprintfA,_out,"Размер файла %d",[size]
invoke VirtualAllocEx,[p_info.hProcess],0,[size],MEM_COMMIT,PAGE_EXECUTE_READWRITE
mov    [mem],eax
;invoke wsprintfA,_out,"Освобождено по адр. %d",[mem]
;invoke MessageBox,0,_out,"ProgDLL0.DLL",0
invoke ReadFile,[hFile],buff,[size],NumOfB,0
cmp eax,0
je _err
invoke CloseHandle,[hFile]
invoke WriteProcessMemory,[p_info.hProcess],[mem],buff,1536,0
;invoke CreateRemoteThread,[p_info.hProcess],0,0,[mem],0,0,0
;invoke CloseHandle,eax
exit:
invoke ExitProcess,0
_err:
invoke  MessageBox,HWND_DESKTOP,"error",invoke GetCommandLine,MB_ICONERROR
jmp exit
.end start
А так выглядит вводимый код, на счет которого у меня большие сомнения:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
format PE GUI 4.0
include 'win32a.inc'
 
section '.code' code readable executable
 
 
proc Inj
invoke MessageBox,0,"stop","stop",MB_OK
;--------помещаем текст--------------------------
invoke MessageBox,HWND_DESKTOP," После нажатия ОК откроется шрифт по настройкам меню",0,MB_OK
invoke FindWindowExA,<invoke FindWindow,'notepad',0>,0,'edit',0
mov    [hw],eax
invoke SendMessageA,[hw],WM_SETTEXT,0,msg
;--------первый вариант шрифта---------------------
invoke MessageBox,HWND_DESKTOP,"После нажатия ОК откроется изменённый шрифт(первый вариант)",0,MB_OK
invoke CreateFontIndirectA,lf1
invoke SendMessageA,[hw],WM_SETFONT,eax,TRUE
invoke DeleteObject,lf1
 
 
;-------второй вариант шрифта-----------------------------
invoke MessageBox,HWND_DESKTOP,"После нажатия ОК откроется изменённый шрифт(второй вариант)",0,MB_OK
invoke CreateFontIndirectA,lf2
invoke SendMessageA,[hw],WM_SETFONT,eax,TRUE
invoke DeleteObject,lf2
invoke ExitThread,0
ret
endp
 
 
section '.data' data readable writeable
lf1 LOGFONT \
12,7,\ ;lfHeight & lfWidth
0,0,\ ;lfEscapement(наклон отн. Х в 10х градуса) & lfOrientation
FW_NORMAL,0,0,0,\ ;lfWeight & lfItalic & lfUnderline & lfStrikeOut
RUSSIAN_CHARSET,\ ;lfCharSet
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,\ ;lfOutPrecision & lfClipPrecision & lfQuality
FF_MODERN+FIXED_PITCH,\ ;lpPitchAndFamily ;FIXED_PITCH=моноширинный=красивосорцен Ж)
<"Tw Cen MT",0> ;lfFaceName
 
lf2 LOGFONT \
12,7,\ ;lfHeight & lfWidth
0,0,\ ;lfEscapement(наклон отн. Х в 10х градуса) & lfOrientation
FW_NORMAL,0,TRUE,0,\ ;lfWeight & lfItalic & lfUnderline & lfStrikeOut
RUSSIAN_CHARSET,\ ;lfCharSet
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,\ ;lfOutPrecision & lfClipPrecision & lfQuality
FF_MODERN+FIXED_PITCH,\ ;lpPitchAndFamily ;FIXED_PITCH=моноширинный=красивосорцен Ж)
<"courier new",0>
 
msg db 'fedcb9870',0
hw rd 1
 
section '.idata' import data readable writeable
 
  library kernel,'KERNEL32.DLL',\
          user,'USER32.DLL',\
          shell,'SHELL32.DLL',\
          gdi,'GDI32.DLL'
 
  import user,\
         MessageBox,'MessageBoxA',\
         FindWindowExA,'FindWindowExA',\
         FindWindow,'FindWindowA',\
         SendMessageA,'SendMessageA'
 
  import gdi,\
         CreateFontIndirectA,'CreateFontIndirectA',\
         DeleteObject,'DeleteObject'
И что только не перепробывал, даж уже и не знаю почему он на CreateRemoteThread вылетает.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2011, 19:08
Ответы с готовыми решениями:

Захват и изменения байта в другом процессе
добрый вечер мне надо захватит и изменит байты в чит енгине выглядит так system.exe+F427C чет не изменяет const mous: ...

Запустить выполнение DLL в другом процессе
Привет. У меня есть простенькая DLL на C# тупо для теста, вот её код: using System; using System.Collections.Generic; using...

Отладка плагина, используемого в другом процессе
Доброго времени суток. Решил заняться написанием плагина для Revit (возникла одна потребность). Установил Revit 2018. Скачал Revit...

1
59 / 59 / 2
Регистрация: 22.01.2011
Сообщений: 187
16.02.2011, 19:56
YaMolekula, CreateRemoteThread нужно передать адресс потоковой функции, а ты просто отдал указатель на память. похоже надо парсить память и искать точку входа в функцию.
конечно это мое предположение, если я понял твой код. в asm не волоку.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.02.2011, 19:56
Помогаю со студенческими работами здесь

Выполнить код ассемблера в другом процессе
Собственно сабж. Возможно ли? HANDLE hProc = OpenProcess(OPEN_PROCESS_ALL_ACCESS, FALSE, pId); executeAssemblerInProcess(__asm() { ...

Имитация нажатия клавиш в другом процессе
как сделать, чтобы программа программно нажимала клавишу F1 в другом процессе каждые 5 сек (ну или любую другую клавишу)

Как отследить изменения в другом процессе(программе)
Есть программа, которая принимает данные с сервера, и показывает их ввиде таблицы, но это, впринципе, весь её функционал, программа всегда...

Доступ к данным в другом процессе, не используя методы multiprocessing
Всем привет. У меня есть два процесса. Использую multiprocessing.Process В одном процессе есть множество. Как можно получить это...

Запуск процедуры в фоновом процессе
Привет всем! Подскажите, пожалуйста, возможно ли средствами VB6 запустить процедуру в фоновом процессе так, чтобы не останавливалось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru