Форум программистов, компьютерный форум CyberForum.ru

Как запустить удалённый поток? - C++

Восстановить пароль Регистрация
 
Abdula
9 / 9 / 1
Регистрация: 28.03.2012
Сообщений: 116
18.05.2012, 11:02     Как запустить удалённый поток? #1
есть структура ассембрерного кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cmds.instr_push_loadlibrary_arg = 0x68; //машинный код инструкции push
  cmds.loadlibrary_arg =(DWORD)((BYTE*)p_code
           + offsetof(INJECTORCODE, libraryname));  // до заполнение  dll либы
 
 
 
  cmds.instr_call_loadlibrary = 0x15ff; //машинный код инструкции call
  cmds.adr_from_call_loadlibrary =
  (DWORD)(&p_code + offsetof(INJECTORCODE, addr_loadlibrary));  // до заполнение  адреса LoadLibraryA()
            
 
  cmds.instr_push_exitthread_arg  = 0x68;
  cmds.exitthread_arg = 0;
 
  cmds.instr_call_exitthread = 0x15ff;
 
  cmds.adr_from_call_exitthread =
  (DWORD)(&p_code + offsetof(INJECTORCODE, addr_exitthread));
 
  cmds.addr_loadlibrary =
  (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
 
  cmds.addr_exitthread  =
  (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"),"ExitThread");
А также заполнение ей выделенной памяти и её запуск

C++
1
2
3
4
WriteProcessMemory(hProcess, p_code, &cmds, sizeof(cmds), &wr);
 
  HANDLE z = CreateRemoteThread(hProcess, NULL, 0,
               (unsigned long (__stdcall *)(void *))p_code, 0, 0, &id);
И освобождение

C++
1
2
3
4
  WaitForSingleObject(z, INFINITE);
  //освободить память
 
  VirtualFreeEx(hProcess, (void*)p_code, 0, MEM_RELEASE);

При выполнении CreateRemoteThread(); приложение удалённого потока обваливается, а если закоментировать, то всё остальное работает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 11:02     Как запустить удалённый поток?
Посмотрите здесь:

Как завершить поток C++
C++ как хранить поток?
как через поток .. C++
C++ Не получается запустить поток
Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. C++
Скопировать поток и добавить ошибки в поток C++
Статический метод как точка входа в поток - как избавиться C++
Как очистить входной поток от '\n'? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru