|
|
|
| Все наверное знают программу ArtMoney.
Допустим мы из какой-нить простенькой игры хотим вытащить значение. Тот же сапер, находим адресс в процессе, которые несет в себе информацию по количеству мин оставшихся на поле. Ну не суть какой, например мы нашли его: 01005194 .
Теперь собственно вопрос, как написать простейшее приложение на Си, которое будет вытаскивать из этой программы, по данному адрессу его значение.
т.е запускаем, она находит процесс, выдирает значение у этого адресса и выдает нам:
Мин осталось: 55
Си знаю на уровне cout << "Hello, i'm noob";
Буду рад ссылкам на умные ресурсы. | |
|
|
|
|
|
|
|
для: Бамси
(26.11.2008 в 00:27)
| |
#include <iostream.h>
#include <windows.h>
int main()
{
HANDLE hProcess = OpenProcess(PROCESS_VM_READ, FALSE, 3564);
if(hProcess)
{
DWORD dwRead;
WORD dos_signature;
if(ReadProcessMemory(hProcess, (LPVOID)0x01005194, &dos_signature, sizeof(dos_signature), &dwRead))
{
cout << dos_signature;
}
}
}
|
И что значит (LPVOID)0x01005194 - (LPVOID). И как представтиь ее в виде отдельнйо переменной, а не пихать прямо в функцию, Пробывал void, const void, int, DWORD и прочее.. всегда ошибки возникают.
2) Я работаю в консоле, и заношу в цыкл, чтение из памяти программы. И хочу что бы он мне не писал постоянно новое значение, а просто заменял старое. Т.е.
щяс он мне выводит 2 2 2 2 2 3 3 3 3 3 4 4 4 4 44 5 5 5 5 5 5.
А хотелось бы, что бы на экране была всегда одна цыфра, которую он бы изменял.. Надеюсь правильно выразился. | |
|
|
|