| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Изменяем память сторонего приложения |
| Автор: lips 6.11.2012, 19:55 | ||
| Прочитал пару статей... где с помощью ArtMoney и VisualC++ написали тренер для игры... опираясь на эти записи написал код:
пытаюсь взломать пинбол(стандартн), но почему-то не работает... пишу в рад студии Уважаемые программисты гляньте на несколько строчек кода найдите ошибку! |
| Автор: Zhunko 6.11.2012, 20:16 |
| По моему, чтение неправильно. Почему-то приём в ту же переменную, что содержит адрес. Возможно это правильно в смысле, что работать будет, но это неправильно так писать. Да, ещё там, в первом параметре должен быть дескриптор процесса, а не окна. |
| Автор: Zhunko 6.11.2012, 20:28 | ||
Это тоже неправильно. Но не имеет значения здесь. При записи INT не испортит чужую память. Адрес-то правильный, наверно. Получается, что сначала читает адрес. Модифицирует уже существующий. Пишет по новому адресу, что прочитан ранее. |
| Автор: lips 6.11.2012, 20:59 |
| насчёт той же переменной я описался, а вот что там с хэндлом процесса? как его узнать? а CreateProcess необязательно использовать? спасибо за ответы Добавлено через 56 секунд у меня артмания выдала что там 8 байт.. |
| Автор: Zhunko 6.11.2012, 21:13 | ||||
У меня так сделано:
static можно убрать. |
| Автор: lips 6.11.2012, 21:19 |
| Zhunko спасибо! сейчас буду пробовать |
| Автор: lips 6.11.2012, 22:08 | ||
| Получилось как то так: но естественно не работает
Подскажите? |
| Автор: Zhunko 6.11.2012, 22:14 |
| Прочитайте оттуда, что записали, и сравните. Возможно, что работает, но Ваши ожидания иные от той программы. |
| Автор: lips 6.11.2012, 22:23 | ||||
значение "a" не изменяются |
| Автор: Zhunko 6.11.2012, 22:34 |
| Надо бы весь код посмотреть. |
| Автор: lips 6.11.2012, 22:39 | ||
| GetLastError(); возвращает 87 неверный параметр хелп! Добавлено через 1 минуту и 59 секунд
ну это и так весь код )) Добавлено через 7 минут и 55 секунд вот что удалось выяснить: после HandleWindow = FindWindowA("Window", "Пинбол для Windows - \"Звездный юнга\""); 2: Общая ошибка после GetWindowThreadProcessId(HandleWindow, &PID); 1400: Недопустимый дескриптор окна. ну а дальше пошло поехало... как исправить? |
| Автор: Zhunko 6.11.2012, 22:49 | ||
| Вы, что-то про 8 байт говорили? Может так попробывать:
Ещё поставте анализ ошибок после каждой функции. Надо привыкать сразу так писать с исключениями. Пример в моём методе. Так сразу ошибки проявляются. |
| Автор: lips 6.11.2012, 22:53 | ||||
аа всё всё всё разобрался всем спасибо!! я тупанул вот так надо было писать
вот код всё работает!! всем ещё раз спасибо!!
Добавлено через 1 минуту и 19 секунд а и ему всёравно что 8 что 4... работает в любом случае =) |
| Автор: Zhunko 6.11.2012, 22:56 | ||
http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633499(v=vs.85).aspx Что Вы за параметры туда вставляете? |