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

[Just Cause] пример lua скрипта для записи инструкции


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

Привет.Хотел спросить как сделать в lua инструкции mov [ebp+24] ,(значение) как сделать чтобы заместо этого значения был указатель и значение бралось из него?cheatengine

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

26 минут назад, Nyasha сказал:

И потом: mov [ebp+24],[esi+XX]

Так нельзя

 

30 минут назад, Cillstrik сказал:

mov [ebp+24] ,(значение) как сделать чтобы заместо этого значения был указатель и значение бралось из него?

Не совсем понятно про что ты.
Если про ebp+24, то найти нормальную инструкцию. Ведь по сути ebp+24 это выделенная переменная в стеке для твоей функции, но ведь она как-то заполняется, найдешь инструкцию, где заполняется [ebp+24], то сможешь использовать реверсивный поиск указателей, либо ручной и получишь указатель.

Если нет, то нужны подробности.

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

Только что, partoftheworlD сказал:

Так нельзя

 

Не совсем понятно про что ты.
Если про ebp+24, то найти нормальную инструкцию. Ведь по сути ebp+24 это выделенная переменная в стеке для твоей функции, но ведь она как-то заполняется, найдешь инструкцию, где заполняется [ebp+24], то сможешь использовать реверсивный поиск указателей, либо ручной.

Если нет, то нужны подробности.

ну грубо говоря мне надо так mov[чтототут+чтототам],"значение из указателя"

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

1 минуту назад, Cillstrik сказал:

ну грубо говоря мне надо так mov[чтототут+чтототам],"значение из указателя"

https://wiki.cheatengine.org/index.php?title=Lua#Writing

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

28 минут назад, Garik66 сказал:

Из памяти в память напрямую нельзя, нужно юзать стек или регистры.

а если не указатель а просто адрес?есть видео какие нибудь?

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

3 минуты назад, Cillstrik сказал:

а если не указатель а просто адрес?

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

Передача значения через регистр

Спойлер

  push eax            // сохраняем регистр перед юзанием в стеке
  mov eax,[указатель] // где [указатель] - то и есть твоё значение
  mov [ebp+24],eax    // ередаем твое значение в нужный адрес памяти ( у тебя вроде в стек)
  pop eax             // восстанавливаем регистр

  // ЗЫ: никак не могу сообразить. Из-за того что у тебя инструкция со стеком, то нужно будет
  //     не [ebp+24], а [ebp+24 + 4]= [ebp+28]. Но это не точно - нужно тестить в игре.

 

 

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

1 час назад, Cillstrik сказал:

пасиба вроде получилос)

ещё хотел спросить если mov mov [xxx+xx],23 что надо подписать чтобы читалось как 4БАЙТА?

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

16 минут назад, Cillstrik сказал:

ещё хотел спросить если mov mov [xxx+xx],23 что надо подписать чтобы читалось как 4БАЙТА?

В СЕ можно ничего не писать по умолчанию в квадратных скобках -4 байта.

Но также не будет ошибкой указывать размер памяти:

 

 mov byte ptr [ebx+24],2    // 1 байт
 mov word ptr [ebx+24],ax   // 2 байта
 mov dword ptr[ebx+24],eax  // 4 байта 

Это все есть в видео-уроках нашего форума.
Каждый раз писать одно и тоже для нового пользователя накладно по времени и MB

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

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

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

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