• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
NickSpirit

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

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

Всем доброго времени суток! Прошу помощи во взломе онлайн игры с установленным клиентом на PC. Вообщем суть такая - игра - обычная рыбалка. Я нахожу нужный адрес в памяти и в боте просто читаю его значение. Но как всегда проблема в том что после перезапуска клиента заново приходится искать адрес. Посмотрев кучу видеоуроков по нахождению указателей - попытался сам найти. Но ни в какую. При поиске через Pointer Scan - указателей либо совсем не находит, либо находит, но после перезапуска при отсеивании - показывает ноль. При поиске в ручную - тож возникли проблемы. Ставлю отладчик, вижу инструкцию - делаю новый поиск адреса который значится в описании инструкции - не находит такого. Подскажите что я делаю не так? могу видео записать как и что я делаю...

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

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


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

Привет! Пожалуйста, создавай темы в правильном разделе. Я перенес твою тему в раздел о взломе ММО-игр, но если твоя игра (название тоже было бы неплохо указывать) имеет другой жанр, то скажи об том - перенесу в нужный раздел.

 

Лучше всего, конечно, посмотреть видео твоих действий.

0

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


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

NickSpirit, давай видео и название игры.

0

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


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

Сорри за тему не в том разделе. Такс..вот сделал видео. Закинул на яндекс диск. Вообщем - сначала ищу нужный мне адрес. в данном случае это адрес который реагирует на событие в игре - а именно когда стоят три удочки и на первой происходит поклевка - на видео видно что я отсеиваю именно когда поплавок уходит под воду (да и еще - когда на удочке нет поклевки нужное значение равно 0, на видео видно что я потом отсеиваю используя и это знание тоже). В данном случае нашлось два адреса (я беру для чтения поклевки всегда верхний). Но пробовал искать указатели на оба адреса - не получалось. https://yadi.sk/i/fiWWjc8JvCHkP вот видео. Название игры Fantastic Fishing

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

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


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

Ну так что - никто не скажет что я делаю не так???

0

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


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

Попробуй искать не указатели, а работающую с адресом инструкцию и писать скрипт.

0

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


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

Спасибо за совет! Уже понял это. теперь пытаюсь писать скрипты...пока не очень удачно. 

0

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


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

Спустя кучу времени нашел я нужную инструкцию. Написал вот такой вот скрипт: 

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

{ Game   : FClient.exe
  Version: 
  Date   : 2016-10-09
  Author : NickGrava
  This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
 
 
aobscanmodule(Adress,FClient.exe,D9 5F 6C 5E 5B) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(my_flag)
registersymbol(my_flag)
newmem:
  cmp byte ptr [my_flag],1
  jne code
  push eax
  mov eax,110280FC
  mov [eax],edi
  add [eax],6C
  pop eax
  mov byte ptr [my_flag],0
code:
  fstp dword ptr [edi+6C]
  pop esi
  pop ebx
  jmp return
my_flag:
  db 0
Adress:
  jmp newmem
return:
registersymbol(Adress)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Adress:
  db D9 5F 6C 5E 5B
unregistersymbol(Adress)
unregistersymbol(my_flag)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F38
"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]
"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]
"FClient.exe"+151F35: D9 57 70           -  fst dword ptr [edi+70]
// ---------- INJECTING HERE ----------
"FClient.exe"+151F38: D9 5F 6C           -  fstp dword ptr [edi+6C]
"FClient.exe"+151F3B: 5E                 -  pop esi
"FClient.exe"+151F3C: 5B                 -  pop ebx
// ---------- DONE INJECTING  ----------
"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 
"FClient.exe"+151F45: CC                 -  int 3 
"FClient.exe"+151F46: CC                 -  int 3 
"FClient.exe"+151F47: CC                 -  int 3 
}

 

Из скрипта понятно что нужная мне инструкция:

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

"FClient.exe"+151F38: D9 5F 6C           -  fstp dword ptr [edi+6C]

 

Моим же кодом я пытаюсь в известный мне адрес 110280FC (который был найден через Code Caves в CE, с правами на доступ Исполняемый\Чтение\Запись) вставить адрес который содержится в [edi+6C]. Ну и сделал флаг чтобы скрипт срабатывал всего один раз. 

 

При запуске скрипта - игра вылетает.

 

Прошу помощи - может я чего не так сделал в скрипте? оригинальную инструкцию мне нужно сохранить. она мне не мешает. цель которую я преследую в этом скрипте - просто получать автоматически адрес нужного мне значения.

 

 

 

0

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


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

