

partoftheworlD
Пользователи+-
Постов
2 687 -
Зарегистрирован
-
Посещение
-
Победитель дней
172
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент partoftheworlD
-
Ну хук вешают обычно опкодом E9(jmp), ведь E8 это call, который сохраняет в стек позицию для возврата, разница у них не большая, но именно она может стать причиной краша, а чтобы такое заметить под отладкой нужно быть сверхвнимательным. __declspec(naked) void Ammo() { __asm { mov AmmoBase , esi MOV [ESI + 0x1414], 0x63 jmp [OrigAmmo] } } если единичная инструкция, то __declspec(naked) void Ammo() { _asm mov AmmoBase , esi } Оно и будет нормально работать, просто к чему лишние байты в функции после компиляции. Да и это написал следуя своему опыту, когда я учился вешать хуки, то без такого атрибута у меня приложения крашились, но раз работает, то хорошо.
-
Тут не правильно объявлена функция с асм вставкой, нужно использовать голую декларацию __declspec(naked) void CallHook() Чтобы для твоей функции компилятор не генерировал пролог и эпилог, а использовать массив байт это изврат, когда есть асм вставки, таким только на C# занимаются? И кстати, используя опкод E8 хук не крашит приложение?
-
Ерунда, вот сделаешь бессмертие в этой трейнми тогда поговорим. Настоящий папка выглядит как я когда только начинал взлом игр.? Cпециально для тебя видео записал, так что учись пока я молод. Как два пальца почесать. я через выход на реальное значение прошел, а вот через прогресс бар не додумался бы сделать?
-
Я все прошел в первый день релиза CE, понравился 3-й уровень только. На 3-м пришлось отключать коллизию и увеличивать высоту прыжка, чтобы пройти.
-
Значение можешь обычным поиском найти изменяя значения на любое другое, не обязательно чтобы консольная команда работала. А если интересует поиск консолькных команд, тогда находишь буфер в котором хранятся консольные команды, ставишь бряк на запись в памяти примерно высчитав через сколько байт заполняются команды в истории, получаешь инструкцию, реверсишь пока не поймешь как устроены и работают консольные команды, вот темы на по читать. и
-
Так не бывает же и так его будет проще взломать, чтобы была пиратская копия чита.
-
Т.е обычные вещи для современной ОС и командной строки. И опять C#, что за поколение С# -ов?
-
Увеличь максимальное значение смещения до 8к т.к. только для указателя на вложенную структуру с игроком смещение 4300+, а у тебя 4096 стоит в настройках. Эта игра использует для вычисления каких-либо переменных по смещениям, но базовых адресов всего несколько десятков, т.е от них и высчитывается смещение на патроны к примеру так что думаю средний уровень указателей 5-8 будет.
- 2 ответа
-
- 1
-
-
http://pwnadventure.com В комплекте с игрой идут отладочные символы pdb файл, лучше без него реверсить, но с ним более понятней, для новичков самое то. Эта игра больше походит на небольшой трейнми который содержит в себе все основные задания для практики новичкам от поиска значений до восстановления и генерации алгоритмов ключей к сундукам, отключения коллизии и т.д. Либо любую игру которая вышла на Windows и MacOs, в играх под мак часто остаются все функции в игре подписаны, я так ревершу Dying Light
-
Ты не правильно получаешь указатель на клиентскую структуру, client.dll + 004035C0 + 5C считая так получишь левый адрес, просто потому что указатель двухуровневый, а ты его за 1 уровень посчитал, а если так: сначала считаешь указатель на игрока RPM(client.dll + 004035C0, &base); дальше читаешь здоровье игрока по указателю и смещению RPM(base + 0x5c, &health) получаешь здоровье. И в следующий раз оформляй заголовок темы по правилам, "CS:S RPM (Я туповат)" не несет никакой смысловой нагрузки.
-
1. Неизвестно, надо восстановить откуда инициализируется и где используется эта функция т.к при инициализации должна быть нормализация значений на непредвиденный случай, а у тебя просто кусок кода, который неизвестно для чего используется. 2. Не все игры используют стандартные формулы для расчетов и почему в коде именно так, знают только разработчики 3. Такой же ответ как во 2-м пункте.
-
Привет И не получится изменить просто значение, потому что каждый подобранный предмет является объектом и добавляется с указанием хеша предмета в инвентарь. Это скрин функции которую ты нашел. Ты нашел значение которое просто добавляет в таблицу цифру в слот, вот она. this.table[num] = num2 + 1; В эту функцию не передается количество подобранных предметов, а значит единственный вариант добавлять предметы это переписать эту функцию.
-
есть же доки, там все написано. CreateRemoteThread функция может из внешнего чита поток создать в другом приложении, CreateThread может создать поток в чужом приложении, при условии что будет скомпилирована дллка и заинжекшена.
-
CreateRemoteThread CreateThread
-
Во-первых почитать правила оформления тем. Во-вторых дай как можно больше информации участникам форума (что пробовал, как пробовал искать, с какими настройками и т.д) В-третьих. Закрываю.
-
ну как бы все зависит от игры, это не какая-то там константа, что вот 1 уровень для всех игр. В зависимости от используемого значения, необходимо свой уровень выставлять. Например, для здоровья это обычно 1-2 уровня, что-то типа патрон можно использовать 1 уровень, чтобы найти структуру оружия, 2 уровня, что бы найти структуру инвентаря, 3 уровня, чтобы найти структуру игрока у которого есть в структуре инвентаря структура оружия, которая содержит патроны.
-
Уровень указателя малый или в пути до файла со сканированием есть русские буквы. P.s это может быть от жесткого диска
-
На этот случай можно вешать хук на GetProcAddress и записывать все что игра подгружает, даже если стоит протектор, пакер и виртуалка в добавок. А по твоей теме, тебе нужно получать это https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx D3D_FEATURE_LEVEL – параметр, указывающий, какую версию DirectX поддерживает наша видеокарта, который в последствии используется для создания устройства.
-
Обычно такие имена ида дает тем функциям которые не являются библиотечными, но подходят под сигнатуру, чтобы от этого избавиться, можно попробовать добавить доп.библиотеки(View -> Subview -> Signatures и там добавляешь доп.библиотеки.), либо просто снять галочку в свойствах функции.
- 2 ответа
-
- 1
-
-
У него консольный проект поэтому используется stdcall и поэтому ошибка как сказали выше