· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Об ArtMoney, Cheet O'Matic и подобном (ломалки ресурсов игр- денег, жизней ...)

Посл.отвђт Сообщенiе


Дата: Дек 12, 2003 18:26:49

Если кто-нибудь знает или разбирался с тем, как работают эти программы, то подскажите:
Я выбираю процесс, открываю его OpenProcess с правами PROCESS_ALL_ACCESS (1F0FFFh)
после, для перебора его памяти, использую VirtualQueryEx, но вся тема в том, что при нулевом (да и не только) адресе у меня возвращается 0 (в смысле- 0 байтов данных заполнено), а при ВРОДЕ БЫ тех же действиях у O'Matica всё "OK" (1ch байт с вернымы данными). :sm14:
Что надо чтобы работало???


Дата: Дек 12, 2003 21:47:10

Попробуй использовать NtQueryVirtualMemory - с помощью этой функции все можно сделать намного проще.


Дата: Дек 13, 2003 08:55:12

На сколько я понимаю:

NtQueryVirtualMemory(
DWORD hProcess,
DWORD lpAddress,
DWORD HZ,
DWORD lpBuffer,
DWORD dwLength,
DWORD lpdwLength);

Что такое HZ (не reserved, ли), и чем мне поможет NtQuery..., если он вызывается из VirtualQueryEx'а, поправь если ошибаюсь.


Дата: Дек 13, 2003 10:35:02

Sem
А что говорит GetLastError?


Дата: Дек 13, 2003 11:24:45

ERROR_ACCESS вроде (в этом он абсолютно прав).


Дата: Дек 13, 2003 11:54:40

Может там какие нибудь права лишние?
По моему вполне достаточно: PROCESS_VM_OPERATION+PROCESS_VM_READ+
PROCESS_VM_WRITE+PROCESS_QUERY_INFORMATION
По крайней мере в моей программе это работало.

А OpenProcess вообще открывает процесс?
Если баг не найдешь, то кидай код сюда, будем всем форумом думать.


Дата: Дек 13, 2003 12:52:00

То, что OpenProcess врозвращает хендл- 100% (дошел до того, что проверял с помощью GetModuleBaseName из PSAPI), права сначала ставил "VM_READ or VM_WRITE or QUERY_INFORMATION" (извини за корявость не помню названий, проще- 430h).
Что до кода, то надо немного подождать (не из дома постюсь).


Дата: Дек 13, 2003 19:42:42 · Поправил: Sk. Inc.

Sem
А ты чего, собственно, пишешь? Если трейнер для игрухи, то там все намного проще :)


Дата: Дек 13, 2003 20:19:24

Sem
Да, кинь сюда свой код - и посмотрим, что не пашет.


Дата: Дек 15, 2003 13:46:57

Sk.Inc.:
Не не трейнер, просто прибило написать маленький и МАКСИМАЛЬНО быстый LO'Matic (именно такое название), вот тут и дошли до VirtualQueryEx'а

Grenader:
Косяк НАЙДЕН! Но после его обнаружения, я оПуПел.
В новом .asm просто написав OpenProcess(430h,0,PID) (PID- из taskmgr.exe) и VitrualQueryEx(eax,0,offset lpBuffer,1ch)
(ОЧ-ЧЕНЬ ВАЖНАЯ ПОПРАВКА: lpBuffer из .data?), всё заработало. В моей проге lpBuffer определён примерно так:

SearchValue Proc
local vsyakoeGovno1,...,lpBuffer[1000h],vsakoeGovno2...

Здоровый буффер потому, что я его потом использую для считывания страницы памяти ReadProcessMemory(). Вобщем меняю на lpBuffer[1ch]- работает. Выпадаю в осадок. СТЕК ЧТО ЛИ КОНЧИЛСЯ В WIN32 ИЗ-ЗА КАКИХ-ТО 1000h БАЙТОВ. Оказыватся Windows для неиспользованного стека только резервирует страницы, а выделяет только по обращению и VirtualQu... на этом обламывалась. Да, уж.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044