lizzmack Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 И снова приветствую! Продолжал разбирать KF2, пытался сейчас освоить курс уроков Михаила Ремизова о создании есп. Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) Выходил на структуру игрока следующим образом: нашел свое хп, указатель 1 уровня на него, добавил сам адрес указателя в таблицу. Показать контент Затем посмотрел что делает указатель в памяти, открыл "disserect structure", пошел по смещению, которое есть на указателе(384) и нашел свое хп. Показать контент "Окей" подумал я, вроде правильно иду, искал float'ы позиций (вверх и вниз по структуре), не нашел, или неправильно искал. Дальше смотрю в другие указатели, где по идее должны быть данные о здоровье врагов, но везде 0( открыл первые 10 указателей подряд). Количество врагов - вообще не понял где искать. В общем запутался по-полной в поисках этих оффсетов координат. Подтолкните на правильную дорогу Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 (изменено) В 28.03.2017 в 11:43, lizzmack сказал: Но вот наткнулся на тупик, не могу найти в структурах позиции (по x y z) себя, а так же мобов.(хотел попробовать аим) Показать Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь И да не стоит создавать новую тему. Ты мог в старой своей отписать Изменено 28 марта, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 11:56, what228 сказал: Не все адреса связаны в одну структуру. Ищи просто координаты через поиск. Float - неизвестное и для быстроты ищи Z координату ( Высота ). Встал повыше? Отсеиваешь значение увеличилось. Встал пониже? Отсеиваешь значение уменьшилось. И так пока не найдешь И да не стоит создавать новую тему. Ты мог в старой своей отписать Показать Насчет темы, я долго сомневался куда написать(в новую или старую тему), ведь, вопрос должен был бы соответствовать названию темы. Поэтому создал еще одну, с общим названием, куда, если что - напишу еще вопросы. Извиняйте. Сейчас попробую отдельным поиском найти координаты. Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 Нашел 2 указателя, один с таким же адресом, что и хп второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов? Показать контент Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 12:47, lizzmack сказал: Нашел 2 указателя, один с таким же адресом, что и хп второй имеет иной адрес, указывает туда же, посмотрел по 10 указателям по этим же смещениям тоже коорды. Получается, что тот который отличается - это оффсет мобов? Показать Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 13:33, what228 сказал: Что-то я туплю.. Но для чего ты искал указатель? Просто нашел координату поставил бряк посмотрел. Нашел инструкцию работающую с тобой ( ну или со всеми ). Дальше определяешь структуру на основе этой инструкции. Если инструкция работает только с тобой то фильтры не нужны если со всеми то фильтры пишешь. Можешь сказать что ты хочешь сделать? Показать пытаюсь понять откуда у михаила ремизова в видео https://www.youtube.com/watch?v=qzh6nL85SHs взялись оффсеты, если в предыдущей части он говорил только о смещениях в структуре между указателями на игроков, и внутри них на хп этих игроков. Ибо вот у него таблица , а через момент уже адреса. Конечная цель у меня - получить оффсет мобов. а там уже с ним что-нибудь поделать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 13:37, 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 - Это смещение Если не так меня поправят. Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 14:34, 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 - ничего не произошло но в целом кажется понятно как это работает( если я правильно понял, это для игрока). Не совсем то, что я хотел узнать, наверное уже от круглосуточного лазанья в этой игре не смог правильно сформулировать вопрос. Мне свои координаты не очень нужны-то были, скорее коорды мобов, но кажется я почти понял как их записать теперь правильно в с++. За исключением адреса библиотеки - все еще не понял откуда он взялся. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 (изменено) В 28.03.2017 в 15:33, 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 ( Как на видео ) сделать. Отпишусь в этой теме сегодня или завтра. Изменено 28 марта, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 15:49, what228 сказал: Показать контент [sl_Saver] - Сохранить координаты [sl_Loader] - Загрузить [sl_X] - Координата X [sl_Y] - Координата Y [sl_Z] - Координата Z [sl_Adder] - Число которое добавим к чему либо. Инструкция которую я взял для скрипта работает с мобами и нашим игроком. В части BracnhSaver - мы сохраняем координаты нашего игрока в [sl_X]... В части BranchLoader - мы загружаем наши координаты и замещаем координаты мобов нашей сохраненной. Как я понял из видео что ты предоставил. Keng ( Михаил ) (Если не правильно указал извините) он взял указатель HP своего игрока и с него вышел на структуру где лежали данные не только его игрока но и остальных игроков ( ботов ). Через каждые 18байт лежали данные другого игрока. Показать да, все верно, из указателя на хп он вышел на структуру. В начале темы я точно так же это сделал.( ты еще спросил, зачем указатели) насчет каждые 18 байт - это я понял. Сейчас думаю уже как реализовывается аим(все необходимые адреса нашел), и пошел исследовать англоязычные уроки. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 16:14, lizzmack сказал: да, все верно, из указателя на хп он вышел на структуру. В начале темы я точно так же это сделал.( ты еще спросил, зачем указатели) насчет каждые 18 байт - это я понял. Сейчас думаю уже как реализовывается аим(все необходимые адреса нашел), и пошел исследовать англоязычные уроки. Показать Если что-то не получится советую пробовать в игре Assault Cube Ссылка на комментарий Поделиться на другие сайты Поделиться
lizzmack Опубликовано 28 марта, 2017 Автор Поделиться Опубликовано 28 марта, 2017 (изменено) В 28.03.2017 в 20:13, what228 сказал: Если что-то не получится советую пробовать в игре Assault Cube Показать Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику Изменено 28 марта, 2017 пользователем lizzmack 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 28 марта, 2017 Поделиться Опубликовано 28 марта, 2017 В 28.03.2017 в 20:16, lizzmack сказал: Да-да, нашел канал Guided hacks, он именно на этой игре и показывает :). Правда сегодня уже умственно исчерпал себя, поэтому только теорию смотрю. завтра уже буду пытаться реализовывать практику Показать Удачи Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 марта, 2017 Поделиться Опубликовано 29 марта, 2017 В 28.03.2017 в 15:33, 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения