partoftheworlD

Модераторы
  • Публикации

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

  • Посещение

  • Days Won

    80

partoftheworlD last won the day on August 12

partoftheworlD had the most liked content!

Репутация

435 Structure hunter

8 подписчиков

О partoftheworlD

  • Звание
    Завсегдатай

Контакты

  • Сайт
    https://www.youtube.com/channel/UCCtJ20nWY7nGqCO5guv8-Jg

Информация

  • Пол

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

6 348 просмотров профиля
  1. Может По координатам вычислять коллизию как я описал выше
  2. Расчет коллизии работает постоянно, лучший вариант искать эти расчеты от пишущей инструкции, они обычно выше по коду. Ещё можно ручным поиском, найти коллизию, но это достаточно долго и много чего надо проделать, мой тестовый метод. Получаешь координаты объекта(это можно сделать с помощью собственных координат упершись(ну и словечко) углы объекта), после при попытке войти в объект вычисляешь твои координаты - координаты объекта = значение коллизии, но часто оно очень маленькой типа 0.00123/0,0123, чтобы они были больше можно попробовать ограничить количество кадров в секунду, чем меньше кадров, тем дольше просчитывается коллизия, но опять же это не для всех игр.
  3. Cheat engine + dnSpy в котором можно искать по всему что душа пожелает через ctrl+f После запуска отладчика, можно искать по комментам они указывают и адрес и всякую инфу например // Token: 0x06005392 RID: 21394 RVA: 0x001278CB File Offset: 0x00125ACB
  4. отладчик конечно ужасен в Artmoney, думаю удобней её использовать, если все же кто-то будет её пользоваться, то только в связке с Windbg, чем со стандартным отладчиком.
  5. ты его и не сможешь собрать, потому что на выходе получается что-то типа декомпилированного псевдо-кода, все изменения в бинарнике делай с помощью hex редактора или ida и все будет хорошо.
  6. Реального смысла нет, это скорее PoC т.е. реализация определенного метода или идеи, чтобы продемонстрировать ее осуществимость, скилы прокачать ещё, в каком-нибудь фаркрае/калде это можно будет провернуть с доработками одним скриптом, будет забавно иметь аимбот который работает как скрипт, думаю никто до этого не делал такой опции в трейнер. А вообще я составляю единую схему по множеству шутеров в которой определяю схожести и отличия в коде функции выстрела, чтобы после написать плагин, который бы за пару секунд определял, что каждый из участков кода делает и не приходилось бы искать с помощью CE что-либо относящееся к функции выстрела, типа скорострельности, отдачи, разброса, структуры оружия, вектора полета пули и прочее-прочее Да-да мне скучно и обычные опции надоели, пытаюсь сейчас приготовить что-то крутое, а то опять заброшу ломать игры
  7. Искав более простой способ создания скорострельности в этой игре, нашел привязку патрон к месту первого попадания, думаю воспользовавшись W2S и координатами врагов можно буквально в несколько инструкций сделать аимбот, вот только стрелять в этой игре не по кому.
  8. После декомпиляции должны появлиться исходники, не чистые конечно, но для разбора пойдет.
  9. Пока изменил в следующий раз читай правила https://gamehacklab.ru/guidelines/ Это я туплю уже. Тебе надо метку объявить value, а после писать в xmm3 [ENABLE] aobscanmodule(SPEED,rqmain.exe,F3 0F 11 9E F4 02 00 00) alloc(newmem,$1000) label(code) label(return) label(value) newmem: value: db (float)500 code: movss xmm3, [value] movss [esi+000002F4],xmm3 jmp return SPEED: jmp newmem nop nop nop return: registersymbol(SPEED) [DISABLE] SPEED: db F3 0F 11 9E F4 02 00 00
  10. Думаю так [ENABLE] aobscanmodule(SPEED,rqmain.exe,F3 0F 11 9E F4 02 00 00) alloc(newmem,$1000) label(code) label(return) value: db (float)500 code: movss xmm3, [value] movss [esi+000002F4],xmm3 jmp return SPEED: jmp newmem nop nop nop return: registersymbol(SPEED) [DISABLE] SPEED: db F3 0F 11 9E F4 02 00 00 И укажи игру, иначе тема будет закрыта.
  11. Создай лучше отдельную тему в разделе программирования и подробней распиши все, если что тему модеры перенесут. Иначе твой вопрос может опять затеряться.
  12. Автор статьи: Whitey Перевел: partoftheworlD специально для gamehacklab.ru Оригинальная cтатья Необходимые инструменты: Сканер памяти(Cheat Engine) Отладчик(x32dbg) Оглавление Введение Шаг 1 Поиск здоровья и получение нашей структуры Шаг 2 Поиск координат нашего игрока Шаг 3 Инъекция кода Шаг 4 Код в трейнере Введение: В этом уроке мы собираемся сохранять/восстанавливать значения в Bloodrayne 2 Demo. Такая опция предполагает, что пользователь, нажав на одну кнопку мог сохранить текущую позицию, а при нажатии на другую телепортировался в ранее сохраненную позицию. У вас должны быть хорошие навыки в поиске и отладке, если хотите выполнить этот урок. Я стараюсь вдаваться в подробности как могу, если вы будите следовать всем шагам, то у вас не возникнет никаких проблем. Шаг 1 Поиск здоровья и получение нашей структуры Ладно, я уверен вы знаете как искать значение здоровья. То, что мы хотим сделать это получить все указатели, потому что мы будем использовать один из них для нашей инъекции. Открываем x32dbg... Видим снизу консоль и вводим в неё bpm адрес, нажимаем Enter После срабатывания начинаем записывать адреса инструкций при срабатывании, нажимая F9 для продолжения выполнения программы, записываем адреса пока не начнут повторяться. Это те адреса, которые нам нужны, на самом деле их на много больше. 5BE285 : PUSH [EBX+39C4] 5BE2B5 : 5BE2D1 : 5BF30A : Теперь ставим бряки на этих адресах по одному и смотрим на структуру внутри указателя, для того чтобы убедиться, что структура никогда не изменяется, так мы узнаем, что указатель работает только со здоровьем игрока. Пишем в консоле: bpx 5BE285 Продолжаем нажимать F9 при срабатывании наблюдая за адресом структуры в EBX и, если она никогда не изменится значит она работает только для нашего героя. Это адрес, который мы будем использовать для нашего телепорта. 5BE285 : PUSH [EBX+39C4] Вы должны знать, как работает большинство игр. У вашего игрока, оружия, предметов есть свои структуры, таким образом в структуре вашего игрока будет все что использует ваш персонаж. Так, теперь получим координаты. Шаг 2 Поиск координат нашего игрока Есть много способов найти их, многие будут использовать долгий способ с поиском координат, но это не всегда работает. Быстрой и простой способ - использовать структуру игрока. Этот указатель PUSH [EBX+39C4], EBX является началом структуры игрока, всякий раз, когда игра должна какую-нибудь информацию от игрока, она добавляет к EBX какое-нибудь смещение. Например, ваше здоровье хранится в [EBX+39C4], сила в [EBX+34] и т.д. Надеюсь вы понимаете. Так, теперь получим координаты, нам нужно установить бряк на выполнение на указатель здоровья и дамп нашей структуры. Пишем в консоле: bpx 5BE285 d EBX Теперь в окне дампа первым адресом будет наша структура. Будем наблюдать за байтами, которые изменяются в окне дампа во время движения. В окне данные будут выглядеть так. 600001 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 600002 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Координаты хранятся так: 600001 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 600002 00 00 11 11 11 11 22 22 22 22 33 33 33 33 00 00 1 = X(первая координата) 2 = Y(вторая координата) 3 = Z(третья координата) И так, проделав эти шаги мы нашли 3 DWORD значения в 2 строка которые изменяются, когда наш герой двигается. Получили следующие смещения. 34,38,3C. [PlayerStructure+34] = первая координата[PlayerStructure+38] = вторая координата[PlayerStructure+3C] = третья координата Отлично, теперь у нас есть координаты и наша позиция. Шаг 3 Инъекция кода Что нам нужно для инъекции. Место под код 2 пустых адрес для установки 2-х флагов 3 пустых адрес для хранения сохраненных координат. Ладно, для начала найдем большое место под код т.к .у нас будет большая инъекция. 5BE285: JMP CODE CAVE | ---------- Оригинальная инструкция для прыжка в наш код NOP | ---------- балансировка байт PUSHAD | ---------- сохраняем регистры CAVE: PUSH [EBX+39C4] | ---------- Оригинальная инструкция сохраняющая регистр CMP [FLAG1],1 | ---------- проверка, если наша кнопка сохранения позиции нажата JNE SHORT | ---------- если кнопка не нажата, прыгает восстановленной оригинальной инструкции, если нажата пропускаем. MOV [FLAG1],0 | ---------- устанавливаем 0 нашему флагу, чтобы код не повторялся MOV ECX,3 | ---------- Установим значение счетчика 3 LEA EDI,[STATIC1] | ---------- Загрузим начальное значение в EDI LEA ESI,[EBX+34] | ---------- Загрузим первую координату в ESI REP MOVSD | ---------- Цикл пока ecx не будет равно 0 CMP [FLAG2],1 | ---------- Сравниваем, если кнопка восстановления нажата JNE TO END | ---------- если нет прыгаем в конец скрипта MOV [FLAG2],0 | ---------- устанавливаем 0 нашему флагу, чтобы код не повторялся MOV ECX,3 | ---------- Установим значение счетчика 3 LEA EDI,[EBX+34] | ---------- Загрузим начальное значение в EDI LEA ESI,[STATIC1] | ---------- Загрузим первую координату в ESI REP MOVSD | ---------- Цикл пока ecx не будет равно 0 END: | --------------------- POPAD | ---------- восстанавливаем регистры | ---------- И возвращаемся в игровой цикл Очень просто, хех? Шаг 4 Код в трейнере Ладно все что вам нужно сделать это, Для кнопки сохранения, инжектировать весь код и установить первому флагу 1. Для кнопки восстановления, инжектировать весь код и установить второму флагу 1. Теперь, нажимая на указанные "горячие клавиши" при сохранении будет устанавливаться флаг меняющий значение истинности и сохраняющий координаты в статические адреса, а при восстановлении установится второй флаг, который возьмет сохраненные координаты из статических адресов и установит их значение реальным координатам, что переместит нас в это место.
  13. Декомпилируй apk файл и посмотри что творится в исходниках, возможно найдёшь что нужно
  14. Раньше все как-то быстрее было.
  15. Ни у кого не было такого бага после получения прав модера, через раз работают спойлеры, уведомления и по долгу отправляются сообщения/ответы после нажатия проходит порядка 4-5 секунд. Такое только в хроме, вивальди и opera все в порядке. Браузер сносил, чистил куки - не помогло.