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

DMA адрес


Рекомендуемые сообщения

В этом теме я расскажу подробнее об DMA адресе (Значит динамический)

DMA адрес это плохо, потому что если вы например нашли адрес денег или жизней то,адрес при перезагрузки игры измениться и нужно будет искать по новой

DMA адресом может быть любое значение жизни, деньги,таймер в миссиях т.д

Для того чтобы адрес который вы нашли при перезагрузки игры не менялся нужно написать скрипт, но для начало нужно найти адрес

Нахождение адреса:

1. Для начало нужно выбрать игру (любая)

2. Начинаем поиск, если в игре значение написано цифрами вам повезло будет легко найти адрес, а если полоской то придёться потрудиться

а)"Адрес в стиле цифр" если адрес у вас в игре записан в цифрах будет лёгко, просто в поиске пишите число в игре, уменьшаете или прибавляете (Процесс отсеивания) после того как нашли адрес выводите его в главную панель, и значения этого адреса можно изменить на любое желаемое вам число и заморозить (При замораживании число которые у вас в игре не уменьшается)

б)"Адрес в стиле полосы или на подобии этого" если адрес у вас в игре записал в полоске или на подобии этого то будет очень сложно (сложность в том что придёться много времени отсеивать),для того чтобы найти такой адрес надо выбрать "Поиск неизвестно значения", уменьшать и прибавлять (Процесс отсеивания) после того как осталось немного адресов а отсеивание не даёт результатом просто выводите все адрес на главную панель и каждый по очереди замораживаете и если число в игре не умешается то это ваш адрес. Если у вас Cheat Engine то написание скрипта будет легче, жмём правой кнопкой мышки по адресе и ннаходим там "Точка остановка на доступ" нажимаем её, и возвращаемся опять в игру и отсеиваем (уменьшаем или прибавляем) возвращаемся к Cheat engine и видим появились инструкции, нажимаете первую инструкцию и справа нажимаем "Отладчик", после этого появился отладчик, нажимаем вверху "Инструменты" и Автоассембел, теперь начинается самое интересное написание скрипта.

в) Бывает и такое что когда в игре цифры и вы используте "Точное значение" поиска, адрес не находиться, но адрес можно найти тоже с помощью поиска "Неизвестного значения"

Написание скрипта:

Нажимате "Шаблон", "Вставление секций ENABLE и DISABLE",после этого "Внедрение кода" и вот вам придстоит написать скрипт, вы напишите его сами, на форeме можно найти много примеров написание скриптов на разный языках програмированния включая Cheat Engine

Примеры скриптов:

Здоровие (Float значение)


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov dword ptr [ecx+00000540],(float)999

originalcode:
fld dword ptr [ecx+00000540]

exit:
jmp returnhere

"gta_sa.exe"+226B9E:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"gta_sa.exe"+226B9E:
fld dword ptr [ecx+00000540]
//Alt: db D9 81 40 05 00 00

Деньги (обычный DMA адрес)


[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov dword [esi+000000B8],#10000000

originalcode:
mov eax,[esi+000000B8]

exit:
jmp returnhere

"gta_sa.exe"+17059B:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"gta_sa.exe"+17059B:
mov eax,[esi+000000B8]
//Alt: db 8B 86 B8 00 00 00

Вот и все, желаю удачи будущим взломщикам

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Достаточно найти инструкцию, работающую с этим динамическим адресом, адрес этой интрукции будет статичным.

Для того чтобы адрес который вы нашли при перезагрузки игры не менялся нужно написать скрипт

ээ, для этого надо найти указатели, а скрипт пишется для изменения инструкции, работающей с этим адресом.

Ссылка на комментарий
Поделиться на другие сайты

Достаточно найти инструкцию, работающую с этим динамическим адресом, адрес этой интрукции будет статичным.

Для того чтобы адрес который вы нашли при перезагрузки игры не менялся нужно написать скрипт

ээ, для этого надо найти указатели, а скрипт пишется для изменения инструкции, работающей с этим адресом.

я рассказал в краце для тех кто вообще этого не знал

Ссылка на комментарий
Поделиться на другие сайты

В кратце, DMA - Dynamic Memory Allocation, динамическое распределение памяти, про которое и стоило бы рассказать. Очень вкратце - каждый раз при запуске игры винда выдаёт ей кусок оперативной памяти, начинающийся со случайного адреса, а не с одного и того же. Это приводит к тому, что адреса находимых значений каждый раз меняются.

Вот это - вкратце про DMA. :\

Как бороться - или искать указатель (дальше - вкратце про указатели) на нужный адрес, или "писать скрипт" - находить при помощи отладчика инструкцию, работающую с нужным адресом, т.к. код игры своего положения не меняет.

Плюс ставить не буду. laugh.gif

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Как akama писал что, писать скрипт с таким условием добавить #10000000 денег не стоит как в статье, некоторые игры не выдерживают такое значение и просто вылетают мы столько не потратим в игре :-D .

Ссылка на комментарий
Поделиться на другие сайты

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

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

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