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

X86Jumps

Пользователи+
  • Постов

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

  • Посещение

  • Победитель дней

    2

Весь контент X86Jumps

  1. так надо конкретно какую то игру определить или как типа injector чтоб определил и делал потом hook для разных интерфейсов? если второе, то вариант с getmodulehandle в библиотеке не самый плохой просто без конкретики как то не очень ясно что нужно)) например в cheat engine хук d3d делает так: он грузит последовательно d3d11 d3d10 d3d9 библиотеки и создает интерфейсы на болванке созданного окна т.к. это в виде dll он уже в памяти процесса игры висит и поэтому вернет в любом случае существующий указатель а какие не были, получается создаст лишний раз (loadlibrary используется) тогда как getmodulehandle только вернет handle на существующий модуль. Конечно в игре может быть сразу 2 3 рендерера как в каком-нибудь STALKER но это не часто, или как в ue4 где несколько вариантов рендерера (rhi), но он только 1 раз создается, т.е. как в сталкер не меняется рендерер partoftheworlD ну видеокарта может и d3d12 поддерживать)) а игра tomb raider II будет использовать DirectDevice7))
  2. вариантов не много просто тупо запустить игру и через cheat engine посмотреть dissect code, посмотреть что используется D3D11CreateDevice или Direct3DCreate9 можно и без dissect, просто в search code написать одну из этих функций или goto перейти на нее и поставить breakpoint вариант когда через GetModuleHandle тоже подходит, d3d9.dll,d3d11.dll, если один из вариантов возвратит не ноль, значит то и используется
  3. речь идет про direct3d? а то в directx еще другие вещи входят) в одной игре может использоваться более 1 библиотеки d3d, хотя такое не часто конечно в сталкере последнем вроде было d3d8 d3d9 d3d10 d3d11) можно попробовать проверить через GetModuleHandle последовательно библиотеки d3d
  4. в окне трейса поиск по условиям не пашет, ну по крайне мере в 6.7 так, в 6.5 работало))
  5. поиск в trace не пофиксили?
  6. ошибка правильно выходила, эта не баг выше я описал причину. Без #include <array> я бы даже не смог использовать этот контейнер из stl (хотя он еще в tr)
  7. проще было бы использовать тогда уже vector а не array а облачать еще в скобки нужно потому что это уже не просто данные массива упрощенно array это template<class Ty, size_t Size> struct {Ty[Size] data;} а подобные простые классы или структуры (или union) можно инициализировать упрощенно у меня уже тут ошибку дает std::vector<std::array<int, 2>> data2 = { { 1, 2 } }; а вот так не дает std::vector<std::vector<int>> data = { { 1, 1 } }; можно присваивать, как ты присвоил a с vector of array не пашет упрощение, потому что список инициализации для вот тут про это говорится https://stackoverflow.com/questions/6041459/c-vector-of-arrays из-за того что это уже не просто array, а vector<array> правило для упрощения инициализации не работает можно еще тут прочесть (не сказать что я все уяснил)) ) http://ru.cppreference.com/w/cpp/container/array http://ru.cppreference.com/w/cpp/container/vector http://ru.cppreference.com/w/cpp/language/aggregate_initialization http://ru.cppreference.com/w/cpp/language/list_initialization (хотя кажется лучше en версию читать)) ) чтобы понять как он хранится в памяти проще в ide дебаг запустить и посомтреть locals (у vector есть allocator,allocator_vals,first,last)
  8. строки нельзя сравнивать через cmp это будет сравнение как чисел, разве что указатель на него сравнивать (если это const строка) а так строки сравнивают через cmps-инструкции или другие (хотя не знаю зачем сроки сравнивать для чита)) чаще работаем с указателями или некими перечислениями)
  9. В видео про спавн врагов в ре6, во второй его части пользователь спросил: могу ли я сделать подобное для ре4, версия 1.1 Еще в феврале в 10-х числах начал искать. Как-то несколько дней что-то проверял, потом нашел зацепку, потом затянулось и только в марте снова взялся. Только сейчас дошли руки записать видео, скрипт пробный уже недели 2 готов был. Версия игры 1.1., это не Ultra HD Remaster или как он там в стим называется, но кажется в нем все так же работает, разве что указатели в других местах. Сделал пробный скрипт спавна врагов. Спавнит в упрощенном варианте, рядом с игроком. Если на уровне не предусмотрены враги, то возможен вылет при попытке спавна (возможно файл не загружен в памяти, а при создании объекта не проверяется, что не загружен). Как обычно работает на Tab. Сначала инициализирует массив со всеми структурами npc/enemy, прописано изначально только на врагов (0x12). При смене уровня обновляет массив заново. Можно убрать инициализацию цикла и создавать, заполняя данные вручную. По крайне мене когда я пытался, если спавнить не врагов а все иное, то вылет происходит, не сильно проверял почему, т.к. главной целью было спавнить врагов. видео Скрипт ссылка на файл http://s000.tinyupload.com/?file_id=08064413723196487564 Указатель на объект, который используется для спавна npc/врагов (и игрока единожды) 0x033F6EC4 +4 указатель на игрока +8 максимально возможно количество объектов +14 - последний созданный объект в каждом объекте +8 - предыдущий объект таким образом происходит полный обход всех объектов 0x009D3558 класс врага 0x009EF690 класс игрока если кому интересно, допишу подробнее информацию из заметок, что вел *оказалось записывал с отключенной функцией подавления шума, она сильно делала тише запись, но шумов не было. Когда усилил сигнал тут, то шумы очень сильно слышны были, подавил как мог в Audacity. Громкость не повышал аудиозаписи сильно, чтобы шумы не были уж слишком слышны.
  10. X86Jumps

    Новости по будущему плагину

    тупой вопрос, что такое vtSingle? single precision float? это плагин добавляет функционал к Data Dissect? дорисовывает дерево слева
  11. аа, я не понял что это название игры)) а надпись всегда ниже? всегда одно и тоже расстояние? цвета надписи для врага не меняются через настройки?
  12. а в каких играх отображается ник при наведение на врага?
  13. хм интересно, ответы через 7 8 лет)) а актуально делать ответ когда даже сам автор выложил его?)
  14. в directx sdk в dxut вроде свой список выпадающий используется (в примерах)
  15. чтоб не тормозило то можно ограничить перезапись значения текста, когда надо только и если ты знаешь какие адреса нужно проверять то может добавить запись в зареганный символ и его и считывать
  16. в с/с++ есть разыменовывание указателя, обратная получению адреса (&): *ptr тогда можно изменять значение которое в указателе (или просто обращаться к нему для проверки) но т.к. у тебя данные не в своем адресном пространстве, то используются функции записи/чтения в процесс ReadProcessMemory/WriteProcessMemory хотя не очень понятно что ты хочешь
  17. неужели сервер спокойно отреагирует, когда клиент локально у себя будет врагов перемещать и убивать и отсылать команду что убил?))даже не сверит что он далеко?
  18. ну я про то если он локально их тупо на себя переместит и убьет - это сервер засчитает?) а то мало ли, определит что чит))
  19. а разве в онлайн игре можно переопределить поведение ботов?за них же сервер отвечает
  20. можешь таймер создать и там прописать проверку что есть процесс нужный
  21. в начале не было про то что если меняется переменная, то меняется и в 2й форме проще тогда как указатель на переменную делать и присвоить адрес нужной переменной тогда что хочешь меняй а выводит потому что как он при не видимой 2й форме тебе покажет что то?)))
  22. а что нет переменных окон, чтобы к ним обращаться друг к другу?form1,form2?
×
×
  • Создать...

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

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