Суббота, 23 Ноября 2024, 01:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Перехват взаимодействия программ
DDTAAДата: Воскресенье, 19 Декабря 2010, 23:02 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Всем здравствуйте. Интересуют принципы работы программ вроде чит энжин или артмани, перехватывающие и изменяющие значения программы, принципы защиты от них, (кроме банального создания кодированной безвозвратно и возвратно копий данной переменной, с последующим частым сличением и в случае чего обратной заменой), а также возможности получения и сохранения, обработки информации о взаимодействии двухстороннем программы и внешнего мира(Узнавание, какой текст был получен из интернета или записан в файл программой, какое значение в памяти и как изменилось при добавлении галочки в окне программы, какие значения передала программа через интернет, какая дллка была заюзана, какие изменения произошли в системе, какие винапи юзаются программой по ходу дела и т. д.).
Может есть какая литература по этому поводу или уроки, или где-то хорошо это описано? Особо интересуют такие возможности для С/С++, но в принципе буду рад всему.


Да, я новичок, поэтому вопросы у меня иногда глупые......
Да, у меня действительно такой ник.......
...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
noTformaTДата: Воскресенье, 19 Декабря 2010, 23:32 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
Quote (DDTAA)
Всем здравствуйте. Интересуют принципы работы программ вроде чит энжин или артмани

Принцип артмани в следеющем, берется дамп памяти и ищется значение, когда найден адресс содержащий искоемое значение то меняется значение на другое.
Тоесть, если например в игре есть переменная отвечающая за количество жизней, она содержится значение 5, все переменные содержатся в оперативное памяти, просто берм дамп пямяти и ищем это значение, когда нашли меняем на другое.
Quote (DDTAA)
какая дллка была заюзана, какие изменения произошли в системе, какие винапи юзаются программой по ходу дела и т. д.).

ДЛЛ узнают по ссылке которая так же хранится в дампе, так же в дампе хранится номер функции из длл и тип его вызова
Quote (DDTAA)
Узнавание, какой текст был получен из интернета или записан в файл программой

Есть так называемые функции-ловушки которые прослушивают либо порт из сокета или функции ввода вывода данных
Quote (DDTAA)
как изменилось при добавлении галочки в окне программы,

Есть тип данных HWND из Windows.h, по которому можно обратится к любому контролу
Quote (DDTAA)
Может есть какая литература по этому поводу или уроки, или где-то хорошо это описано? Особо интересуют такие возможности для С/С++, но в принципе буду рад всему.

На счет получение дампа памяти или изменения значения в нем можно почитат на wasm.ru.
А на счет функции-ловушек и HWND то это есть во всех книгах по системному программированию для Windows.
Практически все что тебе надо есть в файле Windows.h smile smile smile smile


@noTformaT
DDTAAДата: Воскресенье, 19 Декабря 2010, 23:46 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
А что-нибудь подробное для С/С++ по работе с памятью и отлову не подскажешь?

Да, я новичок, поэтому вопросы у меня иногда глупые......
Да, у меня действительно такой ник.......
...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
noTformaTДата: Понедельник, 20 Декабря 2010, 00:07 | Сообщение # 4
Ukrainian independent game developer
Сейчас нет на сайте
Quote (DDTAA)
А что-нибудь подробное для С/С++ по работе с памятью и отлову не подскажешь?

Я давненько ушел от системного программирования в сторону написания компиляторов и трансляторов, но когда я начинал изучать системное программирование была такая книга Delphi глазами хакера, потом автор переписал ее вроде бы под С++ Билдер, в книге есть очень хорошие примеры на недокументированных системных функций windows.h, и написанно понятным языком, помню прикалывался в колледже над нашим админом используя примеры из той книги, много раз потушил сервак колледжа.
Но сначала рекомендую почитать статейки тут, про низкоуровневое программирование и как вообще работает процессор и память, и что можно делать с программой debug.exe. Потом попробуй поработать с мощьными дебагерами типа CHROME, IceFrog, OleDebuger.
На счет инфф по С++, то есть справка MSDN, там есть полное описание функций windows.h
smile smile smile smile smile


@noTformaT
DDTAAДата: Понедельник, 20 Декабря 2010, 00:10 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
И ещё такой вопросик: можно ли отслеживать изменения памяти без сравнения старой и новой копий дампа, чтобы не терять в скорости?
И ещё: можно ли отслеживать быстро появляющиеся и исчезающие данные, например значения переменных после прохода цикла, своеобразный тестинг после компиляции или ловить данные, по принципу клиент получает из интернета строку, выводит её на экран, затем сразу удаляет её из памяти? И как?

Добавлено (20.12.2010, 00:10)
---------------------------------------------
Ну и да, если не только под виндовс, а вообще?


Да, я новичок, поэтому вопросы у меня иногда глупые......
Да, у меня действительно такой ник.......
...А я не знаю, почему по профилю мне 28 лет и я Адольф:-)...
noTformaTДата: Понедельник, 20 Декабря 2010, 00:21 | Сообщение # 6
Ukrainian independent game developer
Сейчас нет на сайте
Quote (DDTAA)
И ещё такой вопросик: можно ли отслеживать изменения памяти без сравнения старой и новой копий дампа, чтобы не терять в скорости?

вроде бы да, там вроде бы идет изменение данных программы в оп памяти через функцию из windows.h, просто вешаеш на нее ловушку
Quote (DDTAA)
И ещё: можно ли отслеживать быстро появляющиеся и исчезающие данные, например значения переменных после прохода цикла, своеобразный тестинг после компиляции или ловить данные, по принципу клиент получает из интернета строку, выводит её на экран, затем сразу удаляет её из памяти? И как?

для строки из инета просто слушай порт сокета, а для быстро изменеющихся данных то вроде бы можно, Valve Anti-Cheat, PunkBuster, myAC вроде бы работают по подобной схеме.


@noTformaT
WXZRWДата: Понедельник, 20 Декабря 2010, 14:28 | Сообщение # 7
Thousand faces conspiration
Сейчас нет на сайте
Quote (DDTAA)
какая дллка была заюзана, какие изменения произошли в системе, какие винапи юзаются программой по ходу дела и т. д.

Надо для этого вызовы Винапи перехватывать, конечно не все, а определенные. Загрузка DLL в память обычно происходит с помощью LoadLibrary(), то есть нужно перехватывать обращения к этой функции, чтобы зафиксировать загрузку DLL файлов. Можно сделать DLL для перехвата и внедрять ее в исследуемый процесс, например.

Что касается читов, то существуют также и графические читы, также как есть методы и их обнаружения.

gogorusДата: Понедельник, 20 Декабря 2010, 14:50 | Сообщение # 8
был не раз
Сейчас нет на сайте
Cheat Engine она open-source и написана на delphi, если захочется то можно посмотреть, дам код довольно понятный
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг