kotering

Ввод целостного значения

17 сообщений в этой теме

Пытался сделать по уроку трейнер

 

 

 

Но игра вылетает. Может в моем случае как то иначе нужно сделать?

Код из урока с подменной на мои адреса:

Скрытый текст

function CEButton1Click(sender)
TextBox = component_findComponentByName(CETrainer,'CEEdit1')
GameName = 'fifa16.exe'
if(getProcessIDFromProcessName(GameName) == nil) then
showMessage("Запустите игру!")
return end

result = AOBScan("0F B6 11 48 8D 49 01 41")

if(result == nil)then
showMessage("Не работает!")
return end

address = getAddress(stringlist_getString(result,0))

debug_setBreakpoint(address)

debug_removeBreakpoint(address)



value = control_getCaption(TextBox)
writeInteger(sunAddress,Value)

--timer = createTimer(nil,false)
--timer_setInterval(timer,10)
--timer_onTimer(timer,WriteValueTimer)
--timer_setEnabled(timer,true)
end
--function WriteValueTimer()
--writeInteger(sunAddress,3000)
--end

function debugger_onBreakpoint()
sunAddress  = RCX
return 1
end

 

Код моего скрипта: 

Скрытый текст

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(PCd,fifa16.exe,0F B6 11 48 8D 49 01 41) // should be unique
alloc(newmem,$1000,"fifa16.exe"+4B28B87)

label(code)
label(return)

newmem:
  mov byte ptr [rcx+01],#255
code:
  movzx edx,byte ptr [rcx]
  lea rcx,[rcx+01]
  jmp return

PCd:
  jmp newmem
  nop
  nop
return:
registersymbol(PCd)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
PCd:
  db 0F B6 11 48 8D 49 01

unregistersymbol(PCd)
dealloc(newmem)

 

 

Изменено пользователем kotering
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, kotering сказал:

Но игра вылетает. Может в моем случае как то иначе нужно сделать?

Минимум одна ошибка есть:

writeInteger(sunAddress,Value)

writeInteger запишет по адресу 4 байта.

Тебе нужно использовать:

writeBytes(sunAddress,Value)

судя по твоему АА-скрипту.

 

Другие ошибки не смотрел (если есть). Нужно посмотреть урок - ломает.

0

Поделиться сообщением


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

По прежнему вылетает. В игре стоит защита от стандартного windows отладчика. Возможно из за этого выкидывает. Как прописать использование другого отладчика?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 час назад, kotering сказал:

По прежнему вылетает. В игре стоит защита от стандартного windows отладчика. Возможно из за этого выкидывает. Как прописать использование другого отладчика?

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

1000.jpg

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, LIRW сказал:

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

нет. в сам Lua скрипт прописать как? там настройки уже давно выставлены. Подозреваю что этот метод с урока не подходит для этой игры.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
28 минуты назад, kotering сказал:

нет. в сам Lua скрипт прописать как?

 Я конечно извиняюсь, но я подумал не совсем то, о чем конкретно было написано в теме.. Но если игра вылетает, это не значит что именно из за отладчика. Может что то не так делаешь... Может ещо вылетать из за того,что инструкция работает не с одним адресом.. 

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, LIRW сказал:

 инструкция работает не с одним адресом.. 

 

Это да. Там 33 адреса по которым работает сигнатура. Но они все нужные. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, kotering сказал:

Это да. Там 33 адреса по которым работает сигнатура. Но они все нужные. 

Это в 33 адреса одновременно что ли хочешь записать одной инструкцией ???  Я просто что то не много не пойму :)  если она работает с 33_мя адресами одновременно, значит так оно и выходит... Что то я под вечер не соображу не как :mellow: 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
28 минуты назад, LIRW сказал:

Это в 33 адреса одновременно что ли хочешь записать одной инструкцией ???  Я просто что то не много не пойму :)  если она работает с 33_мя адресами одновременно, значит так оно и выходит... Что то я под вечер не соображу не как :mellow: 

Мой AA скрипт который выше, как раз записывает одно значение в эти 33 адреса. А мне нужно сделать чтобы через lua в трейнере прописывалось любое значение от 1 до 255 в эти 33 адреса. В конце урока видно какой результат мне нужен.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 07.04.2016в00:20, kotering сказал:

По прежнему вылетает. В игре стоит защита от стандартного windows отладчика. Возможно из за этого выкидывает. Как прописать использование другого отладчика?

kotering, укажу на вторую ошибку замеченную в твоём скрипте. Может вылет происходит и не из-за брейкпоинта, а именно из-за неё.

Как я понял по АА-скрипту, тебе нужно записать один байт по адресу [rcx+01], а ты что делаешь? 

sunAddress  = RCX

Не написал раньше - надеялся что сам обратишь на это внимание.

Здесь два варианта:

1. 

sunAddress  = RCX + 1

2. Взять байты для аобскана из следующей инструкции после этой:

lea rcx,[rcx+01] // После срабатывания этой инструкции, как раз в rcx будет адрес rcx+01.

 

Изменено пользователем Garik66
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Garik66 сказал:

2. Взять байты для аобскана из следующей инструкции:

 

 

Пробовал RCX + 1 нечего не дает. 0F B6 11 48 8D 49 01 41 - эти байты как раз и есть две(три) инструкции в скрипте.

 

OvwsQby.png

Изменено пользователем kotering
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, kotering сказал:

0F B6 11 48 8D 49 01 41 - эти байты как раз и есть две(три) инструкции в скрипте.

Ты меня не понял.

Сделай АА-скрипт из инструкции:

mov {r9+rcx-22],dl

и выложи сюда.

Сделаем другой рабочий АА-скрипт, проверим его работу, а потом попробуем и в LUA его перенести.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, Garik66 сказал:

Ты меня не понял.

Сделай АА-скрипт из инструкции:


mov {r9+rcx-22],dl

 

[ENABLE]
aobscanmodule(INJECT,fifa16.exe,41 88 54 09 DE) // should be unique
alloc(newmem,$1000,"fifa16.exe"+4CF928E)
label(code)
label(return)
newmem:
  mov [r9+rcx-22],#255
code:
  mov [r9+rcx-22],dl
  jmp return
INJECT:
  jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
  db 41 88 54 09 DE
unregistersymbol(INJECT)
dealloc(newmem)

Как ни странно он не работает.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, kotering сказал:

Как ни странно он не работает.

Не понял что ты за скрипт написал.

Я имел ввиду записывать туда же по адресу, как и в первом скрипте, только адрес теперь находится в rcx, а не в [rcx+01]

Скрытый текст

[ENABLE]
aobscanmodule(INJECT,fifa16.exe,41 88 54 09 DE) 
alloc(newmem,$1000,"fifa16.exe"+4CF928E)
label(code)
label(return)
registersymbol(INJECT)

newmem:
  mov byte ptr [rcx],#255

code:
  mov [r9+rcx-22],dl
  jmp return

INJECT:
  jmp newmem
  return:

[DISABLE]
INJECT:
  db 41 88 54 09 DE 
  unregistersymbol(INJECT)
  dealloc(newmem)

 

Проверь работу этого скрипта

0

Поделиться сообщением


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

 

8 часов назад, Garik66 сказал:

Не понял что ты за скрипт написал.

Я имел ввиду записывать туда же по адресу, как и в первом скрипте, только адрес теперь находится в rcx, а не в [rcx+01]

  Показать содержимое


[ENABLE]
aobscanmodule(INJECT,fifa16.exe,41 88 54 09 DE) 
alloc(newmem,$1000,"fifa16.exe"+4CF928E)
label(code)
label(return)
registersymbol(INJECT)

newmem:
  mov byte ptr [rcx],#255

code:
  mov [r9+rcx-22],dl
  jmp return

INJECT:
  jmp newmem
  return:

[DISABLE]
INJECT:
  db 41 88 54 09 DE 
  unregistersymbol(INJECT)
  dealloc(newmem)

 

Проверь работу этого скрипта

Проверил, все работает кроме одного адреса. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 час назад, kotering сказал:

Проверил, все работает кроме одного адреса. 

Почему один адрес проскакивает не очень понятно.

Есть одна мысль, что связано с циклом (судя по твоему скрину инструкций игры, цикл проходит через 33 адреса, как ты написал), т.е. скорее всего не работает именно первый адрес, так как мы делаем инъекцию в моём скрипте внутри цикла.

Так что нужно использовать именно ту инъекцию, которую делал ты в самом начале.

А для чего ты хочешь перенести на LUA скрипт?

Ты же можешь сделать трейнер и из своего рабочего АА скрипта.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 11.04.2016в14:11, Garik66 сказал:

А для чего ты хочешь перенести на LUA скрипт?

 

Хотел по уроку проверить метод для своего скрипта. Но видимо что то другое необходимо.

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас