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

partoftheworlD

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

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

  • Посещение

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

    172

partoftheworlD стал победителем дня 19 октября 2021

partoftheworlD имел наиболее популярный контент!

Репутация

815 Advanced Gamehacker

Информация о partoftheworlD

Посетители профиля

21 163 просмотра профиля
  1. Автоматический поиск указателей не гарантирует нахождение указателей, он просто перебирает смещения, поэтому в зависимости от игры он может работать, а может не работать, на это влияет множество факторов от правильности пути по которому будет сохраняться результат до всяких прав доступа к памяти. Ручной поиск хоть и дольше, но результат гарантирован(если не потеряться в ответвлениях структур).
  2. игру(Assembly-CSharp.dll) открываешь через dnSpy. ищешь упоминания лески/натяжений/катушки, в классе FishingLine(леска) будет метод UpdateTension(обновление натяжения), теперь необходимо получить адрес значения натяжения, быстро пробежавшись по дизассемблеру и коду в dnSpy можно найти инструкцию, которая работает с натяжением. Дальше ищешь рабочую инструкцию с этим же смещением, если эта не срабатывает. Получаешь адрес значения натяжения Теперь устанавливаешь на этот адрес брейкпоинт на запись, и ждешь пока рыба клюнет: После подсечки появятся еще 4 инструкции, скрипты нужно будет написать на первые 2 с обнулением xmm5. И скрипт
  3. Пока люди проектируют системы - сломать можно все. Есть несколько способов, да разработчики могут повесить множество защит и проверок на определенные значения, но могут существовать различные бонусы или, к примеру способности, влияющие на множитель, который участвует (на прямую или косвенно) в вычислении нужного значения, изменив которые сможешь изменить все что тебе захочется. Ну а второй, просто подделывать транзакцию, к примеру при завершении задания за которое дают опыт, голду и т.д, существует метод, который говорит серверу, что игрок завершил задание и надо ему что-нибудь дать, но раз его может вызывать игра, то и человек сможет данный метод приручить. В целом проблема с "серверными" играми в том, что на исследование (реверс, понимание механики игры, понимание работы между клиентом и сервером) нужно очень много времени, даже скорее больше, чем уйдет на фаззинг и поиск бага в коде, который позволит, к примеру дюпать голду(хотя даже это проблематично со всеми этими новыми безопасными яп).
  4. Если справка выводится локальная - удалить её, если вызывает URL с инфой, то сломать ShellExecute внутри CE Эти функции патчишь ret и больше никакой справки cheatengine-i386 : 55 89 E5 8D 64 24 C8 53 56 57 66 89 D6 cheatengine-x86_64: 55 48 89 E5 48 8D 64 24 ? 48 89 5D C8 48 89 7D D0 48 89 75 D8 66 89 D3 Можно и от F1 отвязку сделать, но мне лень, патч по идее должен сработать.
  5. Ищи редакторы на форумах мододелов, либо пиши свой редактор на основе функций игры, иначе никак.
  6. Составление темы в разделе вопросов без вопроса, вот что круто.
  7. Нужно выйти на структуру игрока и смотреть все вложенные структуры минимум в 2-3 уровнях.
  8. Нужно смотреть на код, как расставляешь и проверяешь доступность hwbp, а так же как отлавливаешь исключения
  9. Размер указывается для определенных типов брейкпоинта, чтобы зацепить изменения в адресе, только на запись и на чтение, если брейкпоинт на выполнение, то размер игнорируется. Получение значений регистров через асм вставки не должно было вызвать проблем, но правильнее было бы открыть поток, получить контекст, из контекста выбрать нужные регистры. auto threadID = GetCurrentThreadId(); auto hThread = OpenThread(THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME | THREAD_QUERY_INFORMATION, FALSE, threadID); CONTEXT ctx = { 0 }; ctx.ContextFlags = CONTEXT_FULL; GetThreadContext(hThread , &ctx); Удивительно, это ведь обычный mid hook.
  10. Если времени мало, стоит определить для начала для чего нужен асм, если в целом для программирования на асм, то лучше The Art of Assembly Language, 2nd Edition Randall Hyde пока ничего не находил, если для отладки, то куда быстрее будет заняться реверсом, а так же иметь под рукой документацию по асму, решать всякие crackme/keygenme, для начала даже можно самому компилировать простые программки, учиться по ним читать и понимать асм.
  11. Навряд ли, скорее просто проверка инициализировалась ли память под структуру нового предмета. Во-первых обратить внимание на то, как происходит подбор, если без касания к предмету(т.е. гг проезжает мимо и лут собирается) это идеальные условия. Для начала стоит попробовать более простой способ поиска, например, попытаться найти дистанцию между предметом и гг. Если такое значение найдется, считай 75% дела уже сделано и останется как по учебнику повесить бряк на доступ и после подобрать предмет, таким образом ты найдешь инструкцию, которая сравнивает дистанцию между предметами, и если она меньше определенного статического значения, то будет подбор. А дальше на любителя, либо отключить проверку, чтобы подбор было по всей локации, либо увеличить дистанцию.
  12. Функция принимает D3DXVECTOR3, а ты передаешь ей float Так же, твой Vector2D является Vec3, а возвращаемое значение WorldToScreen имеет тип D3DXVECTOR2. Написать перегрузку WorldToScreen, судя по исходникам с этим не должно возникнуть проблем. Или написать шаблон WorldToScreen.
×
×
  • Создать...

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

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