При запуске скрипта - игра вылетает.

Попробуйте так сделать:

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

{ 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:
  lea ebx,[edi+6C]
  mov [110280FC],ebx

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

Adress:
  jmp newmem
return:

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

unregistersymbol(Adress)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F38
"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]
"FClient.exe"+151F32: D9 45 F4           -  fld dword ptr [ebp-0C]
"FClient.exe"+151F35: D9 57 70           -  fst dword ptr [edi+70]
// ---------- INJECTING HERE ----------
"FClient.exe"+151F38: D9 5F 6C           -  fstp dword ptr [edi+6C]
"FClient.exe"+151F3B: 5E                 -  pop esi
"FClient.exe"+151F3C: 5B                 -  pop ebx
// ---------- DONE INJECTING  ----------
"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
"FClient.exe"+151F45: CC                 -  int 3
"FClient.exe"+151F46: CC                 -  int 3
"FClient.exe"+151F47: CC                 -  int 3
}

 

 

0

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


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

Попробовал, скрипт запускается, но когда доходит дело до этой инструкции игра вылетает. 

0

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


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

Попробовал, скрипт запускается, но когда доходит дело до этой инструкции игра вылетает. 

Тогда вопрос - а что это за адрес?

 

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

известный мне адрес 110280FC

Может в него и нельзя вовсе записывать адрес.

 

И ещё вопрос - что Вы хотите сделать в игре этим скриптом? Я пока не уловил сути.

0

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


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

По поводу адреса - искал его с помощью Code Caves в CE и смотрел чтобы он был доступен для Read\Write. Сейчас нажал просмотреть этот регион памяти - на этом адресе и на всех соседних - одна и та же инструкция add [eax],al. 

 

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

0

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


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

По поводу адреса - искал его с помощью Code Caves в CE и смотрел чтобы он был доступен для Read\Write. Сейчас нажал просмотреть этот регион памяти - на этом адресе и на всех соседних - одна и та же инструкция add [eax],al. 

 

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

Понял, т.е. Вы просто взяли какой-то левый адрес.

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

 

Таблицу перезалил ниже 

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

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


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

Пишет почему то - недопустимая таблица читов. Это как? CE 6.5.1. русское 32bit

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

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


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

у меня СЕ 6,5 

Может из-за того что я сохранял таблицу без подключения к процессу, сейчас подключусь к тутуроиалу СЕ и попробую пересохранить таблицу.

0

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


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

Табличка ещё раз:

 

ЗЫ: Если не получиться с таблицей и в этот раз, то выложу сам скрипт и объясню как забить адрес в таблицу.

 

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

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

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


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

Табличка прицепилась. Но адреса там нет. Что сделать дальше??? 

 

Судя по скрипту нужно добавить адрес Pointer?

 

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

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


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

Но адреса там нет.

Есть - активируй скрипт - адрес появиться.

0

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


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

Эмм...вообщем активировал скрипт - попробовал - игра подвисла и потом вылетела. Кстати - можно такой вопрос - вот у нас при такой инъекции оригинальная инструкция остается или нет?

 

Для наглядности могу видео записать что я делаю и что происходит.

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

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


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

Для наглядности могу видео записать что я делаю и что происходит.

Да запишите, будет более понятно.

0

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


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

Блина) стал записывать видео на другом компе) там все получилось...а вот на основном - щас попробую все перезапустить и еще раз попробовать. 

 

 

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

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

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


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

Блина) стал записывать видео на другом компе) там все получилось...а вот на основном - щас попробую все перезапустить и еще раз попробовать. 

Как я понял - мой скрипт заработал? :D

0

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


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

Как я понял - мой скрипт заработал? :D

Да, но не пойму почему только на одном компе....))) А так - огромное спасибо конечно! Теперь буду знать как для других инструкций сделать по аналогии. Только вот как заставить работать его везде...надо подумать. Игра реально виснет на ноуте и вылетает. 

0

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


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

Игра реально виснет на ноуте и вылетает. 

Ну это скорее всего где-то проблема на ноуте, а не в скрипте. Может нужно СЕ переустановить на ноуте. Как я видел на записи - у Вас СЕ 6,4. Поставьте 6,5 или самую свежую 6,6

0

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


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

Кстати на ноуте адрес не изменяется при перезапуске игры. Лан попробую переустановить CE.

 

Не понимаю...то ли я не вижу какую то простую проблему..то ли делаю что-то не так))

 

но на ноуте не работает. Нужный адрес скрипт всегда выдает один и тот же. что врятли правильно.

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

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


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