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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
#1

VirtualProtect - C++

13.10.2009, 12:49. Просмотров 2690. Ответов 9
Метки нет (Все метки)

Где можно узнать значение последнего параметра VirtualProtect (typedef DWORD* PDWORD)
PDWORD lpflOldProtect? Если ставить 0 функция всегда будет терпеть неудачу и возвращать 0.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2009, 12:49     VirtualProtect
Посмотрите здесь:

VirtualProtect и отловление ошибок - Visual C++
Здравствуйте. Есть следующий кусок исходника: ... #define MEMBLOCK_SIZE 4096 LPVOID lpMemoryBuffer; LPVOID lpReserved; DWORD...

Адресация процедур на asm (дублирование кода, VirtualProtect) - C++ Builder
Здравствуйте. Не вдаваясь в мотивацию, приведу упрощенный пример для демонстрации проблемы. Помогите, пожалуйста, в ее устранении или...

Некорректное возвращения значения GetModuleFileName и VirtualProtect + MessageBox - C++ WinAPI
Здравствуйте. Осваиваю использование dll. В инете нашел простенький пример использование. Но что то пошло не так... MyDLL.DLL ...

VirtualProtect - Delphi WinAPI
Привет всем. Не могу получить доступ к User32.dll. procedure TForm1.Button1Click(Sender: TObject); var d1,d:dword; buf1:dword; ...

Аналог VirtualProtect - C Linux
есть ли в Линукс аналог VirtualProtect Добавлено через 6 минут 55 секунд функцию нашел токо вот чето не получается void...

.NET 4.x Использование VirtualProtect - C#
Добрый день, пользователи форума. Вопрос отражается в названии темы. Объясните пожалуйста, на самых примитивных примерах, каким образом...

Обход VirtualProtect - Delphi WinAPI
Здравствуйте уважаемые форумчане. Собственно пишу что-то наподобие чита к игре и возникли некоторые проблемы. Античит мне не даёт...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
13.10.2009, 13:52     VirtualProtect #2
http://msdn.microsoft.com/en-us/libr...98(VS.85).aspx

DWORD OldProtect;
VirtualProtect( lpAddress, wSize, flNewProtect, &OldProtect);
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
13.10.2009, 16:29  [ТС]     VirtualProtect #3
Я знаю, какие параметры у VirtualProtect меня интересует где можно инициализировать OldProtect?
При значении нуль или неинициализированной переменной функция всегда терпит неудачу.
То есть вот так не пройдет:
const int Addr1=0x32423425;
char st[256]="";
int NumberOfBytes1=sizeof(st);

C++
1
VirtualProtect((LPVOID)Addr1, NumberOfBytes1, PAGE_EXECUTE_READWRITE, 0);
Или:
C++
1
2
DWORD *pflOldProtect;
VirtualProtect((LPVOID)Addr1, NumberOfBytes1, PAGE_EXECUTE_READWRITE, pflOldProtect);
Где можно инициализировать OldProtect?
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
13.10.2009, 17:56     VirtualProtect #4
NightmareCode,
lpflOldProtect
A pointer to a variable that receives the previous access protection value of the first page in the specified region of pages. If this parameter is NULL or does not point to a valid variable, the function fails.
Подчеркнутое я смотрю ты заметил, а теперь прочитай внимательно то, что написано синим шрифтом.
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
13.10.2009, 19:42  [ТС]     VirtualProtect #5
Ну и как получить указатель на переменную, которая возвращает значение предыдущего уровня защиты в определенном регионе страницы?

P.S. Сам то пользовался этой функцией?
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
13.10.2009, 21:51     VirtualProtect #6
Цитата Сообщение от NightmareCode Посмотреть сообщение
Я знаю, какие параметры у VirtualProtect меня интересует где можно инициализировать OldProtect?
Раз ты задаеш такой вопрос, после того как тебе дали ссылку в мсдн, значит нихрена ты не знаеш, слушать никого нехочеш, и учить ничего не собираешся. Чего ты вообще тут забыл? При том что я написал тебе уже правильный ответ, который ты даже попробовать не удосужился.

Цитата Сообщение от NightmareCode Посмотреть сообщение
При значении нуль или неинициализированной переменной функция всегда терпит неудачу.
То есть вот так не пройдет:
C++
1
2
3
4
const int Addr1=0x32423425;
char st[256]="";
int NumberOfBytes1=sizeof(st);
VirtualProtect((LPVOID)Addr1, NumberOfBytes1, PAGE_EXECUTE_READWRITE, 0);
Или:
C++
1
2
DWORD *pflOldProtect;
VirtualProtect((LPVOID)Addr1, NumberOfBytes1, PAGE_EXECUTE_READWRITE, pflOldProtect);
Где можно инициализировать OldProtect?
Естественно эта ересь не пройдет. В коде 2 логические ошибки.

Прочитай мсдн по каждому параметру ВНИМАТЕЛЬНО.
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
13.10.2009, 22:57  [ТС]     VirtualProtect #7
Сам-то хоть использовал функцию VirtualProtect. Что ты мне ссылку на мсдн суешь я и так сначала туда захожу, а потом если что непонятно на форум. Где ты ответил на мой вопрос покажи выдели цитатой, а не цитируй мсдн!
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
13.10.2009, 23:07     VirtualProtect #8

Не по теме:

NightmareCode, ты жжешь....



NightmareCode, ты чувствуешь разницу между указателем на переменную и переменной указателем (причем не инициализированной)?

Тебе привести цитату Alexandoros? Смотри второй пост, прямо под ссылкой.
NightmareCode
14 / 7 / 1
Регистрация: 20.09.2009
Сообщений: 89
14.10.2009, 01:21  [ТС]     VirtualProtect #9
Возможно ли изменить значение в адресном пространстве с использованием функции WriteProcessMemory константное значение, если поменять уровень защиты с помощью VirtualProtect к read, write?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2009, 02:16     VirtualProtect
Еще ссылки по теме:

VirtualAlloc и VirtualProtect? - Delphi
VirtualAlloc и VirtualProtect что из себя представляют даные функцыи,как с ними работать и что они делают, добрые программисты...

Функция VirtualProtect возвращает false на ровном месте, почему? - Assembler
А ведь и надо-то просто-напросто установить атрибуты на уже имеющиеся страницы памяти... Ну короче, есть СВОЯ dll ничё из себя не...


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

Или воспользуйтесь поиском по форуму:
Alexandoros
227 / 65 / 4
Регистрация: 02.06.2009
Сообщений: 280
14.10.2009, 02:16     VirtualProtect #10
Если прав на VirtualProtect хватит, то можно.
Yandex
Объявления
14.10.2009, 02:16     VirtualProtect
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru