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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 19:43   #1
Dr-Freeman
Новичок
Джуниор
 
Регистрация: 11.02.2015
Сообщений: 1
По умолчанию Доступ к памяти

Есть известный адрес в памяти с известным значением int
Хотел бы проверить это значение после того как введу адрес памяти вручную.

Прошу помощи. Искал как сделать права отладчика, но так и не понял как изменить переменную сторонней(тоже моей) программы.

Код:
#include <iostream>
#include <conio.h>

using namespace std;
int main()
{
	int temp = 0;

	cin >> temp; Готовность((int*)temp);

	_getch()
	return 0;
}

void Готовность(int *VarY)
{
	if (*VarY == 67890)
	{
		cout << "Connected   ";
	} 
	else
	{
		cout << "Disconnected";
	}
}

Последний раз редактировалось Stilet; 12.02.2015 в 19:11.
Dr-Freeman вне форума Ответить с цитированием
Старый 11.02.2015, 19:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как изменить переменную сторонней(тоже моей) программы.
http://www.programmersforum.ru/showthread.php?t=139423
http://www.programmersforum.ru/showthread.php?p=689205
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2015, 15:56   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Операционная система защищает адресное пространство одного приложения от вторжения другого приложения. Поэтому при неправильном обращении к указателям, возникает ошибка, так как нарушаются права доступа к памяти. "Memory corruption" это называется.

Полный доступ к процессам существующим в системе, имеет ядро операционной системы.

В первую очередь, нужно скачать Windows DDK, где содержатся заголовочные файлы и статические библиотеки для написания драйверов в нулевом кольце защиты.
Во-вторых, вам нужно изучать, как пишутся драйвера для операционной системы

Простейший драйвер выглядит так:
Код:
#define _X86_

#include <ntddk.h>
#include <wdm.h>

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) 
{ 
return( STATUS_SUCCESS ); 
}
Строка компиляции драйвера:
Код:
cl driver.c /link /entry:DriverEntry /subsystem:native /out:driver.sys
На выходе получается driver.sys который копируется в директорию windows/system32/drivers

Для установки драйвера в системе понадобится .inf файл.
Код:
[Version]
Signature="$WINDOWS NT$"
Class = Unknown
Provider = "Driver"
DriverVer = 22/10/2014,0.0.0.1


[ControlFlags]
ExcludeFromSelect=*

[DestinationDirs]  
DefaultDestDir=12

[SourceDisksNames]
3426 = "C:\DDK\bin\x86\x86"

[SourceDisksFiles]
driver.sys = 3426

[DefaultInstall]
CopyFiles = Driver.CopyFiles
AddReg = Driver.AddReg

[Driver.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,driver.sys

[Driver.CopyFiles]
driver.sys

[DefaultInstall.Services]
AddService=driver, 0x00000002, DService

[DService]
DisplayName="Driver Driver Driver"
ServiceType=1
StartType=0
ErrorControl=1
ServiceBinary=%12%\driver.sys
После этого драйвер запустится при следующем запуске операционной системы.

Из драйвера можно получить доступ к памяти необходимого процесса.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка Dll и доступ CallNextHookEx к памяти Smogg Win Api 1 24.02.2012 17:16
Доступ к ячейкам памяти Hemul Общие вопросы C/C++ 3 17.05.2011 22:16
как из одного процесса получить доступ к памяти, занятой другим процессом? Bиталий Qt и кроссплатформенное программирование С/С++ 7 09.02.2011 19:38
Прямой доступ к памяти Sibedir Общие вопросы Delphi 20 13.06.2010 17:19
Доступ к памяти другой программы BaronTreep Win Api 10 31.05.2009 07:16