-
Постов
80 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Dejavu
-
-
Доброго времени суток, форумчане.
Решил поиграть в Saints Row: The Third да и поломать по ходу игры.
Начинаю со взлома кол-ва денег.Нашел нужный адрес, посмотрел на инструкции, которые получают доступ. Попробовал исправить значение в CE — не поменялось, я подумал, что там есть инструкция, которая перезаписывает значение по этому адресу, что и не дает мне изменить его. Нашел ее, узнав, что она работает со многими адресами, начал писать фильтр, но все безуспешно — игра просто крашится. Что я делаю не так?
-
-
Доброго времени суток, форумчане!
Столкнулся с проблемой поиска здоровья в данной игре. Второй день не могу уже никак найти эту полоску здоровья, все типы данных уже перебрал. Может, кто копался уже в этой игре? -
1 час назад, partoftheworlD сказал:
Не уверен, но вроде бы тут цикл должен быть который будет перебирать смещения, а шаблон читает их.
Да, скорее всего. Попробую
-
5 часов назад, Trix сказал:
Помнится мне, что надо не складывать смещение, а читать информацию по адресу и к этой информации уже прибавлять смещение.
По крайней мере, у меня в WOW так было, ибо какой смысл ставить несколько смещений отдельно??Читай информацию из адреса Base + 0x0024EC1C
Прибавляй к значению по этому адресу +0x36c
и так до конца указателей
Я уже разобрался
-
5 часов назад, Trix сказал:
Тут используется модульная адресация, а ты ищешь базовый модуль, когда скорее всего используется другой
Посмотри все модули и сопоставь со своим
Нет, здесь я использую все правильно, мне и нужен базовый
-
В 23.10.2016в09:44, partoftheworlD сказал:
Обновил, под себя переделаешь.
Я пример смотрю из код своего трейнера, который прекрасно работает.
Есть функция readP, но, видимо, я неправильно ей пользуюсь
Скрытый текст#include "Includes.h" ProcMem Mem("collapse.exe"); DWORD Base = Mem.dwBase; char Pointers[] = {0x36c, 0x308,0x508 }; float Status; using namespace std; int main() { float BaseAdress = Mem.readP<float>((DWORD)Base + 0x0024EC1C,Pointers,true); cout << BaseAdress << endl; system("pause"); return 0; }
-
@partoftheworlD Получилось, но только таким образом
Скрытый текстint main() { DWORD BaseAdress = Mem.read<DWORD>(Base + 0x0024EC1C); DWORD BaseAdress1 = Mem.read<DWORD>(BaseAdress + 0x36c); DWORD BaseAdress2 = Mem.read<DWORD>(BaseAdress1 + 0x308); float Status = Mem.read<float>(BaseAdress2 + 0x508); cout << Status << endl; system("pause"); return 0; }
-
14 минуты назад, partoftheworlD сказал:
Обновил, под себя переделаешь.
Я пример смотрю из код своего трейнера, который прекрасно работает.
Хорошо, днем разберусь
-
Что это?
Откуда memory->?
Если убрать все, что мне тут непонятно, то получится то же самое, что и у меня, иначе не работает -
Скрытый текст
#include "Includes.h" ProcMem Mem("collapse.exe"); DWORD Base = Mem.dwBase; DWORD BaseAdress; float Status; using namespace std; int main() { DWORD BaseAdress = Base + 0x0024EC1C; float Status = Mem.read<float>(((BaseAdress + 0x36c) + 0x308) + 0x508); cout << Status << endl; system("pause"); return 0; }
Все равно не то
-
Вопрос 1:
Использую ProcMem(Source: ProcMem.h,UPD).
Пытаюсь получить Base адрес процесса игры:ProcMem Mem("collapse.exe"); DWORD Base = Mem.dwBase;
Для того, что бы потом с указателя типа "collapse.exe" + 0x123 прочитать значение, но проблема в том, что в CE показывает один адрес процесса(Например, 00905A4D), а в C++ совсем другой(4194304). Не могу разобраться, в чем же проблема?
Вопрос 2Как правильно использовать указатель с несколькими смещениями?
Я использую так:
float Status = Mem.read<float>((((Base + 0x0024EC1C) + 0x36c) + 0x308) + 0x508);
Или можно
float Status = Mem.read<float>(Base + 0x0024EC1C + 0x36c + 0x308 + 0x508);
Как правильно?
-
1 минуту назад, krocki сказал:
Короче поставилась, ща гляним что там!
Может быть тут есть другой способ общения?
Не думаю, что общение под темой — хорошая идея -
4 минуты назад, krocki сказал:
У меня тут то одно окно распаковки, то другое.
Нет, у меня такого не было. У меня все в одном окне
-
4 минуты назад, krocki сказал:
Dejavu Интересно у тебя так же была упакована игра, блин переупакавали её кокретно, аш ПК начал виснуть.
Не знаю, какая у тебя там. Ну у меня тоже довольно таки долго устанавливалась
-
2 минуты назад, Garik66 сказал:
Не только, золото, от дерева - например, а в Вашем случае патроны, от всего остального, но для этой игры сомневаюсь, что в регистрах, что-нибудь поможет отделиться от кучи не нужных адресов. Мне приходилось для некоторых игр, для которых многие отказывались писать скрипты, делать заслон из фильтров от 3 до 5 иногда. Но есть и другие варианты написания фильтра, поэтому ещё раз повторюсь - смотрите видео-уроки.
Я смотрю все видеоуроки, как же без них.
Просто куча вопросов, ответы на все вопросы не могут быть в видеоуроках
-
3 минуты назад, krocki сказал:
Здаров! Если по быстрому хочешь фильтр сделать, то посмотри реги. может из них скляпаешь фильтр.
Я так понимаю, фильтр нужен для того, что бы отличать одно от другого?
Допустим союзника от врага, или я неправильно думаю? -
21 минуты назад, Garik66 сказал:
Попробуйте перезагрузите игру и СЕ тоже. Вполне возможно, так у Вас были вылеты и Вы что там нопили, есть какие-то изменения.
После перезагрузки обоих, проверьте байты сигнатуры и в отладчике
89 0E 8B 50 04 89 56 04 83 78 // эти байты
Если не совпадают, ещё раз выложите СЕ-ный скрипт.
Попробовал в CS:S сделать через AOB — тоже не хочет включаться
В той игре миссия не позволяет проверить, но не думаю, что будет работать. -
@Garik66
Почему то AOB скрипт не хочет включатся в таблице -
3 минуты назад, Garik66 сказал:
Дерзайте, только откуда вы возьмёте адрес патронов для сравнения? Или адреса в игре статические?
Да, я это понимаю. Но одноразовый рабочий скрипт, написанный мной — уже радость. Сейчас же мне известен адрес моих патронов, после перезапуска уже неизвестен будет.
-
4 минуты назад, Garik66 сказал:
И Совет - игрушка, которую Вы выбрали, судя по коду, для теперешнего Вашего уровня тяжеловата - сомневаюсь, что Вы сумеете подобрать фильтры
Я предполагаю, что нужно положить в стек значение esi, если он будет совпадать с адресом моих патрон, то не буду убавлять их
-
2 минуты назад, Garik66 сказал:
И Совет - игрушка, которую Вы выбрали, судя по коду, для теперешнего Вашего уровня тяжеловата - сомневаюсь, что Вы сумеете подобрать фильтры.
Лучше возьмите для взлома более простые игры.
В Вашей игрушке в игровом коде используются LUA-скрипты и соответственно на каждую инструкцию навешено куча адресов (как я писал ранее там и графика и звук и т.д. и т.п.)
Все нормально, попытка — не пытка
-
Все, понял. Всем спасибо!
-
2 минуты назад, Garik66 сказал:
а пишете в адрес:
26 минуты назад, Dejavu сказал:mov [esi],#42340000
В стеке значение находится в 4 байтах, поэтому я и писал так. Разве разница есть между
mov [esi],(float)45
и
mov [esi],#42340000
этим?
[ Saints Row: The Third ] Не могу написать скрипт.
in Вопросы по созданию читов в одиночных играх
Опубликовано
@Garik66
// При большом коде нужны теги и кода и спойлера Garik66