Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 18:58   #1
Alexey_68
Пользователь
 
Регистрация: 01.03.2013
Сообщений: 39
По умолчанию Вопрос по ReadProcessMemory

Здравствуйте, прошу помощи в следующем вопросе.
Подключаюсь к процессу, в цикле ищу значение (текстовое), в IDE (CodeGear C++ Builder 2007), компилируется и работает, но если запустить вне среды, то программа запускается, подключается к процессу, но не ищет значение.
В чём может быть проблема?
Код:
#include <windows.h>
#include <iostream>
#include <winnt.h>
#include <vcl.h>

CHAR c[] = "main";
using namespace std;



int main()
{
HWND hwnd;
HANDLE handle;
DWORD pid, d;
DWORD test, t;

hwnd = FindWindowA(NULL, "test");
GetWindowThreadProcessId(hwnd, &pid);
handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
cout << "PID\n" << pid << endl;


//Поиск значения в памяти
for (int d = 0x00130000; d <= 0x00170000; d++)
{
	ReadProcessMemory(handle,(LPVOID) d, &t, 4, NULL);
if (t == 0x676f7270)//(prog)
{
printf("%x0\n", d);
printf("Ok\n");
}

}

WriteProcessMemory(handle, (LPVOID)0x00149598, c, 4, NULL);

printf("%x\n", test);
system("pause");


	return 0;
}
screenshot's
http://www.imageup.ru/img276/1266626/with_ide.jpg.html
http://www.imageup.ru/img276/1266627...t_ide.jpg.html

С Уважением Алексей.

Последний раз редактировалось Stilet; 27.03.2013 в 22:25.
Alexey_68 вне форума Ответить с цитированием
Старый 27.03.2013, 19:41   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Где получение привилегии SeDebugPrivilege?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 27.03.2013, 20:10   #3
Alexey_68
Пользователь
 
Регистрация: 01.03.2013
Сообщений: 39
По умолчанию

я извиняюсь, но как применить SeDebugPrivilege в коде?
Привилегии нужно получить для своего процесса? можно подробнее?

Последний раз редактировалось Alexey_68; 27.03.2013 в 20:20.
Alexey_68 вне форума Ответить с цитированием
Старый 27.03.2013, 22:13   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
Сообщение от Alexey_68 Посмотреть сообщение
я извиняюсь, но как применить SeDebugPrivilege в коде?
Привилегии нужно получить для своего процесса? можно подробнее?
Так, например.

Код:
void EnableDebugPrivilege(bool fEnable)
{
	HANDLE hToken;

	if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
	{
		TOKEN_PRIVILEGES tp;
		tp.PrivilegeCount = 1;
		LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
		tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
		AdjustTokenPrivileges(hToken, false, &tp, sizeof(tp), NULL, NULL);
		CloseHandle(hToken);
	}
}
Son Of Pain вне форума Ответить с цитированием
Старый 27.03.2013, 23:27   #5
Alexey_68
Пользователь
 
Регистрация: 01.03.2013
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Так, например.

Код:
void EnableDebugPrivilege(bool fEnable)
{
	HANDLE hToken;

	if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
	{
		TOKEN_PRIVILEGES tp;
		tp.PrivilegeCount = 1;
		LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
		tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
		AdjustTokenPrivileges(hToken, false, &tp, sizeof(tp), NULL, NULL);
		CloseHandle(hToken);
	}
}
Благодарю, всё работает нормально!
С Уважением Алексей.
Alexey_68 вне форума Ответить с цитированием
Старый 28.03.2013, 03:33   #6
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
Привилегии нужно получить для своего процесса? можно подробнее?
А вы не пробывали читать доки хотя бы для используемых функций?..
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ReadProcessMemory и WriteProcessMemory Berlioz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 12.11.2012 17:42
ReadProcessMemory работает?? NEoMASTERR Win Api 1 03.12.2011 00:51
ReadProcessMemory, меняющийся lpBaseAdress Lime Общие вопросы Delphi 23 17.08.2011 16:35
ReadProcessMemory/Не понятные явления coNsept Общие вопросы C/C++ 2 31.07.2011 19:33
ReadProcessMemory+TMemoryStream Bad-XxX Общие вопросы Delphi 2 10.10.2010 20:11