Перейти к содержанию

rtm

Стажёры
  • Постов

    19
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные rtm

  1. 1 час назад, partoftheworlD сказал:

    Я думаю дело в самой игре, самопальные движки как зря раскидывают память и видимо сканер не сумев найти заданный модуль начинает перелопачивать всю память.

    Исходя из кода - не должен. А вот постоянное выделение и освобождение буфера - затратно. Лучше выделить кусок побольше и с ним работать. И еще б неплохо регион на PAGE_EXECUTE проверять.

  2. Не могу определиться с архитектурой чита. Функции - радар, перемещение персонажа в заданную точку. MVC паттерн. 

    Как определить классы?
    Надумал два варианта.


    1.    Класс Монитор(Model):    

    • входные данные - pid, View`шки, характеристики мониторинга. 
    • выходные - контейнер с структурами персонажей.
    • внутри зашиты все нужные оффсеты.
    • включает в себя класс по работе (композиция)

                                
        Класс Телепортер(View):

    • входные данные - некоторые начальные характеристики телепортирования, контейнер с структурами персонажей от Model.
    • выходные - увидомление о телепортировании персонажа.
    • перемещает персонажа на x, y, z.
    • внитри зашиты все нужные оффсеты(теже, что и Model, что плохо).
    • включает в себя класс по работе(теже, что и Model, что плохо).

                            
        Класс Отображение(View):

    • входные данные - некоторые начальные характеристики движения, 
    •  контейнер с структурами персонажей от Model.
    •  выходные - отображение данных.

     

    Класс Монитор только добывал данные из игрового процесса и передавал View`шкам.
    Класс Телепортер, получав информацию от Model, выполнял перемещение.

    Но мне не понравилось, что оффсеты и класс по работе с памятью дублируются и хранятся в двух разных местах. Решил как то переделать.

     

    2.    Класс Игра:              

    •  входные данные - pid.
    •  выходные - контейнер с структурами персонажей 
    •  внитри зашиты все нужные оффсеты.
    •  включает в себя класс по работе (композиция)

                                                        
        Класс Монитор(Model):    

    • входные данные - Класс Игра, View`шки, характеристики мониторинга. 
    • берет контейнер с персонажами у класса Игра и передает всем View`шкам.                        

                                
        Класс Телепортер(View):

    • входные данные - Класс Игра, характеристики движения, 
    • контейнер с структурами персонажей от Model.
    • выходные - увидомление о телепортировании персонажа.
    • посылает классу Игра "сигнал" о том, что надо переместить персонажа на x, y, z.

                                                
        Класс Отображение(View):

    • входные данные - некоторые начальные характеристики движения, 
    • контейнер с структурами персонажей от Model.
    • выходные - отображение данных.

     

    То бишь у меня получился какой то God Object в виде класса Игра, который читал память игры, перемещал персонажа, хранил оффсеты и т.д. К тому же, так как надо было обеспечить потокобезопасность и ассинхронность операций, он получился громоздким, что тоже не особо нравится.

    Классы Монитор и Телепортер просто управляют классом Игра. И что то мне это тоже не особо нравится.

     

    Как бы вы выделили классы?

  3. ИМХО, "современному" начинающему программисту хочется писать программы с графическим интерфейсом. Проще всего это делать на С#, особенно когда есть Visual Studio. А недавно вышедшей Visual Studio 2017 так вообще все круто стало. 

    А чтобы написать на С++ программу с интерфейсом надо юзать C++/CLI + VS, или использовать QT c их средой разработки qt creator, или юзать какой нить фреймворк типа wxWidgets.

    Сам использую C++/CLI. Изврат, но мне нравится)

    Если что - поправьте.

     

     

  4. Сначала свои найди, поставь на них брекпоинт и посмотри, какие инструкции с ними работают., затем с какими еще адресами работают эти инструкции и скорее всего эти адреса будут связаны с координатами других НПС/мобов. 

  5. В итоге оказалось, что объекты хранятся не в массиве, а списком... Нашел указатели на начало и конец списка, можно пилить радар :D

  6. Нужно найти начало массива с указателями на структуры объектов (мобов, нпс и т.д.). Нашел инструкцию, которая обрабатывает структуру с позициями этих объектов на карте, следовательно могу отловить адреса этих структур. Структура хранит координаты объекта на карте, видимость объекта и другую инфу для отображения модельки на экране. 

     

    Получается:      [Mass+???]->[Object+???]->Position    - это моя догадка. Движoк CryEnige 3.

     

    А как потом их анализировать для нахождения Object`ы, в которые они вложены и сам Mass? Pointer scan не особо помогает. Если какой нить инструмент с подходящим функционалом? Или что посоветуете?)

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.