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

imaginary

Помогаторы
  • Постов

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

  • Посещение

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

    43

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

  1. Мне казалось там dd а не db, с кем не бывает? ? Конечно в db float не запишется...
  2. В статье нет примеров и видео, поскольку мне кажется тут не о чем больше рассказывать, (в отличии от FPU) ?
  3. В данном руководстве описано как использовать xmm регистры, а так же некоторые команды. Список некоторых команд (напоминалка): О регистрах: Регистры в этих дополнениях сопроцессора очень похожи на основные, но в отличии от них могут содержать целых четыре элемента, и даже работать сразу со всеми четырьмя! Арифметические операции с регистрами: Все функции сложения, вычитания, и другие могут быть совершены только с регистрами. Такая инструкция сработает: addss xmm0,[MyLabel] А такая - нет. addss [MyLabel],xmm0 Потому следует все операции производить после записи регистров. Например, если необходимо прибавить что нибудь к переменной можно использовать такой код: movss xmm0,[MyLabel] //Записываем в xmm0 наше число addss xmm0,[MyAddValue] //Добавляем к нему другое movss [MyLabel],xmm0 //Записываем из xmm0 назад в число. Так же нужно помнить что регистры это не стек, и потому значения свои сохраняют после записи. Как уже было сказано выше, эти регистры могут содержать целых 4 элемента - работа с массивами: Массив должен состоять из четырёх элементов, например такой: MyMassiv: dd (float)2 dd (float)7 dd (float)29324.126 dd (float)8261.3 Что бы записать этот массив в xmm мы можем использовать следующий код: movups xmm0,[MyMassiv] После чего получим в xmm0 все четыре числа по порядку. Теперь мы можем сделать что нибудь с этим массивом, например умножить его на другой массив. К примеру вот такой: MyMassivMul: dd (float)1 dd (float)2 dd (float)0.5 dd (float)2 Умножаем: movups xmm0,[MyMassiv] //Загружаем наш массив movups xmm1,[MyMassivMul] //Загружаем массив на который умножим mulps xmm0,xmm1 //Умножаем movups [MyMassiv],xmm0 //Возвращаем в наш массив. После выполнения этого кода, массив примет такой вид: 2; 14; 14662,063; 16522,6. Так же можно вычитать, делить, находить корень, складывать, и многое другое.
  4. Всё не работает, например ты пустой адрес записываешь в ebx, после в [00000000](ebx) записываешь edx, и соответственно вылет. AOB - когда выбираешь как сделать инъекцию кода, есть выбор AOB. Это инъекция с поиском байт - CE ищет байты и после туда внедряет код. Лучше всего тебе пойти посмотреть самые начальные уроки. Какое название у игры?
  5. Для этого и существуют скрипты, берёшь какую нибудь инструкцию которая работает с твоим игроком, например с его здоровьем, типа такой Пример: mov [eax+123],ecx На неё делаешь скрипт, в скрипте создаёшь метку, вроде такого: Теперь, добавляешь в таблицу MyPlayer (в строку адреса вписываешь). В итоге получаешь при активации адрес своего игрока, и наплевать на обновления. (инъекцию AOB делать надо). Но учти, что инструкция должна работать только с твоим игроком.
  6. Создай скрипт типа такого: Всё, теперь ты можешь писать в newmem всё что хочешь, в пределах выделенного места. То есть например: А на счёт твоего кода, как бы там ни было, мне кажется ты записываешь в адрес переход по которому ничего не даст, то есть ведёт в никуда, попробуй сделать отладку. Мне не совсем понятно что ты пытаешься сделать, но если хочешь записать в тот адрес что то своё, то просто сделай: mov [ebp-10],edx //В место edx что то своё
  7. Возможность смены отладчика как раз и позволяет например обойти защиту игры от отладки. Если хорошо работал windows отладчик, то незачем менять на другой.
  8. Ты слишком банально себе это всё представляешь, тк ты искал адрес который (ключевое слово) храниться в другом, совсем не обязательно что там инструкции будут руководствоваться той же логикой что и предыдущие. Попробуй сделать скрипт и уже дальше смотри, если прямо проблема то повесь опять же скрипт на одну из первых инструкций и получай оттуда адрес игрока.
  9. Так может и не мучиться а написать скрипт который будет в метку записывать адрес игрока, а повесить его на эту инструкцию. Или же сделать запись того адреса в метку перед тем как он запишет сам себя. Вроде такого: your_code: mov [labelw],ebx code: mov ebx,[ebx]
  10. Всё правильно, там же есть элементы здоровья и тд? Игре же надо знать сколько и по какому адресу, что бы показать тебе на экран. Так что это то как раз не удивительно. На счёт отладчика, попробуй изменить тип в настройках.
  11. Заметь, дебагер показывает только конечный адрес, то есть после выполнения mov ebx,[ebx] он покажет тебе не нужное смещение, а твой же адрес. Потому перейди в отладчик - поставь бряк на этот адрес, и как только бряк поймает поток посмотри вправо - там появятся все регистры. Скопируй оттуда ebx, в нём должен быть правильный адрес. Это смещение +0. После можешь убрать бряк и запустить выполнение. Все нужные функции найдёшь в Debug.
  12. FreeCam - свободная камера, подразумевает возможность полёта камеры отдельно от объекта/персонажа и тому подобного, используется в самых разных целях, для обнаружения противников, для создания красивых снимков, для нахождения секретов и тому подобного. Принцип создания: Всё зависит от типа игры. Если реализован поворот камеры мышью - то данную функцию делать не нужно. Для перемещения камеры можно использовать самые разные функции, но я склоняюсь к полёту в ту сторону куда смотрит игрок. Для этого необходимо вычислить синус и косинус для поворота по горизонтальной, и синус для поворота по вертикальной оси. После их надо умножить на радиус, мы получим точку на сфере - это и будет вектор ускорения для камеры. Его следует добавлять к уже существующим координатам камеры, изменяя радиус мы можем изменять скорость. Для того что бы камера была "свободная", нужно записывать свои значения в координаты, а функцию которая записывает их в игре по стандарту - отключить. Более детально всё показано в следующем видео Создание свободной камеры на примере игры "WarThunder": Видео где показан принцип работы формул: тык
  13. Ставишь тип поиска Array of byte (Массив байт) ставишь "без разницы" в Writable и CopyOnWrite (синие квадратики вместо галочки), ставишь галочку hex у строки поиска, вставляешь массив и ищешь. Дам тебе ещё совет как там можно очень просто реализовать бесконечные патроны. Замени в своём скрипте ja Borderlands2.exe+A189C2 На jb Borderlands2.exe+A189C2 Только это еще сделает врагов бессмертными, и тебя ?
  14. Да , вижу у тебя не пересекаются jmp. А так ты можешь сделать, только смотри что бы сигнатура осталась уникальной.
  15. Например у тебя в коде есть какая нибудь сигнатура допустим (случайные числа) 23 7B 26 22, CE ищет эту сигнатуру. У тебя есть ещё один скрипт, он при поиске использует её же. Первый скрипт изменяет сигнатуру своим jmp *название метки*. Например он меняет первые 2 байта. (23 7B). Тебе надо найти вторые 2 байта и туда поставить скрипт, но первые байты изменены. Вместо этих байтов ставишь ** ** 26 22. Но так сигнатура может потерять свою уникальность, потому смотришь что есть выше в отладчике - например A5. Добавляешь A5 ** ** 26 22. Проверяешь поиском - уникально - используешь. Но вообще не стоит делать 2 скрипта которые работают в одном месте, сделай всё в одном скрипте. И к тому же, у тебя один скрипт может перезаписывать кусок jmp от другого, скорее всего будет просто вылет программы.
  16. Найти сигнатуру для поиска вручную, байты которые изменяются можешь обозначить ? или *, тогда CE будет принимать любые байты там, но при этом ты должен сохранить уникальность сигнатуры.
  17. Если так, то перефразируй строки в такой вариант: mov eax,[*adress*] mov eax,[eax]
  18. А какая разница, значение целое, находятся рядом, что так что эдак выходит одно и то же ведь ?
  19. В видео показано как сделать моментальную башню у танка, а так же что еще можно сделать моментальным. Скрипт на башню (64 бит): Советую написать свой скрипт на функции которая записывает в поворот, так будут намного качественней движения башни. Видео:
  20. Не будет, второе cmp перезапишет флаги первого, будет работать только второе. Лучше напиши: cmp [esi+A4],4 jg code cmp [esi+A4],3 jl code
  21. В этом руководстве показан принцип работы стека FPU и обращение с ним, рассмотрены команды загрузки, записи, проверки, и другие. Первая часть: Вторая часть: SoCommands.txt
  22. *Длинное видео к тому же содержит кучу моих ошибок, советую посмотреть полностью, (если будете сразу что то делать) , возможно такой опыт вам пригодится ? В этом видео показано как сделать сбор предметов с области (на сервере тоже) область регулируется (квадрат). Скрипт (поиск персонажа): Скрипт (сбор) с пояснениями: Видео (2 часа):
  23. Вот скрипт и видео, 2 инструкции, при убийстве врага записывается значение очков для уровня *забавно получилось - игра показывает кучу опыта при победе над врагом, будто так и должно быть) Действует только если за врага дают опыт, после достижения определённого уровня за слабых врагов больше не дают, за сильных дают. Скрипт: Видео:
  24. В танках есть структура хранящая в себе разные параметры физики нашего игрока, ускорение, координаты. По координатам её не найти, зато по боковому ускорению можно, а дальше уже выйти на координаты и обычное ускорение. В видео показано какие параметры за что отвечают. Поиск: Крутимся влево - больше, вправо - меньше. Видео: Скрипт: (64 бит flashplayer_sa. только)
  25. Хорошо, почему нет? ? Со следующей записью будет обычный шрифт, просто сейчас уже есть ещё 1 записаное почти часовое с курсивным. А на счёт звука, так я пишу а не говорю. Возможно вскоре эти проблемы решатся.
×
×
  • Создать...

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

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