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

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

И снова приветствую!
Продолжал разбирать KF2, пытался сейчас освоить курс уроков Михаила Ремизова о создании есп.
Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) 
Выходил на структуру игрока следующим образом:
нашел свое хп, указатель 1 уровня на него, добавил сам адрес указателя в таблицу. 

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

16633845.png
 

Затем посмотрел что делает указатель в памяти, открыл "disserect structure", пошел по смещению, которое есть на указателе(384) и нашел свое хп.
 

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

16633906.png


:huh:"Окей" подумал я, вроде правильно иду, искал float'ы позиций (вверх и вниз по структуре), не нашел, или неправильно искал. Дальше смотрю в другие указатели, где по идее должны быть данные о здоровье врагов, но везде 0( открыл первые 10 указателей подряд). Количество врагов - вообще не понял где искать. В общем запутался по-полной в поисках этих оффсетов координат. Подтолкните на правильную дорогу :)

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

13 минуты назад, lizzmack сказал:

Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) 

Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь :) И да не стоит создавать новую тему. Ты мог в старой своей отписать

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

12 минуты назад, what228 сказал:

Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь :) И да не стоит создавать новую тему. Ты мог в старой своей отписать

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

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

Нашел 2 указателя,
один с таким же адресом, что и хп
второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов?
 

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

16634776.png

 

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

38 минуты назад, lizzmack сказал:

Нашел 2 указателя,
один с таким же адресом, что и хп
второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов?

Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать?

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

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

Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать?

пытаюсь понять откуда у михаила ремизова в видео https://www.youtube.com/watch?v=qzh6nL85SHs взялись оффсеты, если в предыдущей части он говорил только о смещениях в структуре между указателями  на игроков, и внутри них на хп этих игроков. Ибо вот у него таблица , а через момент уже адреса. 
Конечная цель у меня - получить оффсет мобов. а там уже с ним что-нибудь поделать.

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

41 минуты назад, lizzmack сказал:

пытаюсь понять откуда у михаила ремизова в видео https://www.youtube.com/watch?v=qzh6nL85SHs взялись оффсеты, если в предыдущей части он говорил только о смещениях в структуре между указателями  на игроков, и внутри них на хп этих игроков. Ибо вот у него таблица , а через момент уже адреса. 
Конечная цель у меня - получить оффсет мобов. а там уже с ним что-нибудь поделать.


Вот к примеру Vacuum:
 

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

[ENABLE]
aobscanmodule(sl_Vacuum,KFGame.exe,F3 41 0F 10 47 08 F3 0F 5C)
alloc(newmem,$1000,"KFGame.exe"+656AB1)

label(code)
label(return)
label(BranchVacuum)
label(BranchLoader)
label(BranchSaver)
label(sl_X)
label(sl_Y)
label(sl_Z)
label(sl_Adder)
label(sl_Loader)
label(sl_Saver)
registersymbol(sl_Loader)
registersymbol(sl_Saver)
registersymbol(sl_X)
registersymbol(sl_Y)
registersymbol(sl_Z)

newmem:

sl_Saver:
dd 0
sl_Loader:
dd 0
sl_X:
dd 0
sl_Y:
dd 0
sl_Z:
dd 0
sl_Adder:
dd (float)100

BranchVacuum:
  cmp [sl_Saver],0
  jne BranchSaver
  cmp [sl_Loader],0
  jne BranchLoader
  jmp code

BranchSaver:
  cmp [r15+B0],000033FA
  jne code
  cmp [r15+AC],00000000
  jne code
  cmp [r15+F4],#22
  jne code
  fld dword ptr [r15]
  fadd dword ptr [sl_Adder]
  fstp dword ptr [sl_X]
  fld dword ptr [r15+04]
  fstp dword ptr [sl_Y]
  fld dword ptr [r15+08]
  fstp dword ptr [sl_Z]
  mov [sl_Saver],0
  jmp code

BranchLoader:
  cmp [r15+AC],00000000
  je code
  cmp [r15+F4],4
  jne code
  fld dword ptr [sl_X]
  fstp dword ptr [r15]
  fld dword ptr [sl_Y]
  fstp dword ptr [r15+04]
  fld dword ptr [sl_Z]
  fstp dword ptr [r15+08]
  jmp code

code:
  movss xmm0,[r15+08]
  jmp return

sl_Vacuum:
  jmp BranchVacuum
  nop
return:
registersymbol(sl_Vacuum)

[DISABLE]
sl_Vacuum:
  db F3 41 0F 10 47 08

unregistersymbol(sl_Vacuum)
unregistersymbol(sl_Loader)
unregistersymbol(sl_Saver)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "KFGame.exe"+656AB1

"KFGame.exe"+656A81: 41 80 BE C0 00 00 00 01           -  cmp byte ptr [r14+000000C0],01
"KFGame.exe"+656A89: 75 67                             -  jne KFGame.exe+656AF2
"KFGame.exe"+656A8B: 41 F7 86 F0 00 00 00 00 10 00 00  -  test [r14+000000F0],1000
"KFGame.exe"+656A96: 75 53                             -  jne KFGame.exe+656AEB
"KFGame.exe"+656A98: 85 C9                             -  test ecx,ecx
"KFGame.exe"+656A9A: 75 4F                             -  jne KFGame.exe+656AEB
"KFGame.exe"+656A9C: F3 41 0F 10 0F                    -  movss xmm1,[r15]
"KFGame.exe"+656AA1: F3 0F 5C 4D A0                    -  subss xmm1,[rbp-60]
"KFGame.exe"+656AA6: F3 41 0F 10 57 04                 -  movss xmm2,[r15+04]
"KFGame.exe"+656AAC: F3 0F 5C 55 A4                    -  subss xmm2,[rbp-5C]
// ---------- INJECTING HERE ----------
"KFGame.exe"+656AB1: F3 41 0F 10 47 08                 -  movss xmm0,[r15+08]
// ---------- DONE INJECTING  ----------
"KFGame.exe"+656AB7: F3 0F 5C 45 A8                    -  subss xmm0,[rbp-58]
"KFGame.exe"+656ABC: F3 44 0F 5E E7                    -  divss xmm12,xmm7
"KFGame.exe"+656AC1: F3 41 0F 59 CC                    -  mulss xmm1,xmm12
"KFGame.exe"+656AC6: F3 41 0F 59 D4                    -  mulss xmm2,xmm12
"KFGame.exe"+656ACB: F3 41 0F 59 C4                    -  mulss xmm0,xmm12
"KFGame.exe"+656AD0: F3 41 0F 11 8E 8C 01 00 00        -  movss [r14+0000018C],xmm1
"KFGame.exe"+656AD9: F3 41 0F 11 96 90 01 00 00        -  movss [r14+00000190],xmm2
"KFGame.exe"+656AE2: F3 41 0F 11 86 94 01 00 00        -  movss [r14+00000194],xmm0
"KFGame.exe"+656AEB: 45 89 AE 94 01 00 00              -  mov [r14+00000194],r13d
"KFGame.exe"+656AF2: 49 8B 8E 68 02 00 00              -  mov rcx,[r14+00000268]
}

 

Фильтры на быструю руку. Репак от nemos.

Насчет видео:

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

const DWORD plr_num_offset = 0x93CCB8    -  Адрес библиотеки
const DWORD plr_list_offset = 0x0089944C    -  Это адрес указателя
const DWORD hp_offset = 0x214                     -  Это смещение
const DWORD coords_offset = 0x214              -  Это смещение

 

Если не так меня поправят.

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

48 минуты назад, what228 сказал:


Вот к примеру Vacuum:
 

  Скрыть содержимое


[ENABLE]
aobscanmodule(sl_Vacuum,KFGame.exe,F3 41 0F 10 47 08 F3 0F 5C)
alloc(newmem,$1000,"KFGame.exe"+656AB1)

label(code)
label(return)
label(BranchVacuum)
label(BranchLoader)
label(BranchSaver)
label(sl_X)
label(sl_Y)
label(sl_Z)
label(sl_Adder)
label(sl_Loader)
label(sl_Saver)
registersymbol(sl_Loader)
registersymbol(sl_Saver)
registersymbol(sl_X)
registersymbol(sl_Y)
registersymbol(sl_Z)

newmem:

sl_Saver:
dd 0
sl_Loader:
dd 0
sl_X:
dd 0
sl_Y:
dd 0
sl_Z:
dd 0
sl_Adder:
dd (float)100

BranchVacuum:
  cmp [sl_Saver],0
  jne BranchSaver
  cmp [sl_Loader],0
  jne BranchLoader
  jmp code

BranchSaver:
  cmp [r15+B0],000033FA
  jne code
  cmp [r15+AC],00000000
  jne code
  cmp [r15+F4],#22
  jne code
  fld dword ptr [r15]
  fadd dword ptr [sl_Adder]
  fstp dword ptr [sl_X]
  fld dword ptr [r15+04]
  fstp dword ptr [sl_Y]
  fld dword ptr [r15+08]
  fstp dword ptr [sl_Z]
  mov [sl_Saver],0
  jmp code

BranchLoader:
  cmp [r15+AC],00000000
  je code
  cmp [r15+F4],4
  jne code
  fld dword ptr [sl_X]
  fstp dword ptr [r15]
  fld dword ptr [sl_Y]
  fstp dword ptr [r15+04]
  fld dword ptr [sl_Z]
  fstp dword ptr [r15+08]
  jmp code

code:
  movss xmm0,[r15+08]
  jmp return

sl_Vacuum:
  jmp BranchVacuum
  nop
return:
registersymbol(sl_Vacuum)

[DISABLE]
sl_Vacuum:
  db F3 41 0F 10 47 08

unregistersymbol(sl_Vacuum)
unregistersymbol(sl_Loader)
unregistersymbol(sl_Saver)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "KFGame.exe"+656AB1

"KFGame.exe"+656A81: 41 80 BE C0 00 00 00 01           -  cmp byte ptr [r14+000000C0],01
"KFGame.exe"+656A89: 75 67                             -  jne KFGame.exe+656AF2
"KFGame.exe"+656A8B: 41 F7 86 F0 00 00 00 00 10 00 00  -  test [r14+000000F0],1000
"KFGame.exe"+656A96: 75 53                             -  jne KFGame.exe+656AEB
"KFGame.exe"+656A98: 85 C9                             -  test ecx,ecx
"KFGame.exe"+656A9A: 75 4F                             -  jne KFGame.exe+656AEB
"KFGame.exe"+656A9C: F3 41 0F 10 0F                    -  movss xmm1,[r15]
"KFGame.exe"+656AA1: F3 0F 5C 4D A0                    -  subss xmm1,[rbp-60]
"KFGame.exe"+656AA6: F3 41 0F 10 57 04                 -  movss xmm2,[r15+04]
"KFGame.exe"+656AAC: F3 0F 5C 55 A4                    -  subss xmm2,[rbp-5C]
// ---------- INJECTING HERE ----------
"KFGame.exe"+656AB1: F3 41 0F 10 47 08                 -  movss xmm0,[r15+08]
// ---------- DONE INJECTING  ----------
"KFGame.exe"+656AB7: F3 0F 5C 45 A8                    -  subss xmm0,[rbp-58]
"KFGame.exe"+656ABC: F3 44 0F 5E E7                    -  divss xmm12,xmm7
"KFGame.exe"+656AC1: F3 41 0F 59 CC                    -  mulss xmm1,xmm12
"KFGame.exe"+656AC6: F3 41 0F 59 D4                    -  mulss xmm2,xmm12
"KFGame.exe"+656ACB: F3 41 0F 59 C4                    -  mulss xmm0,xmm12
"KFGame.exe"+656AD0: F3 41 0F 11 8E 8C 01 00 00        -  movss [r14+0000018C],xmm1
"KFGame.exe"+656AD9: F3 41 0F 11 96 90 01 00 00        -  movss [r14+00000190],xmm2
"KFGame.exe"+656AE2: F3 41 0F 11 86 94 01 00 00        -  movss [r14+00000194],xmm0
"KFGame.exe"+656AEB: 45 89 AE 94 01 00 00              -  mov [r14+00000194],r13d
"KFGame.exe"+656AF2: 49 8B 8E 68 02 00 00              -  mov rcx,[r14+00000268]
}

 

Фильтры на быструю руку. Репак от nemos.

Насчет видео:

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


const DWORD plr_num_offset = 0x93CCB8    -  Адрес библиотеки
const DWORD plr_list_offset = 0x0089944C    -  Это адрес указателя
const DWORD hp_offset = 0x214                     -  Это смещение
const DWORD coords_offset = 0x214              -  Это смещение

 

Если не так меня поправят.

Если я правильно понял скрипт - это сохранение-загрузка позиций?
У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло
но в целом кажется понятно как это работает( если я правильно понял, это для игрока). Не совсем то, что я хотел узнать, наверное уже от круглосуточного лазанья в этой игре не смог правильно сформулировать вопрос. Мне свои координаты не очень нужны-то были, скорее коорды мобов, но кажется я почти понял как их записать теперь правильно в с++. За исключением адреса библиотеки - все еще не понял откуда он взялся. 

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

36 минуты назад, lizzmack сказал:

Если я правильно понял скрипт - это сохранение-загрузка позиций?
У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло
но в целом кажется понятно как это работает( если я правильно понял, это для игрока). Не совсем то, что я хотел узнать, наверное уже от круглосуточного лазанья в этой игре не смог правильно сформулировать вопрос. Мне свои координаты не очень нужны-то были, скорее коорды мобов, но кажется я почти понял как их записать теперь правильно в с++. За исключением адреса библиотеки - все еще не понял откуда он взялся. 

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

[sl_Saver] - Сохранить координаты
[sl_Loader] - Загрузить
[sl_X] - Координата X
[sl_Y] - Координата Y
[sl_Z] - Координата Z
[sl_Adder] - Число которое добавим к чему либо.
Инструкция которую я взял для скрипта работает с мобами и нашим игроком. В части BracnhSaver - мы сохраняем координаты нашего игрока в [sl_X]... В части BranchLoader - мы загружаем наши координаты и замещаем координаты мобов нашей сохраненной.

[] - можешь вывести их в таблицу.

Как я понял из видео что ты предоставил. Keng ( Михаил ) (Если не правильно указал извините) он взял указатель HP своего игрока и с него вышел на структуру где лежали данные не только его игрока но и остальных игроков ( ботов ). Через каждые 18байт лежали данные другого игрока.

Вечерком попробую в CS:GO ( Как на видео ) сделать. Отпишусь в этой теме сегодня или завтра.

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

20 минуты назад, what228 сказал:
  Скрыть содержимое

[sl_Saver] - Сохранить координаты
[sl_Loader] - Загрузить
[sl_X] - Координата X
[sl_Y] - Координата Y
[sl_Z] - Координата Z
[sl_Adder] - Число которое добавим к чему либо.
Инструкция которую я взял для скрипта работает с мобами и нашим игроком. В части BracnhSaver - мы сохраняем координаты нашего игрока в [sl_X]... В части BranchLoader - мы загружаем наши координаты и замещаем координаты мобов нашей сохраненной.

Как я понял из видео что ты предоставил. Keng ( Михаил ) (Если не правильно указал извините) он взял указатель HP своего игрока и с него вышел на структуру где лежали данные не только его игрока но и остальных игроков ( ботов ). Через каждые 18байт лежали данные другого игрока.

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

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

3 часа назад, lizzmack сказал:

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

Если что-то не получится советую пробовать в игре Assault Cube :) 

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

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

Если что-то не получится советую пробовать в игре Assault Cube :) 

Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику

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

7 минут назад, lizzmack сказал:

Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику

Удачи :)

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

11 час назад, lizzmack сказал:

У меня он не сработал( видать из-за фильтра ) когда ставил на сейвер 1 а потом на лоадер 1 - ничего не произошло

Скорее всего не там ставил 1. Хотя по коду скрипта what228, там не обязательно ставить 1 можно и 2 и 3 и 4 и т.д. - важен только 0.

Ты должен был либо добавить в таблицу адреса sl_Saver:  sl_Loader: либо написать скрипты на них же, на пример Скрипт "Сохранить координаты":

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

[ENABLE]
sl_Saver:
dd 1

[DISABLE]
sl_Saver:
dd 0

 

 

 

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

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

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

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