Форум программистов, компьютерный форум, киберфорум
Наши страницы

Создание потока в чужом процессе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ интервал между датами http://www.cyberforum.ru/cpp-beginners/thread386885.html
Подскажите как написать программу для нахождения интервала в днях между двумя заданными датами. Пробовала брать нулевой год, и просчитывать количество дней до первой и второй даты, потом вычитать из...
C++ Умножение больших чисел Здравствуйте, я сегодня услышал, что есть какой-то метод умножения и вычитания огромных чисел через вектора, но так его и не нагуглил, помогите кто может. http://www.cyberforum.ru/cpp-beginners/thread386881.html
C++ Шифрование
Зашифровать исходное сообщение открытым ключом и разшифровать закрытым ключом. Сообщение формируется следующим образом: for(i=0;i<26;i++) //перевод в двоичный вид { for(j=0;j<6;j++) {...
C++ Массив с целыи числами
дан массив состоящий из 100 целых чисел. Вывести все числа которые встречаются в данном массиве: 1)несколько раз 2) только по одному разу Нужно выполнить с помощью входных и выходных данных. В...
C++ Помогите найти ошибку чтобы работала программа v c++ visual 6.0 http://www.cyberforum.ru/cpp-beginners/thread386866.html
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить:4. Сумму элементов массива, расположенных между первым и последним...
C++ Вывести массив вот так задан массив любой размерности, его нужно сначала мысленно разделить на две части : в нечетных строках слева будут все кроме последнего элемента строки, в четных строках только первый. затем нужно... подробнее

Показать сообщение отдельно
Fusix
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 133

Создание потока в чужом процессе - C++

19.11.2011, 00:01. Просмотров 690. Ответов 0
Метки (Все метки)

Всем привет. Возник вопрос...
Есть код:
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
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <windows.h>
 
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
DWORD __stdcall ThreadMain(LPVOID lpParameter);
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
 
DWORD __stdcall ThreadMain(LPVOID lpParameter)
{
    return true;
}
 
BOOL Inject(HANDLE hProc, DWORD(WINAPI* ThreadMain)(LPVOID))
{
    DWORD ThreadId;
    DWORD ByteOfWriten;
    LPVOID hModule = GetModuleHandle(0);
    LPVOID *NewMemory;
 
    DWORD size=((PIMAGE_OPTIONAL_HEADER)((LPVOID)((BYTE*)(hModule)+((PIMAGE_DOS_HEADER)(hModule))->e_lfanew+sizeof(DWORD)+sizeof(IMAGE_FILE_HEADER))))->SizeOfImage;
 
    NewMemory = (LPVOID*)VirtualAllocEx(hProc, 0, size, MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
 
    if(NewMemory == NULL) return false;
 
    WriteProcessMemory(hProc, NewMemory, hModule, size, &ByteOfWriten);
 
    if(ByteOfWriten != size) return false;
 
    HANDLE hThread = CreateRemoteThread(hProc, NULL, 0, ThreadMain, NewMemory, 0, &ThreadId);
 
    if(hThread == 0) return false;
 
    return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int PID = StrToInt(Edit1->Text);
    HANDLE hP = OpenProcess(PROCESS_ALL_ACCESS, false, PID);
    Inject(hP, &ThreadMain);
}
//---------------------------------------------------------------------------
На участке создания потока
C++
1
    HANDLE hThread = CreateRemoteThread(hProc, NULL, 0, ThreadMain, NewMemory, 0, &ThreadId);
Случается ошибка этого потока. Поток создается, но дело в том, что когда я пишу в свой процесс, все хорошо, а когда в чужой... поток завершается с ошибкой. Как мне кажется, оно не находит функцию старта в чужом процессе, хотя я её записываю.... почему так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru