partoftheworlD
-
Постов
2 687 -
Зарегистрирован
-
Посещение
-
Победитель дней
172
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные partoftheworlD
-
-
Его доработать, чтобы восстанавливал значения после выключения и будет все хорошо.
Спойлер{ Game : Borderlands2.exe Version: Date : 2019-01-18 Author : Alexander This script does blah blah blah } [ENABLE] aobscanmodule(pBase,Borderlands2.exe,8B 06 8B 4D EC 8D 04 88 85 C0 0F 84 ? ? ? ? 8B 55 C0 89 10 E9 ? ? ? ? 3C 02 75 5F 8B 46 1C 8B 4E 20 89 45 EC 40 89 46 1C 3B C1 7E 46) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: mov eax,[esi] push edi push ebx mov edi, eax mov ebx, eax add ebx, 30 mov ebx, [ebx] add ebx, A4 mov ebx, [ebx] mov [ebx+580],(float)9999 mov [ebx+5A8],(float)9999 mov [ebx+5D0],(float)9999 mov [ebx+5F8],(float)9999 mov [ebx+620],(float)9999 mov [ebx+648],(float)9999 add edi, 2C mov edi, [edi] add edi, A4 mov edi, [edi] mov [edi+4C8],(float)9999 mov [edi+4A0],(float)9999 mov [edi+4B4],(float)9999 mov [edi+4DC],(float)9999 mov [edi+4F0],(float)9999 mov [edi+464],(float)9999 mov [edi+478],(float)9999 mov [edi+450],(float)9999 mov [edi+374],(float)9999 mov [edi+57C],(float)9999 mov [edi+540],(float)9999 mov [edi+554],(float)9999 mov [edi+568],(float)9999 mov [edi+52C],(float)9999 mov [edi+590],(float)9999 pop ebx pop edi mov ecx,[ebp-14] jmp return pBase: jmp newmem return: registersymbol(pBase) [DISABLE] pBase: db 8B 06 8B 4D EC unregistersymbol(pBase) dealloc(newmem)
-
2 часа назад, TimaS сказал:
сделал -1, не работает. попробую на записывающую инструкцию
Может было бы проще накрутить урон у оружия?
-
-
1 час назад, mumut сказал:
Как поместить значение в стек типа: float
1 час назад, mumut сказал:.И еще зачем нужны такие обозначения: QWord, DWord, Word, Byte.
-
У каждого игрока, есть инвентарь, но так же существует скрытый сундук в котором лежит ключ, кто первый найдет ключ, то получит Hot Lava в виде подарка в стиме.
Программа рассчитана для новичков, чтобы проверить уровень знания ООП в ассемблерной плоскости.
Ограничений по использованию программ и техник: Нет.
Ключ формата: [A-Z0-9_]{28}Решение отправлять в личку, в сообщении должен содержаться скрин массива со структурами, победная строка и описание процесса поиска.
Я считаю, что данная задача, поможет развить логическое и дедуктивное мышление, что поможет юным реверсерам в будущем и освежит память старым.
-
Можно удалить, если не интересно.
Тогда напишу такой же туториал для радара на примере Titanfall 2. (чисто ради того, чтобы заинтерисовать радаром.)
Перед тем как мы приступим нам понадобится:
1. Radare2
2. Более менее прямые ручки.
3. Хорошая внимательность.
Для начала открываем консоль, пописываем:
radare2.exe <путь к файлу>
после того как загрузиться файл, необходимо будет его проанализировать, для этого пишем:
aa
и после
aac
Первая команда объявляет точку входа как функцию, а вторая команда анализирует вызовы функций.
Для поиска по строке(m_iHealth) надо будет ввести такую команду:
/ m_iHealth
Как только найдется строка, нужно будет посмотреть все перекрестные ссылки для этого пишем:
axt hit0_0
Сама команда ищет данные перекрестных ссылок от адреса по которому была найдена строка.
На выходе получаем информацию о перекрестных ссылках:
sub.should_never_see_this_0 0x1800e00ad [DATA] lea rdx, str.m_iHealth sub.should_never_see_this_610 0x180130b2f [DATA] lea rdx, str.m_iHealth sub.should_never_see_this_780 0x180168943 [DATA] lea rdx, str.m_iHealth sub.should_never_see_this_540 0x1802bd680 [DATA] lea rdx, str.m_iHealth sub.should_never_see_this_9e0 0x180582af8 [DATA] lea rdx, str.m_iHealth sub.should_never_see_this_c60 0x180584f37 [DATA] lea rdx, str.m_iHealth
Выбираем любую понравившуюся строку и выводим дизассемблерный листинг по выбранному адресу
[0x180807f5c]> pd 6 @ 0x1800e00ad | 0x1800e00ad 488d15acd67c. lea rdx, str.m_iHealth ; hit0_0 ; 0x1808ad760 ; "m_iHealth" | 0x1800e00b4 488d0df5a6b1. lea rcx, [0x180bfa7b0] | 0x1800e00bb 41b890030000 mov r8d, 0x390 ; 912 | 0x1800e00c1 48897c2428 mov qword [local_28h], rdi ; arg2 | 0x1800e00c6 48897c2420 mov qword [local_20h], rdi ; arg1 | 0x1800e00cb e890f00e00 call fcn.1801cf160
0x390 наше смещение на m_iHealth.
Команда:
pd
выводит дизассемблерный листинг т.к нам не нужен большой листинг указываем количество выводимых инструкций, "@" указывает что нам надо получить вывод по адресу, если не указать "@", то листинг выводиться по текущему адресу EIP.
В последствии, мы можем написать скрипт, который одной командой проделает все что мы написали выше, это очень удобно и быстро для дампа смещений после обновлений игры, если нет желания писать свой дампер с нуля.
- 1
- 2
-
4 минуты назад, mumut сказал:
А как понять изменилось или не изменилось ?
Режимы отсева, после поиска неизвестного.
-
В зависимости от ключа шифрования значения, шифрованное значение может как увеличиться, так и уменьшаться. Поэтому надежней всего искать неизвестное 4 байта изменилось/не изменилось.
Спойлер#Пример кода шифрования значения с ключем 0x66 a = 1000 for i in range(1,20): print "{} = {}".format(a - i, hex((a - i) ^ 0x66)) ==================================================================== 999 = 0x381 998 = 0x380 997 = 0x383 996 = 0x382 995 = 0x385 994 = 0x384 993 = 0x387 992 = 0x386 991 = 0x3b9 990 = 0x3b8 989 = 0x3bb 988 = 0x3ba 987 = 0x3bd 986 = 0x3bc 985 = 0x3bf 984 = 0x3be 983 = 0x3b1 982 = 0x3b0 981 = 0x3b3
-
8 минут назад, Stigmaer сказал:
у меня этой проблемы нет
У нас тут тоталитарный режим, аватарки по карточкам можно ставить, максимальный размер 0,49 мб на файл, если картинка больше по размеру, надо помогать форуму в развитии и с первой премии сможешь установить какой захочешь файл.
-
Достаточно специфичный способ, который подойдет к небольшому количеству игр.
-
Если все совсем плохо с игрой, можно попробовать извращения, сравнить стек вызовов у игрока и противника и если они отличаются(например из разных мест вызывается функция нанесение урона), то фильтровать по адресу возврата. Например,
cmp [esp+размер кадра стека + количество положеных в стек регистров в прологе], адрес возврата (адрес в какую функцию вернуть выполнение кода, уникальный вызов дяя игрока) je code //ohk для противников code: //бессмертие
Если с адресами, то есть несколько инструкций, которые вызывают одну функцию из разных мест для игрока и NPC, значит адрес возврата будет уникальный для игрока. Возьмем к примеру адрес возврата игрока 0xDEADF00D, для NPC 0xDEADFACE, внутри вызываемой функции они будут иметь одинаковое смещение по стеку к примеру 0x44(размер кадра стека) + 4 байта на сохраненный адрес кадра стека функции откуда происходил вызов + 4 байта на адрес куда вернуть выполнение кода, после вызова функции.
//cmp [esp+0x44+4+4], 0xDEADF00D cmp [esp+0x4C], 0xDEADF00D je code //ohk для противников code: //бессмертие
-
35 минут назад, ЛАГАРИУМ сказал:
Может знаеш как в гта 5 найти функцию force vehicles
Подобная настройка есть в структуре машины
-
-
37 минут назад, Alex2411 сказал:
у меня не получаеться
Получи адрес который работает с этой инструкцией
fld qword ptr [eax+40]
А после ставь бряк на доступ по найденному адресу, должны появиться ещё инструкции работающие с этим адресом и пробуй делать инжект на них. Так же, можно найти откуда берется значение в адресе [eax+40] и использовать скрипт для записи в адрес, который будет писать значение в [eax+40].
-
1 час назад, Alex2411 сказал:
что можно сделать ?
инжект на другом куске памяти где-нибудь до выполнения этой инструкции.
-
46 минут назад, qymb сказал:
только я не могу понять, почему при добавлении [400000 + 005352B0] -> 02C0C370 ?
Указатель. Адрес [4000000 + 005352B0] указывает данные внутри 45352B0, которые равны 0x2C0C370.
- 1
-
2 часа назад, Garik66 сказал:
Ничего удивительного, я как минимум для двух игр делал фильтры по esp (и работала всегда и у всех)
Проблема была только в том что по esp в зависимости от ОС отличался на 8.
По идее это сравнение выглядит как сравнение с esp и адресом, но кадр стека обычно выделяется случайно, поэтому если эта проверка работает, то либо нереальное везение, либо я что-то не понимаю в работе стека. Вот для примера:
-
4 часа назад, seifmagdi сказал:
cmp esp,0019fab8
Удивительная проверка, она ведь не будет работать после перезапуска игры/пк.
-
55 минут назад, SerVick сказал:
Ибо славяне -это душа земли.
Громко сказано.
55 минут назад, SerVick сказал:И partoftheworlD объясни мне -что такое язычество?!
Политеизм
-
Вызови функцию, которая меняет владельца машины, декомпилированные скрипты игры в интернете есть, архитектура самп позволяет клиентом влиять на других клиентов.
27 минут назад, TimaS сказал:Я искал, bool значение , которая если 1 - то игрок в машине, если 0 - то игрок не в машине
Я тоже написал скрипт, так же, которая делает всегда 1.
Но игра вылетает
Какое-то рукоблудство с заскоком обмануть серверную часть игры.
-
53 минуты назад, JustHack сказал:
Не понял, как связаны Славяне, форум и коньяк...
Языческие обряды на современный лад.
-
2 часа назад, TimaS сказал:
Возможно ли взломать античит сервера?
Да.
-
13 часов назад, AlienJesus сказал:
В том и дело, что не работает.. вот видео, потом переделал на SendInput, всё тоже самое..
Тогда остаётся отправлять консольную команду в игру, через твоё приложение( подобная тема была на форуме)
-
Найди инструкцию которая хранит максимальное значение и пиши в текущее, и никакие проверки в скриптах не нужны
флаги на не однократное исполнение
in Общение
Опубликовано
используй цикл for