-
Постов
705 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные RockHammer
-
-
Как вариант - можно написать число в HEX (шестнадцатеричной) системе счисления, например:
mov [eax+10],63 //в DEC (десятичная) = 99
Или в DEC:mov [eax+10],#99 //в HEX = 63
Но lamalamaz правильно сказал, все зависит от типа данных. Можно вписать целое число, а в игре оно используется как тип Float, допустим. И дробная часть используется для каких-то дополнительных операций, отсюда и частые "баги", с "убегающими" полосками, или не отображаемыми числами.Проблему решил. Нужно было писать не в смещение, а в регистр (который после запятой в конце)
Однако я же победитель по жизни! Поэтому при компилировании трейнера в СЕ - вот такая штука происходит:
http://img-fotki.yandex.ru/get/5507/158357326.0/0_11bbef_5629635a_orig
При вот таких настройках:
http://img-fotki.yandex.ru/get/5411/158357326.0/0_11bbf0_5ac50faf_orig
-
Ну тут проще вместо ecx пиши свое значение(смотря какой тип данных обрабатывает эта инструкция)
mov [rbx+50],(float)100
cmp qword ptr [rdx+00000088],00
или
mov [rbx+50],64
cmp qword ptr [rdx+00000088],00
все зависит от типа данных
4 байта. В том то и дело... Я даже не знаю что в скобках писать, если такой тип данных. (4byte) почему-то не катит...
все зависит от типа данных
Не работает
mov [rbx+50],64
cmp qword ptr [rdx+00000088],00
Я прописал свое значение - 15, но оно не действует... Пробовал add [rbx+50],2 но даже оно не катит.
-
Попробуйте воспользоваться AOB сканом при создании скрипта.
Оказывается инструкция мертвая была. Переписал на новую, работает)
AOBScan - идея неплохая... Но слабо оптимизированная, ибо писать буду в том же СЕ
Вот еще одна непослушная инструкция ))
[ENABLE]alloc(newmem,2048,"ShadowOfMordor.exe"+CC19E4) label(returnhere)label(originalcode)label(exit)newmem:originalcode:mov [rbx+50],ecxcmp qword ptr [rdx+00000088],00exit:jmp returnhere"ShadowOfMordor.exe"+CC19E4:jmp newmemnopnopnopnopnopnopreturnhere:[DISABLE]"ShadowOfMordor.exe"+CC19E4:mov [rbx+50],ecxcmp qword ptr [rdx+00000088],00dealloc(newmem)
Не посоветуешь, как лучше ее "укротить" ?)
-
А саму инструкцию проверял? Попробуй сначала так:
[ENABLE]alloc(newmem,2048)label(returnhere)newmem:sub [rbx+54],0jmp returnhere"ShadowOfMordor.exe"+CC1FBC:jmp newmemreturnhere:[DISABLE]"ShadowOfMordor.exe"+CC1FBC:movss [rbx+54],xmm7dealloc(newmem)
И проверь, будет отниматься, или нет (разумеется, не за одно применение, а несколько раз выполни какое-то действие, чтобы точно было ясно, рабочая-ли эта инструкция).Но вообще, все проблемы могут быть как-раз из-за работы со специфичными регистрами xmm#.
Варианты решения:
1. Выполнить пошаговую отладку, и попробовать выйти на другую инструкцию, работающую с нужной характеристикой в игре.
2. Читать про работу с числами с плавающей точкой, и такими регистрами, как xmm#
Конкретно с movss и регистром xmm1 у меня недавно был затык, проблему решил способом, предложенным в первом пункте, т.к. так и не смог победить этого зверя.
Может кто на форуме более прошаренный в асме подскажет...
Я вот еще что выяснил: оказывается эта инструкция, отвечающая за концентрацию - работает еще и силой натяжения лука!
Для справки, концентрация - количество времени, на которое ты можешь замедлить время в режиме прицеливания из лука. А чтобы выстрелить с особой силой - удерживать кнопку броска стрелы. Так вот, убийство инструкции с концентрацией почему-то сбило натяжение.
В нормальном состоянии - натянул стрелу и стреляй, а после убийства этот процесс натяжения стрелы циклится. Как только стрела приходит в натянутое положение - вновь делается НЕнатянутой и так по кругу. Странно...
[ENABLE]alloc(newmem,2048,"ShadowOfMordor.exe"+CC1FBC) label(returnhere)label(life)label(exit)newmem:movss xmm7,[life]movss [rbx+54],xmm7exit:jmp returnherelife:dd (float)200"ShadowOfMordor.exe"+CC1FBC:jmp newmemreturnhere:[DISABLE]"ShadowOfMordor.exe"+CC1FBC:movss [rbx+54],xmm7dealloc(newmem)
Работает, но до перезагрузки
-
Если буковка r значит он 64-битный. rax, rbx и т.д.
У меня Win7x64
-
Это что-то новое! Какой то новый регистр rbx, я такое в первые вижу, и он чё реально работает?
Сам регистр? А от чего же ему не работать... Если он и присутствует в процессе - то выполняет какую-либо функцию) Или ты про что-то конкретное?
-
Странный какой-то АА скрипт, если честно...
Попробуй так:
[ENABLE]alloc(newmem,2048)label(returnhere)newmem:mov [rbx+54],(float)200jmp returnhere"ShadowOfMordor.exe"+CC1FBC:jmp newmemreturnhere:[DISABLE]"ShadowOfMordor.exe"+CC1FBC:movss [rbx+54],xmm7dealloc(newmem)
Спасибо) как выяснилось - переставление (float) на первое место помогло, но в игре не работает... Может есть идеи как превратить это в рабочий код? Я просто слабо знаком с ассемблерными инструкциями и их практическим применением.
-
Всем привет!
Ломаю недавно вышедшую игрушку - Shadow of Mordor. Нашел концентрацию (без прокачки - 100 float, 0 когда концентрации нет)
Сначала нашел указатели к значению, но они в один прекрасный момент, таинственным образом перестали работать. Просто взяли и перестали работать. (где значение стали вопросительные знаки???)
Потом решил сделать убийство (nop), получилось. Хотел модифицировать код до инъекции.
Вот такой скрипт получился:
[ENABLE]alloc(newmem,2048,"ShadowOfMordor.exe"+CC1FBC) label(returnhere)label(originalcode)label(exit)newmem:mov [rbx+54],200(float)originalcode:movss [rbx+54],xmm7exit:jmp returnhere"ShadowOfMordor.exe"+CC1FBC:jmp newmemreturnhere:[DISABLE]"ShadowOfMordor.exe"+CC1FBC:movss [rbx+54],xmm7dealloc(newmem)
и почему-то не компилируется... Проблема в 10 строке (мой код, не удивительно )
Кто знает, как обойти проблему? Или как лучше записать, что это значение в типе данных - float?
Либо как сделать так, чтобы было всегда 200 значение?
-
Если не лениться и окинуть взглядом весь форум в целом, то можно совершенно случайно наткнуться на раздел "Программирование", в котором есть подраздел
http://forum.gamehacklab.ru/forum/23-asmssvccvbnet/
Вот именно в нем и можно задать вопросы касательно программирования. Странно, правда?
И правда, странно... Буду знать.
-
Проблема в невнимательности. Как исправить - посмотреть внимательно. Если я правильно помню, нужно писать GdiPlus, а не Gdiplus. Впрочем, я не уверен, под винду давно не кодил.
Ошибку исправил. А на будущее, в каком разделе создавать подобные вопросы, на счет программирования?
-
Всем привет
Решил поближе познакомится с С++, а именно - захотелось хардкора) А создавать формочку вручную - это, ИМХО, чистый хадкор)
У кодера был такой урок, по созданию формочки через Win32 проект.
Собственно, загвоздка вышла на следующей части - Знакомимся ближе с WinAPI и GUI временная метка - 3:15
На стадии
#using namespace Gdiplus;
Выдает ошибку
1 IntelliSense: требуется имя файла
На всякий случай - вот скриншот
В чем проблема? Как ее исправить?
-
Разумеется, можно. Только, как правило, в трейнеры и кейгены вставляют особую "трекерную" музыку. Это определенный формат, занимающий мало места, и для его проигрывания есть либы. Также можно проигрывать звук функцией PlaySound из mmsystemh/winmm.lib, но она понимает только WAV файлы, которые довольно велики. Ну и, я уверен, есть либы для проигрывания mp3. Сам лично не искал, но, думаю, поиск их проблем не составит.
Благодарю за информацию.
Так же, вот что я нашел в интернете на эту тему (если она кого-то заинтересовала):
#include <windows.h>#pragma comment(lib, "winmm.lib") int main(){ mciSendString("play D:\\файл.mp3 wait", NULL, 0, NULL); return 0;}
-
День добрый, GameHackLab!
Осваиваюсь у вас на форуме
Потихоньку начинаю грызть гранит С++. Начал изучать примеры программ, построенных на этом языке, и меня кое что удивило.
Как остальные люди умудряются впихивать в свои трейнеры музыку?
Не то, чтобы я хотел создавать трейнеры... Я хочу создать программку-помощник, для работы. Хочу научить ее разговаривать голосом Чарльза, из "Железного человека", чтобы почувствовать себя крутым хацкером
Собственно, исходняки голоса у меня уже есть, а вот как добавить их в свою прогу - не знаю. Я видел что-то подобное у Coder1994, где он втыкал в свою программку .bmp файл (ламборджини )
Может что-то подобное можно проделать с музыкой?
-
Слушай, не знаю в чем причина - но у меня твои ссылки не октрываются. Перекидывает на клиент для яндекс облака.
Shadow Of Mordor: Инъекция Се
in Вопросы по созданию читов в одиночных играх
Опубликовано
veh debuger необходим для корректной работы чита, ибо обычный windows отладчик уже не тянет)
Собственно, проект собрал) Помогло снятие галочки "вызов трейнера по клавише"