Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92

Цель прочитать память и вывести на экран

26.07.2009, 01:43. Показов 3892. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ имеется такой код. Цель прочитать память и вывести на экран(в учебных целях).
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
#include "windows.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    int i;
    BOOL tr;
    const int Addr_Str1=0xB8004002;
    DWORD pId;
    HANDLE ProcHandle;
    char *str=(char*)0xB8004002;
    char st[12];
    str="Hello World";
    cout<<"Enter PID process"<<endl;
    cin>>i;
    if(i!=0)
    {
    pId=i;
    ProcHandle=OpenProcess(PROCESS_ALL_ACCESS, false, pId);
    tr=ReadProcessMemory(ProcHandle, (LPCVOID)(Addr_Str1), &st, 12, NULL);
        if(tr==0)
        {
           cout<<"\aFunction fail"<<endl;
           return -1;
        }
        else
        {
        cout<<st<<endl;
        }
    }
    else
    {
        return -1;
    }
    return 0;
}
Скажите почему не работает?
Результат работы: Function fail
PID процесса(этой же самой проги) беру с помощью утилиты Process Explorer(надеюсь PID выдает правильно?)
Может невозможно прочитать эту область памяти?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.07.2009, 01:43
Ответы с готовыми решениями:

Прочитать и вывести на экран файл
Здравствуйте, задали сделать такое: &quot;Есть текстовый файл больше 2х строк (у меня 8 строк), надо прочесть и вывести на экран&quot;. Самое...

Прочитать массив из файла и вывести на экран
Дело в том что, существует массив, который мы записали в файл, есть необходимость из файла прочитать и выдать на экран. НО мой метод,...

Открыть txt-файл, прочитать, вывести на экран
Помогите , не получается открыть .txt, прочитать, вывести на экран #include &lt;sysdefs.h&gt;//подключаю класс String библиотеки VCL ...

23
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
27.07.2009, 07:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Alexiski Посмотреть сообщение
Значение чего не затирается? Строки - в этом я не сомневаюсь. А как насчет самой переменной vp?
Остановите этот кусок в отладчике и пройдите по шагам.
Вы увидите, что от значения 0xb80000ff, которое присвоилось при инициализации, в переменной vp ничего не остается.

С тем же успехом инициализацию можно вообще убрать.
C++
1
2
3
char *vp;
vp="Hello World";
cout<<vp<<endl;
Будет выведено Hello World, но это не имеет никакого отношения к тому, что я написал о Вашем коде. Вы используете именно этот непонятный физический адрес 0xB8004002, именно его передаете функции ReadProcessMemory и упорно не хотите услышать, что строки Hello World по этому адресу у Вас не окажется.
Провел отладку действительно адрес 0xb80000ff меняется на другой. Теперь я понял.
Спасибо!

Добавлено через 14 минут 26 секунд
Цитата Сообщение от Skirmisher Посмотреть сообщение
Провел отладку действительно адрес 0xb80000ff меняется на другой. Теперь я понял.
Спасибо!
Странно, но затирается даже, если объявлено с модификатором const
C++
1
2
3
4
    const int ipBase=0x8f0e00ff;
    const char *st=(char*)ipBase;
             st="Congratulations";
    cout<<st<<endl;
1
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
27.07.2009, 09:12
Цитата Сообщение от Skirmisher Посмотреть сообщение
Странно, но затирается даже, если объявлено с модификатором const
Ничего странного. При объявлении указателей могут быть 2 разных модификатора const

Вот в таком положении const означает неизменяемость того поля, куда указывает указатель:
C++
1
2
const char * st = (char*)ipBase;
char const * st = (char*)ipBase;
А вот в таком положении const означает неизменяемость самого указателя:
C++
1
char * const st = (char*)ipBase;
Соответственно, возможны оба модификатора сразу
C++
1
2
const char * const st = (char*)ipBase;
char const * const st = (char*)ipBase;
Правило для запоминания - читать дословно справа налево:
C++
1
2
3
4
5
const char * st = (char*)ipBase;  // st - указатель на char константный
char const * st = (char*)ipBase;  // st - указатель на константный char
char * const st = (char*)ipBase;  // st - константный указатель на char
const char * const st = (char*)ipBase;  // st - константный указатель на char константный
char const * const st = (char*)ipBase;  // st - константный указатель на константный char
1
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
27.07.2009, 10:43  [ТС]
const char * const st = (char*)ipBase; // st - константный указатель на char константный
Получается что невозможно теперь назначить переменной какое-либо значение(


Добавлено через 14 минут 48 секунд
Цитата Сообщение от Skirmisher Посмотреть сообщение
Получается что невозможно теперь назначить переменной какое-либо значение(
C++
1
2
const char * const st = (char*)ipBase;  // st - константный указатель на char константный
char const * const st = (char*)ipBase;  // st - константный указатель на константный char
А в чем разница?
0
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
02.08.2009, 04:16
Цитата Сообщение от Skirmisher Посмотреть сообщение
А в чем разница?
Никакой разницы. В этом месте можно менять местами тип и модификатор константы. Просто привел оба возможных варианта.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2009, 04:16

Прочитать файл и вывести его содержимое на экран
Программа выводит нужный текст из программы. Ну при этом еще выдает ошибку, как ее убрать? .model small org 100h ...

Прочитать с экрана 3 числа и вывести их на экран в порядке возрастания
БРАТИЯ, ПОМОГИТЕ!!! Прочитать с экрана 3 числа и вывести их на экран в порядке возрастания!! ЭТО НАДО СДЕЛАТЬ С if else!! C++ ONLY!

Засунуть несколько картинок в файл, прочитать их и вывести на экран
Всем привет. На днях решил создать такую штучку для своей игры: Мне надоело, что пользователь может заменить картинки персоонажей, так как...

Прочитать из файла массив, отсортировать, результат вывести на экран.
Разработать приложение, выполняющее следующие функции. Прочитать из файла массив строк символов. Отсортировать массив в лексикографическом...

Прочитать английский текст из файла и вывести на экран слова текста
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru