![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| witeman |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.3.2005 Где: г.Тюмень Репутация: нет Всего: нет |
Здравствуйте. У меня такой вопрос: существует ли такой способ (или функция),
с помощью которого можно записать в память, точнее , в определённый адрес памяти записать некоторую переменную или число. Ведь существует много ,так называемых, "взломщиков игр", которые работают ,если я не ошибаюсь, именно таким образом. Заранее благодарен. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
заводится указатель, которому присваивается адрес необходимой ячейки...
-------------------- СУВ, Partizan. |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Аха... канэшна... так тебе винда и даст просто так, без всяких, в память чужого процесса залезть... да еще поменять что-то там...
гм... а какая ячейка "необходимая"? -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
винда, linux работают в защищенном режиме со всеми вытекающими последствиями
программа не может просто так обраьиться по любому адресу, так как ей необходимо иметь некоторые полномочия размер поля сегмента данных программы контролируется полем размера сегмента. Это не позволяет образаться по адресам вне отведенного программе адресного пространства -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: 2 Всего: 5 |
Используйте:
OpenProcess() ReadProcessMemory() WriteProcessMemory() VirtualProtect() и т.д. Для использования данных функций нужны соответствующие привилегии --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Но к крякам чужих игрушек это отношения не имеет. Перед тобой долгий путь изучения или короткий - списывания. Зависит от цели. |
|||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Ответ на этот вопрос зависит от того, что именно нужно сделать. И прежде всего о какой памяти идет речь -- физической или виртуальной?
--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
| Doc_d0s |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: 2 Всего: 3 |
Тут правильно говорят, если хчешь читать абсолютно любую ячейку из доступной памяти то тут на пути стоит ОС, о если только своей программы, тогда просто пиши адрес, какой нужно, он там сложиться с сегментной частью и всЕ
--------------------
Админ- это вождь Apache'й :) |
|||
|
||||
| Helicopterr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: 2 Всего: 3 |
Ну это не самая страшная преграда. Программа подлежащая разведке может защищать свою память. -------------------- people can fly |
|||
|
||||
| adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: 2 Всего: 5 |
И ось на пути, и программа память защищает, но ось также предоставляет API для обхода всего этого.
Ещё раз говорю: почитайте про OpenProcess() ReadProcessMemory() WriteProcessMemory() - для доступа в адресное пространство другого процесса. Прога может защитить память, только используя флаги в таблицах, описывающих адресное пространство её процесса. Или шифрованием. В первом случае флаги устанавливаются функцией VirtualProtect(). Ей же они и снимаются. Технология перехвата API базируется именно на этих механизмах. Если у вас права админа, то для вас нет ни каких ограничений в использовании этих функций. --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |