Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Вниз

Чтение Integer из памяти процесса   Найти похожие ветки 

 
PHN   (2002-10-21 18:32) [0]

Многоуважаемый, All!
Поведай про сабж, а именно читаю по адресу где точно должно быть число которое мне заранее известно, но ReadProcessMemory возвращает бред! Читаю так:

//pto,num - dword
//res - integer
pto:=$00B6572C;
ReadProcessMemory(PID,ptr(pto),@num,4,numread);
res:=num;


Бест регардс!


 
Ihor Osov'yak   (2002-10-22 00:51) [1]

с первого взляда в msdn

BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress,
LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead);

Parameters


lpBaseAddress

Pointer to the base address in the specified process to be read. Before any data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for read access. If this is the case, the function proceeds; otherwise, the function fails.


возникает подозрение, что нужно не ptr(pto), а @(pto) ...

Во вторых, проверь GetLastError - возможно нет соотв. прав на соотв. область памяти (тогда поможет VirtualQueryEx + VirtualProtectEx)

ЗЫ. Относительно первого - (если GetLastError все ок) - относительно просто проверить софтайсом - читаем ли мы с адреса
$00B6572C или с ($00B6572C)^ ...



 
paul_shmakov   (2002-10-22 16:54) [2]

1) первый параметр не process id, а process handle. используйте OpenProcess(pid, false, PROCESS_VM_READ).
2) а второй @pto.


 
PHN   (2002-10-23 13:44) [3]

Что-то не совсем работает :(
А права для чтения и без того открыты( это на счет VirtualQueryEx)


 
paul_shmakov   (2002-10-23 14:13) [4]

"Что-то не совсем работает :("
что можно на это ответить?
1) ваш код
2) что в нем конкретно не работает?
3) что возвращают функции?
4) если функции сигнализаруют о неудачном завершении, то что говорит GetLastError?
5) из какого процесса идет чтение?


 
PHN   (2002-10-23 23:40) [5]

Функция возвращает число даоекое от правды, читаю из игры, ластеррор нулю не равен( это не нормально?). Может собственно это и не интегер, но тогда как можно узнать об этом?
Еще скажу, до этого пуская цикл для pto (см исх код выше), за где-то от B630A0 до B6572C, то дойдя до конечного адреса и считав из него функция возвращала совершенно ворное значение, стоит только читать напрямую из адреса(B6572C), как уже нечто иное, эту для меня загадку я решить не смог.
Буду благодарен, если кто-нибудь скинет мне на Mail рабочий исходник с похожей задачей.

Вот это собственно и значит то самое: "Что-то не совсем работает :("


 
PHN   (2002-10-25 10:01) [6]

up


 
Digitman   (2002-10-25 10:59) [7]


> Может собственно это и не интегер, но тогда как можно узнать
> об этом?


А откуда вообще взялась вот эта константа ? На основании чего ты опираешься именно на данное ее значение, а не на какое-то другое ?

pto:=$00B6572C; // ?????????


 
PHN   (2002-10-25 13:55) [8]

Ну такая она, знаю, и все!
Что там число! :))


 
Игорь Шевченко   (2002-10-25 14:05) [9]


> ластеррор нулю не равен( это не нормально?).


А чему же он равен ?


 
paul_shmakov   (2002-10-25 14:41) [10]

и где код?


 
Digitman   (2002-10-25 14:47) [11]


> Ну такая она, знаю, и все!
> Что там число! :))



Ну откуда знаешь-то ? Что, великая тайна что ли ?
Или по файлу шарил каким-нить hiew или SoftICE ? И там типа "знакомые буквы" нашел ?)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-14502
Андрусь
2002-11-25 20:49
2002.12.05
ещё раз об этом


1-14642
Leny
2002-11-25 13:04
2002.12.05
Создание файла Excel по шаблону


4-14866
Max2
2002-10-24 15:12
2002.12.05
Changing a size of window


8-14690
Luchio
2002-08-18 19:46
2002.12.05
Нужна помощь!!!! Сохранение avi-файла покадрово в bmp-шках


4-14870
A_r_l_e
2002-10-24 12:25
2002.12.05
Как увидеть экран(не DeskTop)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский