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

RockHammer

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

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

  • Посещение

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

    7

Сообщения, опубликованные RockHammer

  1. Написано что с хоткеями проблема. И в Features used зачем галочку ставить на veh debugger?

    Покажи скрин со сборкой и хоткеями :)

    veh debuger необходим для корректной работы чита, ибо обычный windows отладчик уже не тянет) 

    Собственно, проект собрал) Помогло снятие галочки "вызов трейнера по клавише"

    6747211.png

    • Плюс 1
  2. Как вариант - можно написать число в 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

  3. Ну тут проще вместо 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  но даже оно не катит. 

  4. Попробуйте воспользоваться 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)

    Не посоветуешь, как лучше ее "укротить" ?)

  5. А саму инструкцию проверял? Попробуй сначала так:

    [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)

    Работает, но до перезагрузки

  6. Это что-то новое! Какой то новый регистр rbx, я такое в первые вижу, и он чё реально работает?  O-=

    Сам регистр? А от чего же ему не работать... Если он и присутствует в процессе - то выполняет какую-либо функцию) Или ты про что-то конкретное?

  7. Странный какой-то АА скрипт, если честно...

    Попробуй так:

    [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) на первое место помогло, но в игре не работает... Может есть идеи как превратить это в рабочий код? Я просто слабо знаком с ассемблерными инструкциями и их практическим применением.

  8. Всем привет!

     

    Ломаю недавно вышедшую игрушку - 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 значение?

  9. Если не лениться и окинуть взглядом весь форум в целом, то можно совершенно случайно наткнуться на раздел "Программирование", в котором есть подраздел

    http://forum.gamehacklab.ru/forum/23-asmssvccvbnet/

    Вот именно в нем и можно задать вопросы касательно программирования. Странно, правда?

    И правда, странно... Буду знать.

  10. Проблема в невнимательности. Как исправить - посмотреть внимательно. Если я правильно помню, нужно писать GdiPlus, а не Gdiplus. Впрочем, я не уверен, под винду давно не кодил.

    Ошибку исправил. А на будущее, в каком разделе создавать подобные вопросы, на счет программирования?

  11. Всем привет :)

     

    Решил поближе познакомится с С++, а именно - захотелось хардкора) А создавать формочку вручную - это, ИМХО, чистый хадкор) 

    У кодера был такой урок, по созданию формочки через Win32 проект.

    Собственно, загвоздка вышла на следующей части - Знакомимся ближе с WinAPI и GUI  временная метка - 3:15

    На стадии 

    #using namespace Gdiplus;

    Выдает ошибку

     

    1 IntelliSense: требуется имя файла   

     

    На всякий случай - вот скриншот

     

    В чем проблема? Как ее исправить?

  12. Разумеется, можно. Только, как правило, в трейнеры и кейгены вставляют особую "трекерную" музыку. Это определенный формат, занимающий мало места, и для его проигрывания есть либы. Также можно проигрывать звук функцией 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;}
  13. День добрый, GameHackLab!

     

    Осваиваюсь у вас на форуме :)

    Потихоньку начинаю грызть гранит С++. Начал изучать примеры программ, построенных на этом языке, и меня кое что удивило. 

    Как остальные люди умудряются впихивать в свои трейнеры музыку?

    Не то, чтобы я хотел создавать трейнеры... Я хочу создать программку-помощник, для работы. Хочу научить ее разговаривать голосом Чарльза, из "Железного человека", чтобы почувствовать себя крутым хацкером  :-D  :-D  :-D

    Собственно, исходняки голоса у меня уже есть, а вот как добавить их в свою прогу - не знаю. Я видел что-то подобное у Coder1994, где он втыкал в свою программку .bmp файл (ламборджини :) )

    Может что-то подобное можно проделать с музыкой?

×
×
  • Создать...

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

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