NickSpirit

Поиск статического указателя в игре

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

Вообщем еще раз проверил скрипт там где он работал - не работает. Игра тож виснет и вылетает. Отработал верно скрипт только один раз. 

 

Щас еще гляну с одним ли адресом работает данная инструкция. Есть мысль что если включать скрипт в определенный момент то он работает верно.

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

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


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

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

 

Записал видео - как и чего. Видно что скрипт выдает не тот адрес. Кстати когда записывал видео - скрипт не вызвал закрытие игры. https://yadi.sk/i/_5efwqMlwXRXS

 

Кстати, щас глянул по инструкциям как отрабатывает наш код - в регистре EBX действительно находится наш адрес - но вот в Pointer он не попадает судя по всему.

 

Сорри!) Кажись я разобрался - сделал представление HEX)

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

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


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

@NickSpirit, попробуй таблицу, которая приложена к этому сообщению. Версия игры - последняя. Скрипт прокомментирован. Включи скрипт и сделай нужное действие, чтобы вызвалась игровая инструкция, я использовал твою же.

FClient.zip

0

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


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

Автор, попробуй таблицу, которая приложена к этому сообщению. Версия игры - последняя. Скрипт прокомментирован. Включи скрипт и сделай нужное действие, чтобы вызвалась игровая инструкция, я использовал твою же.

FClient.zip

Сделал. Все также - игра зависла и потом вылетела. 

0

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


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

Это любопытно, потому что в скрипте ошибки нет. Можешь сказать, какое действие в игре нужно сделать?

0

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


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

Это любопытно, потому что в скрипте ошибки нет. Можешь сказать, какое действие в игре нужно сделать?

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

 

 

Причем Ваш вариант не работает на обеих машинах. Тогда как вариант от Garik66 более или менее работает на одном компе у меня. Я когда тестил вариант от Garik66  нашел адрес нужный мне руками (при этом выловил порядка 20-40 рыб). и потом включил скрипт - он отрабатывал норм. если же я сразу пытаюсь использовать скрипт - игра вылетает. 

 

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

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


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

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

 

Spoiler

[ENABLE]
registersymbol(addr)
alloc(newmem,2048)
alloc(addr,4)
label(returnhere)

newmem:
mov ecx,[eax+60]
push ecx
lea ecx,[eax+60]
mov [addr],ecx
pop ecx
fild dword ptr [eax+60]
jmp returnhere
"FClient.exe"+68946:
jmp newmem
nop
returnhere:

[DISABLE]
"FClient.exe"+68946:
db 8B 48 60 DB 40 60
dealloc(newmem)
unregistersymbol(addr)
dealloc(addr)

 

 

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

0

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


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

Инструкция работает только с одним адресом. Это точно. я в видео это проверял. А вот по поводу опыта - не знаю. опыт как то не так важен для меня)) 

 

А вот про защиту я уже задумываюсь. 

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

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


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

кстати, щас глянул по инструкциям как отрабатывает наш код - в регистре EBX действительно находится наш адрес - но вот в Pointer он не попадает судя по всему.

А как же dec 12614260 - это hex C07A74

0

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


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

А как же dec 12614260 - это hex C07A74

 

Я потом написал что с этим разобрался)))) Но суть та же - раза с 10 скрипту удается срабатывать нормально. Не знаю..щас попробую ради интереса снова найти руками адрес..посчитать сколько я поймаю рыбы..и включить скрипт снова. Надо же найти причину вылета игры. Скрипты такие полезные ведь!

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

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


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

Попробуйте ещё такой скрипт (но учтите я пишу скрипты исходя из Ваших видео и первого скрипта - игры у меня нет, чтобы потестить):

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

{ Game   : FClient.exe
  Version:
  Date   : 2016-10-09
  Author : NickGrava
  This script does blah blah blah
}
[ENABLE]
aobscanmodule(Adress,FClient.exe,D9 5F 6C 5E 5B) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(Adress)

newmem:

code:
  fstp dword ptr [edi+6C]
  mov [edi+6C],41B80000
  pop esi
  pop ebx
  jmp return

Adress:
  jmp newmem
return:

[DISABLE]
Adress:
  db D9 5F 6C 5E 5B

unregistersymbol(Adress)
dealloc(newmem)

 

Только это скрипт не на адрес, а сразу на значение (значение, которое увидел у Вас на видео).

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

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


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

Не понял...а что в этом скрипте происходит? на метке newmem ничего нет...

0

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


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

Не понял...а что в этом скрипте происходит? на метке newmem ничего нет...

Подключитесь к игре, закиньте удочку  и активируйте скрипт - посмотрим что будет. а значение ниже:

  fstp dword ptr [edi+6C]
  mov [edi+6C],‭41B80000 

 

0

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


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

Он мне выдает что инструкция 

mov [edi+6C],‭41B80000 

не может быть откомпилирована.

0

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


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

Ну что клюёт?:) Или - вылетает? :wacko:

0

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


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

Ну что клюёт?:) Или - вылетает? :wacko:

Скрипт не активируется. по причине указанной мной выше) :(

0

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


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

Он мне выдает что инструкция 


mov [edi+6C],‭41B80000 

не может быть откомпилирована.

Странно.

 

2 минуты назад, NickSpirit сказал:

Скрипт не активируется. по причине указанной мной выше) :(

Ладно. Тогда выложите сюда стандартный СЕ-ный скрипт с аобсканом из инструкции, которая не много выше Вашей, вот из этой:

"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]

Кстати видно, где проверка значения идёт. Если сработает скрипт, который я  напишу, то объясню где она.

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

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


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

Он мне выдает что инструкция 


mov [edi+6C],‭41B80000 

не может быть откомпилирована.

Ещё раз говорю - странно.

Добавил сейчас скрипт в таблицу, которую раньше выкладывал:

Таблицу выложил в этом сообщении.

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

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


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

Щас попробую таблицу добавить. Что касаемо скрипта с AOBScan - щас адрес руками найду - выложу. 

 

Добавил - скрипт активировался. Игра не вылетела. 

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

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


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

Щас попробую таблицу добавить. Что касаемо скрипта с AOBScan - щас адрес руками найду - выложу. 

Зачем руками то, я же дал инструкцию и её адрес:

"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]

 

0

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


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

Зачем руками то, я же дал инструкцию и её адрес:


"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]

 

Эммм...если б уметь по другому..))) я ж новичок в этом. я знаю что можно как то найти инструкцию где-то..а как и где - уже не знаю.

0

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


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

.а как и где - уже не знаю.

1. Перейдите в отладчик.

2. ПКМ (правая кнопка мыши) по окну.

3. Перейти по адресу (верхняя строчка)

4. Замените адрес на адрес инструкции - в нашем случае "FClient.exe"+151F32

5. Нажмите "Подтвердить".

0

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


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

{ Game   : FClient.exe
  Version: 
  Date   : 2016-10-09
  Author : GravaPC

  This script does blah blah blah
}

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

 
 
aobscanmodule(Garik66,FClient.exe,D9 45 F4 D9 57 70) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  fld dword ptr [ebp-0C]
  fst dword ptr [edi+70]
  jmp return

Garik66:
  jmp code
  nop
return:
registersymbol(Garik66)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Garik66:
  db D9 45 F4 D9 57 70

unregistersymbol(Garik66)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F32

"FClient.exe"+151F0A: 83 C1 10           -  add ecx,10
"FClient.exe"+151F0D: 89 8F A0 00 00 00  -  mov [edi+000000A0],ecx
"FClient.exe"+151F13: 8B 8F 88 00 00 00  -  mov ecx,[edi+00000088]
"FClient.exe"+151F19: 89 5F 64           -  mov [edi+64],ebx
"FClient.exe"+151F1C: 8B 49 04           -  mov ecx,[ecx+04]
"FClient.exe"+151F1F: B8 06 00 00 00     -  mov eax,00000006
"FClient.exe"+151F24: E8 97 40 ED FF     -  call FClient.exe+25FC0
"FClient.exe"+151F29: 89 45 F4           -  mov [ebp-0C],eax
"FClient.exe"+151F2C: DB 45 F4           -  fild dword ptr [ebp-0C]
"FClient.exe"+151F2F: D9 5D F4           -  fstp dword ptr [ebp-0C]
// ---------- INJECTING HERE ----------
"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]
"FClient.exe"+151F35: D9 57 70           -  fst dword ptr [edi+70]
// ---------- DONE INJECTING  ----------
"FClient.exe"+151F38: D9 5F 6C           -  fstp dword ptr [edi+6C]
"FClient.exe"+151F3B: 5E                 -  pop esi
"FClient.exe"+151F3C: 5B                 -  pop ebx
"FClient.exe"+151F3D: 8B E5              -  mov esp,ebp
"FClient.exe"+151F3F: 5D                 -  pop ebp
"FClient.exe"+151F40: C3                 -  ret 
"FClient.exe"+151F41: CC                 -  int 3 
"FClient.exe"+151F42: CC                 -  int 3 
"FClient.exe"+151F43: CC                 -  int 3 
"FClient.exe"+151F44: CC                 -  int 3 
}

 

0

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


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

Garik66,FClient.exe,D9 45 F4 D9 57 70)

В честь меня адрес назвали - круто!!!;)

 

1. Используйте тег "Кода" внутри спойлера.

2. Скрипт 3 (сразу в таблице) проверьте, но ощущение, что нужен фильтр. Инструкции работают (я уверен) не с одним адресом, как у Вас на видео, та опция СЕ, которую Вы использовали для проверки со сколькими адресами работает инструкция - работает недостаточно хорошо.

 

Всё таже таблица:

// Выложил в этом сообщении.

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

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


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

Все отработало. Игра не вылетела. 

0

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


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.