Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование ReadProcessMemory 
V
    Опции темы
SvetRus
Дата 15.11.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.6.2008

Репутация: нет
Всего: нет



Пытаюсь разобраться с использованием ReadProcessMemory().
Создал тестовое приложение, приложение должно запустить калькулятор и попытаться прочитать первый байт кода калькулятора. При запуске приложение не может выйти из while(), т.е. не происходит чтения. Что я делаю не так?
Код

int _tmain(int argc, _TCHAR* argv[])
{
    //тут информация о запуске процесса
    STARTUPINFO si;
    //очищаем
    ZeroMemory(&si,sizeof(STARTUPINFO));
    //тут храниться  информация о процессе
    PROCESS_INFORMATION pi;
    //грузим наш процесс
    CreateProcess(_T("C:\\WINDOWS\\system32\\calc.exe"),NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
    //буфер для хранения считаных байтов
    char* lpBuffer = new char [0xFF];
    //очищаем буфер 
    ZeroMemory(lpBuffer, 0xFF);
    //количество считанных байт
    DWORD dwRead = 0;
    //сдвиг чтения
    DWORD *offset = 0;
    //читаем
    while(!ReadProcessMemory(pi.hProcess, offset, lpBuffer, 1, &dwRead));
    //удаляем буфер
    delete [] lpBuffer; 
    return 0;
}


PM MAIL   Вверх
BorisVorontsov
Дата 16.11.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 4
Всего: 10



Жестоко... Во-первых, статические стуктуры зануляются обычным struct_name var_name = {0}. Во-вторых, когда какая-то WinAPI функция не отрабатывает, как правило, смотрят GetLastError().


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
dumb
Дата 16.11.2008, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 27
Всего: 158



Цитата(SvetRus @  15.11.2008,  23:52 Найти цитируемый пост)
    //сдвиг чтения
    DWORD *offset = 0;
нет такого адреса.

Код

    DWORD offset = 0x1000000; // image base of calc.exe
    //читаем
    while(!ReadProcessMemory(pi.hProcess, reinterpret_cast<LPCVOID>(offset), lpBuffer, 1, &dwRead));


PM MAIL   Вверх
SvetRus
Дата 17.11.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.6.2008

Репутация: нет
Всего: нет



Спасибо, пойду изучать структуру экзешников  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.