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

partoftheworlD

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

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

  • Посещение

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

    172

Весь контент partoftheworlD

  1. Ну хук вешают обычно опкодом 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 } Оно и будет нормально работать, просто к чему лишние байты в функции после компиляции. Да и это написал следуя своему опыту, когда я учился вешать хуки, то без такого атрибута у меня приложения крашились, но раз работает, то хорошо.
  2. Тут не правильно объявлена функция с асм вставкой, нужно использовать голую декларацию __declspec(naked) void CallHook() Чтобы для твоей функции компилятор не генерировал пролог и эпилог, а использовать массив байт это изврат, когда есть асм вставки, таким только на C# занимаются? И кстати, используя опкод E8 хук не крашит приложение?
  3. Ерунда, вот сделаешь бессмертие в этой трейнми тогда поговорим. Настоящий папка выглядит как я когда только начинал взлом игр.? Cпециально для тебя видео записал, так что учись пока я молод. Как два пальца почесать. я через выход на реальное значение прошел, а вот через прогресс бар не додумался бы сделать?
  4. Я все прошел в первый день релиза CE, понравился 3-й уровень только. На 3-м пришлось отключать коллизию и увеличивать высоту прыжка, чтобы пройти.
  5. Значение можешь обычным поиском найти изменяя значения на любое другое, не обязательно чтобы консольная команда работала. А если интересует поиск консолькных команд, тогда находишь буфер в котором хранятся консольные команды, ставишь бряк на запись в памяти примерно высчитав через сколько байт заполняются команды в истории, получаешь инструкцию, реверсишь пока не поймешь как устроены и работают консольные команды, вот темы на по читать. и
  6. Так не бывает же и так его будет проще взломать, чтобы была пиратская копия чита.
  7. Т.е обычные вещи для современной ОС и командной строки. И опять C#, что за поколение С# -ов?
  8. Увеличь максимальное значение смещения до 8к т.к. только для указателя на вложенную структуру с игроком смещение 4300+, а у тебя 4096 стоит в настройках. Эта игра использует для вычисления каких-либо переменных по смещениям, но базовых адресов всего несколько десятков, т.е от них и высчитывается смещение на патроны к примеру так что думаю средний уровень указателей 5-8 будет.
  9. http://pwnadventure.com В комплекте с игрой идут отладочные символы pdb файл, лучше без него реверсить, но с ним более понятней, для новичков самое то. Эта игра больше походит на небольшой трейнми который содержит в себе все основные задания для практики новичкам от поиска значений до восстановления и генерации алгоритмов ключей к сундукам, отключения коллизии и т.д. Либо любую игру которая вышла на Windows и MacOs, в играх под мак часто остаются все функции в игре подписаны, я так ревершу Dying Light
  10. Сложную игру взял для тренировок, ну да ладно. Если бряки не срабатывают, то проверяй настройки CE, если с настройками все хорошо ставь бряки в памяти на запись/доступ, либо отлаживай чем-нибудь другим, а не стандартным CE отладчиком. виртуальные таблицы использовать?
  11. Ты не правильно получаешь указатель на клиентскую структуру, client.dll + 004035C0 + 5C считая так получишь левый адрес, просто потому что указатель двухуровневый, а ты его за 1 уровень посчитал, а если так: сначала считаешь указатель на игрока RPM(client.dll + 004035C0, &base); дальше читаешь здоровье игрока по указателю и смещению RPM(base + 0x5c, &health) получаешь здоровье. И в следующий раз оформляй заголовок темы по правилам, "CS:S RPM (Я туповат)" не несет никакой смысловой нагрузки.
  12. 1. Неизвестно, надо восстановить откуда инициализируется и где используется эта функция т.к при инициализации должна быть нормализация значений на непредвиденный случай, а у тебя просто кусок кода, который неизвестно для чего используется. 2. Не все игры используют стандартные формулы для расчетов и почему в коде именно так, знают только разработчики 3. Такой же ответ как во 2-м пункте.
  13. Привет И не получится изменить просто значение, потому что каждый подобранный предмет является объектом и добавляется с указанием хеша предмета в инвентарь. Это скрин функции которую ты нашел. Ты нашел значение которое просто добавляет в таблицу цифру в слот, вот она. this.table[num] = num2 + 1; В эту функцию не передается количество подобранных предметов, а значит единственный вариант добавлять предметы это переписать эту функцию.
  14. есть же доки, там все написано. CreateRemoteThread функция может из внешнего чита поток создать в другом приложении, CreateThread может создать поток в чужом приложении, при условии что будет скомпилирована дллка и заинжекшена.
  15. Во-первых почитать правила оформления тем. Во-вторых дай как можно больше информации участникам форума (что пробовал, как пробовал искать, с какими настройками и т.д) В-третьих. Закрываю.
  16. ну как бы все зависит от игры, это не какая-то там константа, что вот 1 уровень для всех игр. В зависимости от используемого значения, необходимо свой уровень выставлять. Например, для здоровья это обычно 1-2 уровня, что-то типа патрон можно использовать 1 уровень, чтобы найти структуру оружия, 2 уровня, что бы найти структуру инвентаря, 3 уровня, чтобы найти структуру игрока у которого есть в структуре инвентаря структура оружия, которая содержит патроны.
  17. Уровень указателя малый или в пути до файла со сканированием есть русские буквы. P.s это может быть от жесткого диска
  18. На этот случай можно вешать хук на GetProcAddress и записывать все что игра подгружает, даже если стоит протектор, пакер и виртуалка в добавок. А по твоей теме, тебе нужно получать это https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx D3D_FEATURE_LEVEL – параметр, указывающий, какую версию DirectX поддерживает наша видеокарта, который в последствии используется для создания устройства.
  19. Обычно такие имена ида дает тем функциям которые не являются библиотечными, но подходят под сигнатуру, чтобы от этого избавиться, можно попробовать добавить доп.библиотеки(View -> Subview -> Signatures и там добавляешь доп.библиотеки.), либо просто снять галочку в свойствах функции.
  20. У него консольный проект поэтому используется stdcall и поэтому ошибка как сказали выше
×
×
  • Создать...

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

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